2012-10-02 50 views
2

我有一個git倉庫(A),其包括庫代碼,我需要在第二存儲庫(B)重複使用。git子模塊比符號鏈接有什麼優勢?

我的理解是,git的子模塊不允許在存儲庫中導入只有特定的路徑,整個倉庫都需要進口。它是否正確?

正因爲如此,我看到了兩個解決我的問題:

  1. 有無A和B作爲單獨的存儲庫和在A.
  2. 添加從B中的符號鏈接庫目錄添加一個新的git存儲庫C,並將其作爲A和B中的子模塊導入。

第二種方法的優點是什麼?在我看來,爲小型圖書館添加單獨的存儲庫是一種矯枉過正的做法,可能給項目維護增加不必要的負擔。有沒有更好的方法來解決我的問題?

回答

4

主要思想是構建重複性:恢復確切配置你用在特定的時間建設什麼樣的部分(即標籤或SHA1的確切列表)的能力。在這種情況下(複製構建的能力),子模塊(和解決方案2)優於任何符號鏈接(這是到目錄內容的快捷方式,而不涉及特定版本)。

另一種方法是外部化的lib,控制系統,到像Nexus神器庫,並在您的項目(S)只有參考來的,正確的版本離開庫來獲取。

+0

網站的問題:你知道,如果有,使得它不可能爲一個子模塊從資源庫中導入只選擇目錄中的任何根本原因?或者這只是當前實施的限制? –

+0

@JanWrobel子模塊本身就是一種git倉庫,和稀疏結帳(http://stackoverflow.com/questions/2336580/sparse-checkout-in-git-1-7-0)不支持的子模塊。最佳做法仍然是讓git回購代表一個「代碼單元」,而不是一個集合。 – VonC

相關問題