只是爲了確保我理解你的做法:
事情,我需要做的建立庫的儲存庫:
- 創建「父」庫
- 每個庫創建一個子模塊
- 相關性必須是相對的,即如果D取決於B,路徑應該看起來像../../B/某些文件夾
- 父存儲庫中的每個提交代表一個val圖書館的ID組合
事情,我需要做的,包括庫的選擇集到一個新項目:
- 創建「用戶」庫
- 在各自所需要的庫建立一個新分支存儲庫(例如A和B),如「for_user」,並跟蹤「用戶」項目中的子模塊。
- 在「父」存儲庫中創建一個「from_user」分支,用於跟蹤所使用庫的更改(是否可以跟蹤每個分支庫上的存儲庫分支?)。
- 包括所選的一組庫,例如, A和B來自「for_user」分支。
- 在A和/或B中進行的更改會轉到此分支,並且可能會合併到「父」主分支中(如果適合和/或合併到使用這些庫的其他項目的其他「from ...分支」中)。 「父」項目用於創建一致的庫集。
實際上,這是指使用這些庫的每個「用戶」項目是由一個分支代表的「從_...」在每個「父」庫和「爲_...」分支使用庫存儲庫。
的設置,現在應該是這樣的
A
branch "for_user"
branch "master" (== for_parent)
<other branches for each project using this library>
B,C,D
<like A>
parent
submodule A - tracks branch dependent on the current branch
submodule B - tracks branch dependent on the current branch
<other submodules>
branch "master" (== from_parent)
branch "from_user"
<other branches for each project using one of the libraries>
user
<own stuff>
submodule A - tracks branch "for_user"
submodule B - tracks branch "for_user"
開放式問題:
- 我如何自動檢查出正確的庫,例如中A和B在上面的設置?我可以檢查所有可用的庫,但會在一定程度消除了單獨的子模塊需要對每個庫
那麼,你不可能配置B和C的路徑到D?聽起來對我來說這是最簡單的解決方案,如果你可以擺動它。 – jthill
@jthill「B」和「C」不僅用於「D」,也可能用於其他項目。他們每個人都可以使用不同版本的「B」和「C」。因此,如果我不想在編譯項目「D」之前查看「B」和「C」的正確版本,我不能簡單地將它們放在兄弟文件夾中並使用相對路徑。 – Onur
哎呀,對不起,我假設「A」是最高級的項目。無論哪種方式,如果你想要一個普通的版本,只需要在一個地方簽出並配置所有需要它的地方。 – jthill