I have a rather big project with lots of dependencies. The project is stored in a git repository and the dependencies are stored in dedicated git repositories linked as submodules. The dependencies can have further dependencies (again, using git submodules).
This works well. However, if two dependencies required both a third dependency I run into trouble on updates.
A dependency graph looks like this:
[Main Repo]
|
|-- [ModuleA]
| |
| \-- [ModuleC]
|
\-- [ModuleB]
|
\-- [ModuleC]
Right now I update the submodule pointer in ModuleA and ModuleB. This way both modules remain self contained. However, this is a lot of work.
How is this problem usually solved in bigger projects? I am looking for best practices to approach this kind of problem.
Thanks!