In our development environment we have a custom framework. While all our projects start with the base it is extended on a project by project base with the use of plugins and themes.
The folder structure is:
- core (Contains shared code between all projects)
- plugins (Each subfolders of is a plugin, some exist in all projects, some are project specific)
- themes (Contains project specific only code)
Currently we clone our master repo delete the .git folder, create a new repo and go about our changes. If a feature or bug is fixed in a project or the main repo, we currently manually merge changes with various diff tools (winmerge mainly) to ensure that project specific themes or plugins don't get in to the master repo and that all project have the latest core and shared plugins.
I know there must be a better approach to this, using sub modules perhaps? core as a sub module, each plugin as a sub module and each theme as a sub module? Then each project being its own repo?
Or is the structure not the best for this setup?