在SVN中对分支进行分支和与主干合并的最佳实践是什么?

4
我在想在这种情况下最佳实践是什么:
我有一个名为“分支A”的分支,大约一个月前从包含未完成代码的主干分支出来。我还有位于主干头部的代码。
我需要的是能够拥有另一个分支,其中包含主干上的当前代码和“分支A”中的代码,但我希望将其重命名为“分支B”。新分支应该用于处理一个特定版本的功能,而“分支A”仅用于处理一个特定的功能。
我该怎么做呢?
A)从主干合并到分支,然后重命名分支?
B)从主干创建一个新分支,然后将“分支A”合并到新创建的“分支B”中?
C)在TortoiseSVN中进行“双向合并”?
D)其他选项?
只是想知道在这种情况下推荐使用哪种方法,并且哪种方法会在未来带来最少的麻烦。
谢谢!
3个回答

2

始终将分支与主干的更改保持最新是一个好主意。因此,对于您的情况,我首先会将主干更改合并到A分支中。然后,我会从A分支创建B分支。

在创建了两个分支之后,我会尽力将主干更改合并到A和B分支中,以跟随主干的更改。


现在所有在A分支上的工作都将转移到B分支上进行。在创建B分支后,我应该删除A分支吗?如果我是从A分支创建B分支的话,我想我不能删除A分支。 - Jordan
2
如果分支B的目的是为了摆脱分支A,那么你应该将主干更改合并到分支A中,然后就完成了。不需要创建分支B。听起来你在原始问题中需要两个分支。 - Kevin Crowell
好的,我需要先将分支A的更改集成进来。我只想让它称为“分支B”,并且包含主干头部的当前代码以及“分支A”的更改。 - Jordan

2

显然有一些工作流程会导致很多头疼。

我遇到了同样的问题,并发现这篇文章非常有趣 Bunny Hop


太聪明了。在我的情况下,本质上是选项B,不是吗? - Jordan
这在使用带有合并跟踪的 SVN >= 1.5 版本时如何工作? - Jordan
请查看以下网址:http://designbygravity.wordpress.com/2009/10/19/what-mother-never-told-you-about-svn-branching-and-merging/#comment-1241 - Kharaone

1

我建议选择B选项。保持分支的时间顺序很重要。应该将旧分支的更改合并到更新的分支中。这样可以避免交叉合并冲突。因此,我会从头(B分支)创建一个新分支。然后按以下顺序合并: A分支 -> B分支 -> head


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接