2015-02-23 196 views
8

我有一個Git項目。我們將其命名爲Proj重用Git子模塊的子模塊

Proj有兩個子模塊,LibUtils

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 

注:

  1. 較好的是,Utils停留在external/Utils

  2. 由於Windows的兼容性,不允許使用符號鏈接。

我會很感激,如果任何人都可以幫助我這樣一個複雜的問題。

+2

也許最好是使用某種依賴管理工具。我們不知道您使用的是哪種技術,但是像Maven或npm這樣的工具是爲了這樣的事情而製作的。我沒有看到使用Git子模塊的巨大好處 - 它們只能阻礙。 – nwinkler 2015-02-23 14:01:24

+0

我正在使用CMake進行C++項目。 'Utils'是一些常見的頭文件。遷移到Maven會非常痛苦嗎? @nwinkler – 2015-02-23 14:08:55

+2

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

回答