情况如下:在特定分支上,某些更改已在中与中继合并,并且对分支的更改已合并回到主干中。
我的问题是:如果我尝试将合并回来自分支机构的主干,那么Subversion中的合并管理会做什么,如果有的话,本身只是一个合并从后备箱到分支机构?
这会导致问题吗?如果是这样,有什么分类?或者这应该是一件非常好的事情吗?
或者新合并是否只是像其他任何一样对待这些更改,只是尝试应用它们?
答案 0 :(得分:4)
即使是较新的SVN版本的合并跟踪也无法自动处理,这是一种情况。因此,您已指定要手动合并回主干的修订,并且必须确保排除从主干到分支合并的修订。
如果您尝试重新更改已经存在的主干,则会将其视为正常修改。这将不可避免地导致冲突。
答案 1 :(得分:4)
这部分取决于您使用的svn版本。
Pre 1.5,根本没有合并跟踪,所以你必须合并你想要的版本。大多数人使用脚本名称“svnmerge”。如果需要,可以使用它,并标记已经合并的修订版 - 之后,svnmerge将为您选择正确的修订版并跳过已合并的版本提供一些帮助。
1.5(及更高版本)提供了一些合并跟踪功能,但它还没有全功能。在您的特定情况下(合并两种方式),我认为svn的跟踪无法处理它。您可能需要手动合并所需的每个修订版本。
就个人而言,当我在使用svn的项目时,我更喜欢使分支有点短暂,并且只合并一种方式(主干到分支),直到从分支到主干的最终合并。一旦我完成了,我要么将所有内容合并到主干中并关闭分支,要么合并我想要的内容并关闭分支。由于可能的合并问题(很容易出错),我几乎没有让分支保持活着。
答案 2 :(得分:2)
使用1.5或更高版本的subversion,你必须为svn merge指定--reintegrate
选项,以便合并只是以前合并的副本“反过来”。
请注意 1)您应该知道何时应该使用此选项 2)这将是该分支的最后一次合并。在此合并之后,svn会认为分支已经死亡,进一步的工作将需要销毁并重新创建分支。
这是直接来自svn docs,尽管文档可以更精细地分解为小节。