In our company we make projects by piling-up several frameworks / libraries:
/Framework
/Extensions (depends on Framework)
/Business (depends on Framework & Extensions)
/Project A (depends on Framework & Extensions & Business)
/Project B (depends on Framework & Extensions & Business)
/Project C (depends on Framework & Extensions & Business)
/...
So far we are using a big git repository that contains all the projects and frameworks, and we are using git subtree to split just the framework to publish it (it's open source).
We would like be able to split this big repository in it's different projects, but the fact that there are so many recursive dependencies worries me:
AFAIK, both git submodules/git subtrees require that all the library code is inside the main repository, so we will end up with a project structure like this:
/Framework
/Extensions/Framework
/Business/Extension/Framework
/Project A/Business/Extensions/Framework
/Project B/Business/Extensions/Framework
/Project C/Business/Extensions/Framework
We don't like having so many copies of the framework everywhere, neither the fact that the framework folder gets so deep in the hierarchy.
What we would like is that the Project A respository asserts, on pull, that there's a repository side by side with the current one that contains some SHA, and to check this SHA.
Is there a way to make side by side git submodules/subtrees?