2012-11-07 57 views
1

在我的公司,我們有一箇中央CVS服務器。對於每個產品版本,我們都有不同的分支機構,但仍然積極支持。在本地,我使用Git,基本上遵循http://undefinedvalue.com/2010/07/02/workflow-remote-cvs-local-git的方法(git cvs花了很長時間,然後停止了一個錯誤: - /)。如何結合單獨的Git倉庫跟蹤同一CVS倉庫的不同分支?

我爲每個CVS分支(其中每個CVS分支在不同的目錄中檢出)使用單獨的Git存儲庫。因此,例如我有目錄〜/ dev/our_product/v2,〜/ dev/our_product/v3,〜/ dev/our_product/v4和〜/ dev/our_product/main,每個目錄都有.git。主分支遵循CVS(我通過定期執行cvs update和git commit來手動更新它)。

我現在正在考慮將所有這些Git回購合併爲一個。如果我正確理解How to combine two branches from two different repositories in a single repository?,我可以創建一個新的回購協議,並使其跟蹤所有現有的回購協議。那也從目前的回購進口所有分支,對吧?之後我可以拋棄現有的回購嗎?或者如果我想這樣做,我應該使用不同的方法嗎?

我也想知道這是否會促進我的工作流程。

使用案例1:通過創建名爲some-feature的功能分支,開始開發CVS主分支的功能。然後我知道它必須進入v3。我可以將功能分支重新分配給v3嗎?使用案例2:當我在v2中進行更改(在某個功能部件的某個其他功能部件上)時,我必須將它合併到v3,v4和main中。我可以通過在相應的CVS跟蹤分支中輸入「git merge some-other-feature」來實現嗎?

最好的問候,

回答

1

我可以創建一個新的回購,並使其跟蹤所有現有的回購協議。那也從目前的回購進口所有分支,對吧?

確實能夠從獨特的回購中獲取遠程回購的所有分支,但是您應該從這些遠程分支開始建立本地分支。
一旦完成,您可以刪除這些遠程引用,並不再使用您的git-cvs repos。

然後我可以把現有的回購?
如果你不需要他們發佈回CVS,是的。

我開始爲CVS主分支創建一個特性,創建一個名爲some-feature的特性分支。然後我知道它必須進入v3。我可以將功能分支重新分配給v3嗎?
是的,合併前發生重置,如「git rebase vs git merge」中所述。

我可以通過在相應的CVS跟蹤分支中輸入「git merge some-other-feature」來做到這一點嗎?
是的,這是爲了傳播到這些分支的想法。

+0

無論如何我沒有使用git-cvs repos -git cvs import無法應對我們的CVS存儲庫... –