In our development environment, we have a custom structure. Although all of our projects begin with a base, it expands on a project based on a project base using plugins and themes.
Folder structure:
- core (Contains common code between all projects)
- plugins (each subfolder is a plugin, some of them exist in all projects, some of them are specific to the project)
- themes (contains only code for a specific project)
We are currently cloning our master repo, deleting the .git folder, creating a new repo and moving on to our changes. If a function or bug is fixed in the project or the main repo, we currently manually combine the changes with various diff tools (mainly winmerge) to ensure that specific themes or project plugins do not fall into the master repo and that the entire project is the last major and common plugins.
I know there should be a better approach to this, perhaps using submodules? the kernel as an auxiliary module, each plugin as an auxiliary module, and each theme as an additional module? Then each project is its own repo?
Or is the structure not the best for this setting?
source share