Mam projekt Git. Nazwijmy to Proj
.Ponownie użyj submodule modułu Git
Proj
ma dwa submoduły, Lib
i Utils
.
Lib
również posiada moduł submodulny Utils
.
Problem polega na tym, że gdy ktoś chce git clone --recursive Proj
, musi dwukrotnie pobrać Utils
. Kiedy projekt pogłębia się, sytuacja może być gorsza.
Jak mogę zatem dokonać Proj
ponownego użycia Utils
już pobranego przez Lib
?
Moje drzewo robocze:
Proj # Main project
+-- .git
`-- external
+-- Lib # Proj depends on Lib
| +-- .git
| `-- external
| `-- Utils # Lib depends on Utils
| `-- .git
`-- Utils # Proj also depends on Utils
`-- .git
Uwaga:
to lepiej, że
Utils
pobyty wexternal/Utils
.Z powodu kompatybilności z Windows, dowiązania symboliczne są niedozwolone.
Doceniam to, jeśli ktoś może mi pomóc w tak skomplikowanym pytaniu.
Może lepiej byłoby użyć jakiegoś narzędzia do zarządzania zależnościami. Nie wiemy, jakiej technologii używasz, ale narzędzia takie jak Maven lub npm zostały stworzone do takich rzeczy. Nie widzę ogromnej korzyści w korzystaniu z submodułów Git - tylko przeszkadzają. – nwinkler
Używam CMake dla projektu C++. 'Utils' to niektóre wspólne pliki nagłówkowe. Czy przeniesienie się do Maven będzie wielkim bólem? @nwinkler –
Maven jest przeznaczony głównie do projektów Java, nie pomoże ci w projekcie C++. Oto kilka linków do podobnych dyskusji: http://stackoverflow.com/questions/1827705/c-buildsystem-with-ability-to-compile-dependencies-beforehand i http://www.reddit.com/r/cpp/ comments/2eiulw/dependency_manager_for_ccmake_projects/ – nwinkler