如何组合单独的Git存储库来跟踪同一个CVS存储库的不同分支?

时间:2012-11-07 11:42:55

标签: git branch branching-and-merging

在我的公司,我们有一个中央CVS服务器。对于仍然积极支持的每个产品版本,我们都有不同的分支。在本地,我使用Git,基本上遵循http://undefinedvalue.com/2010/07/02/workflow-remote-cvs-local-git的方法(git cvs花了很长时间然后因错误而停止: - /)。

我为每个CVS分支使用单独的Git存储库(其中每个CVS分支在不同的目录中签出)。例如,我有目录〜/ dev / our_product / v2,〜/ dev / our_product / v3,〜/ dev / our_product / v4和〜/ dev / our_product / main,每个目录都直接带有.git。主分支遵循CVS(我通过定期执行cvs update,然后执行git commit来手动更新它。)

我现在正考虑将所有这些Git repos合并为一个。如果我正确理解How to combine two branches from two different repositories in a single repository?,我可以创建一个新的回购并让它跟踪所有现有的回购。那也从现有的回购中进口所有分支,对吧?之后我可以抛弃现有的回购吗?或者如果我想这样做,我应该使用不同的方法吗?

我也想知道这是否会促进我的工作流程。

用例1:我开始为CVS主分支开发一个功能,方法是创建一个名为some-feature的功能分支。然后我知道它必须进入v3。我可以将功能分支重新绑定到v3吗?

用例2:当我在v2中进行更改时(在功能分支上使用其他功能),我必须将其合并到v3,v4和main中。我可以在相应的CVS跟踪分支中输入“git merge some-other-feature”吗?

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:1)

  

我可以创建一个新的回购并让它跟踪所有现有的回购。那也从现有的回购中进口所有分支,对吧?

您确实能够在您的唯一仓库中从远程仓库获取所有分支,但您应该从这些远程分支开始创建本地分支。
完成后,您可以删除这些远程引用,并且不再使用您的git-cvs repos。

  

之后我可以抛弃现有的回购吗?   如果您不需要它们发布回CVS,是的。

     

我开始为CVS主分支开发一个功能,方法是创建一个名为some-feature的功能分支。然后我知道它必须进入v3。我可以将功能分支重新设置为v3吗?   是的,合并前的rebase,如“git rebase vs git merge”中所述。

     

我可以通过在相应的CVS跟踪分支中输入“git merge some-other-feature”来实现吗?   是的,这是为了将它传播到那些分支的想法。