在Subversion中,合并回归是一个问题吗?

13

这是情况: 在某个特定的分支上,一些更改已从主干合并,也将分支的更改合并回了主干。

我的问题是:如果我尝试从分支合并回一个仅仅是从主干合并到分支的修订版本,Subversion中的合并管理会做什么?

这会引起问题吗?如果有,会出现什么问题?或者这样做应该是完全可以的吗?

还是说新的合并只是像处理其他任何更改一样并尝试应用它们呢?

3个回答

5
部分取决于你使用的svn版本。在1.5之前,根本没有合并跟踪功能,因此您必须合并您想要回传的修订版。大多数人使用名为“svnmerge”的脚本来完成此操作。如果您愿意,您可以使用它,并将已经完成的修订版标记为已合并 - 之后,svnmerge将帮助您选择正确的修订版并跳过已经合并的修订版。
1.5(以及更高版本)提供了一些合并跟踪功能,但它还不是完全功能齐全的。在您的特定情况下(双向合并),我认为svn的跟踪无法处理它。您可能需要手动合并每个要回传的修订版。
个人而言,在使用svn的项目中,我更喜欢使分支生命周期较短,并且只进行单向合并(从主干到分支),直到从分支到主干的最终合并。一旦我完成了这个步骤,我就会将所有内容合并到主干并关闭分支,或者我会合并我需要的内容并关闭分支。由于可能存在合并问题(很容易出错),我几乎从不保留分支。

4
那是即使是新版SVN的合并跟踪也无法自动处理的情况。因此,您需要手动指定要合并回主干的修订版本,并确保排除从主干到分支的合并修订版本。
如果您尝试重新合并已经存在于主干中的更改,则它们将被视为普通修改。这必然会导致冲突。

2
使用1.5或更高版本的Subversion,您必须在svn合并命令中指定--reintegrate选项,以便进行“反向”复制之前的合并。请注意: 1)您需要自己确定何时使用此选项; 2)这将是从该分支进行的最后一次合并。在此合并之后,SVN将认为该分支已经失效,进一步的工作将需要销毁和重新创建该分支。
这是来自svn文档的直接引用,尽管该文档可能需要更详细地分成子章节。

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