1

在我的公司,我们有一个中央 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 中导入所有分支,对吧?之后我可以扔掉现有的回购吗?或者如果我想这样做,我应该使用不同的方法吗?

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

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

用例 2:当我在 v2 中进行更改(在某个功能分支上的某个其他功能上)时,我必须将其合并到 v3、v4 和 main 中。我可以通过在相应的 CVS 跟踪分支中简单地键入“git merge some-other-feature”来做到这一点吗?

此致,

延斯

4

1 回答 1

1

我可以创建一个新的存储库并让它跟踪所有现有的存储库。这也会从现有的 repos 中导入所有分支,对吧?

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

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

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

我可以通过git merge some-other-feature在相应的 CVS 跟踪分支中简单地键入“”来做到这一点吗?
是的,这就是将其传播到那些分支的想法。

于 2012-11-07T14:00:30.140 回答