8
我有一個Git項目。我們將其命名爲Proj
。重用Git子模塊的子模塊
Proj
有兩個子模塊,Lib
和Utils
。
Lib
也有子模塊Utils
。
現在的問題是,當有人想要git clone --recursive Proj
時,他需要兩次下載Utils
。當項目進一步深入時,情況可能會更糟。
那麼我怎樣才能讓Proj
重用Utils
已經下載Lib
?
我的工作樹:
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
注:
較好的是,
Utils
停留在external/Utils
。由於Windows的兼容性,不允許使用符號鏈接。
我會很感激,如果任何人都可以幫助我這樣一個複雜的問題。
也許最好是使用某種依賴管理工具。我們不知道您使用的是哪種技術,但是像Maven或npm這樣的工具是爲了這樣的事情而製作的。我沒有看到使用Git子模塊的巨大好處 - 它們只能阻礙。 – nwinkler 2015-02-23 14:01:24
我正在使用CMake進行C++項目。 'Utils'是一些常見的頭文件。遷移到Maven會非常痛苦嗎? @nwinkler – 2015-02-23 14:08:55
Maven主要面向Java項目,它不會幫助您使用C++項目。以下是一些類似討論的鏈接:http://stackoverflow.com/questions/1827705/c-buildsystem-with-ability-to-compile-dependencies-beforehand和http://www.reddit.com/r/cpp/評論/ 2eiulw/dependency_manager_for_ccmake_projects/ – nwinkler 2015-02-23 14:34:46