My problem may be best described with an example.
Assume I have a project "A".
I also have a project "B" which depends on "A".
Another project "C" also depends on "A".
My "main" project depends on "B" and "C". It may also be that it also depends directly on "A".
Looks a bit like the "dreaded diamond of inheritance" when "main" == "D"
These are my requirements:
I'd like to be able to edit the content of projects "A", "B" and "C" in the solution for "main " and submit changes (i.e. I don't want just to include the DLL but also the code). But since "B" and "C" both depend on "A", it should be enforced that they reference the same commit.
The projects "A", "B" and "C" will most likely also be referenced by other projects, so I cannot assume ownership of the working directory for project "main".
Also it should be possible to sync the repositories for each project with external repositories.
The projects "A", "B", "C" and "main" should be
How do I need to set up my repositories to accomplish this?