Let's say I have four projects named Core, A, B, Super. The dependency tree is like this:
Super ---> Core
|-> A -> Core
|-> B -> Core
I want each project to be stand-alone, that is, I want to be able to check-out and compile each project on its own (each with its dependencies of course).
I thought about mapping each project to a repository and then referring dependencies with submodules, but I see the following issues with that approach:
- When checking out Super with all its dependencies, I'd end up with three copies of Core.
- Since submodules are fully independent, each of these three copies could be pointing to different revisions of Core and that would be a mess.
So... Am I missing something? Did I misunderstand git submodules or misusing them? Is there any other solution to this problem (other than resorting to binary dependencies)?