2012-05-08 121 views
0

在SVN中我有两个分支,1.0和2.0。如果我在1.0中修复了一个问题,我该如何将修复合并到2.0中,反之亦然?SVN在兄弟分支之间合并

考虑以下情形:

  1. 我就在1.0分支的修复程序并创建一个新的文件A(REV X)。
  2. 我做了一个简单的合并,只是修复从1.0到2.0(rev X + 1)
  3. 然后我修复了2.0分支并修改了A(rev Y)。
  4. 如果我将修复合并回1.0,我会遇到合并冲突!

我想我总是可以强制修复先在1.0分支上进行,或者我可以手动阻止1.0分支上的X + 1修订版。这两个都不理想,我想知道是否有更好的方法来处理兄弟分支。

+0

我们不经常这样做,但每当发生这种情况时,我们都会使用手动块(即'--record-only')。 –

回答

1

'最好'的方式将取决于你的分支的目的。

例如,如果分支1.0用于错误修复,并且分支2.0用于测试,那么首先在1.0上执行所有修复,然后推到2.0,这是有意义的。

如果他们是不同的项目,你想挑选哪些功能在分支之间合并,那么你可以使用中继作为集中点。

如果两个分支都将具有相同的文件和更改,并且都不具有权威性,它会引发问题,您是否真的需要这两个?

最终,如果两个分支都涉及对相同文件进行更改,那么您将会发生冲突,这只是由您的情况决定,以避免每天处理更麻烦。

+0

分支是同一产品的不同版本。我们必须继续支持1.0版本的客户并发布补丁,同时在2.0上进行新的开发。维护1.0分支的工程师经常会发现错误并修复它们,并在2.0分支上应用相同的错误。开发新的2.0分支的工程师发现了可能影响1.0版本的bug,并希望将这些改变也推回去。 – Pace

+0

经过更多讨论后,我认为将中继线作为中心点是理想的场景。 – Pace