在我的公司,我们有一个中央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”吗?
致以最诚挚的问候,
延
答案 0 :(得分:1)
我可以创建一个新的回购并让它跟踪所有现有的回购。那也从现有的回购中进口所有分支,对吧?
您确实能够在您的唯一仓库中从远程仓库获取所有分支,但您应该从这些远程分支开始创建本地分支。
完成后,您可以删除这些远程引用,并且不再使用您的git-cvs repos。
之后我可以抛弃现有的回购吗? 如果您不需要它们发布回CVS,是的。
我开始为CVS主分支开发一个功能,方法是创建一个名为some-feature的功能分支。然后我知道它必须进入v3。我可以将功能分支重新设置为v3吗? 是的,合并前的rebase,如“git rebase vs git merge”中所述。
我可以通过在相应的CVS跟踪分支中输入“
git merge some-other-feature
”来实现吗? 是的,这是为了将它传播到那些分支的想法。