我們有一個非常大的古代平CVS回購,其示例格式如下。我已經導入每個subdir作爲自己的git回購與完整的歷史。使用子模塊將'CVS時代'回購轉換爲git回購
.
├── liba
├── libb
├── libc
├── prog1
├── prog2
└── prog3
讓說,3個方案以如下方式使用庫:
.
├── prog1
│ ├── liba
│ └── libb
├── prog2
│ ├── libb
│ └── libc
└── prog3
├── liba
└── libc
由於CVS允許標記樹的一部分 - 我們標記每個庫和程序發佈了版本標籤。例如liba_4x23
,prog3_2x22
。
我們還與圖書館的每一個版本,它使用的版本標記的程序(即liba_3x19
libc_7x88
)
如果我們發佈程序的新版本沒有庫標籤 - 標籤停留在程序的最早版本它被使用了。
現在由於道路git的進口作品 - 它實際上是在程序的最新版本結束了(不要擔心,雖然)
Git的子模塊似乎是這是一個非常好的解決方案 - 一個版本可以檢出一個程序,並將所有正確版本的庫作爲子模塊進行抽取。
現在因爲當前所有的程序都在不同版本的庫中 - 我需要在特定版本上改進子模塊。
prog1
與libb_4x50
prog2
鏈接與libb_4x70
假設libb_4x70
鏈接是最新的版本則prog2
的例子是容易
git checkout prog2
cd prog2
git submodule add libb
.... done
那麼如何libb
標記添加與版本(不麩皮ched)4x50
到prog1
?如果您有:-)
一個更好的想法是什麼,我們可能還需要做的就是回去3版本的程序,並設置相應的子模塊爲每個版本
其他方面的建議表示讚賞。無論是向後兼容還是管理它如何工作的例子。
謝謝。 「子模塊的想法是在父回購中記錄具體的提交。」 - 這正是我想要的結果。這比我想象的更簡單。 – 2012-02-16 16:07:51