我有一些依賴工作的樹。據我所知,git的子模塊會執行以下操作:Git子模塊的替代?
- 使用它(主)
- 主資料庫複製從奴隸 的所有信息在每個工作樹的子目錄,每個工作樹(從)的副本
我不介意回購越來越大,但擁有這些副本對我來說是相當不可接受的。這會迫使我重新組織所有的項目,這樣副本就會被鏈接起來。而且,編輯錯誤的文件很容易導致混淆。
我已經有了另一個想法:
- 每個主存儲其所有從站的列表。
- 主人不需要其他信息。
- 在主設備中進行每次提交時,都會創建從設備中的「snapshot-commit」。
- 「快照提交」是工作樹當前狀態的快照,它忽略了索引的當前狀態(在丟棄一些未被改變的更改之前,我已經使用「快照提交」)。
- 「snapshot-commits」被收集到一個分支中,該分支的名字源自主人的名字。提交消息包含主提交的哈希。 (恕我直言,這比淹沒成千上萬的標籤要好。)
- 結帳工作正常,除非需要遞歸到奴隸。
我能看到的唯一的問題如下:
- 在奴隸的提交將積累,永遠不會被刪除,即使主承諾不再存在。
- 在提交中的提交不是自包含的,您可以刪除在主服務器中引用的提交。但我認爲它不可能偶然發生,所以我可以忍受它。
- 我無法想象,其他git命令如何支持這一點。但再一次,我可以忍受它。
我在問是否有人已經實現它(或者如果這是一個壞主意)。
你的意思是,我錯了我的句子「主存儲庫複製了所有從屬的信息」 ?這很可能,但是,我主要擔心的是每棵主樹中的每個從屬樹的副本是否存在(或者我錯了嗎?)。 – maaartinus
@maaartinus:有一個物理副本(因爲它檢出了一定的差異),但是所有的父回購保持是對檢出的提交的引用。請參閱「子模塊的真實性質」:http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC
@maaartinus:但是,確實如此,每個父代回購將檢出子模塊,意思是所述子模塊的幾個副本將在任何給定時間存在。 – VonC