将分支转速范围合并到另一个分支

将分支转速范围合并到另一个分支

我有一个由另一个分支 (a) 创建的分支 (b),我想将分支 a 中的一系列修订合并到分支 b,但我收到以下消息:

Merging revisions 1654-2691 of http://xyz/svn/inetpub/branches/DevBranch into C:\Branch, respecting ancestry
C:\Branch
...
C:\Branch
One or more conflicts were produced while merging r1777:1868 into
'C:\Branch' --
resolve all conflicts and rerun the merge to apply the remaining
unmerged revisions

知道这是关于什么的吗?

据我所知,我在同一个文件上有多个冲突,我需要逐步解决,但这对 git 用户来说听起来非常痛苦。我遗漏了什么吗?或者有没有更简单的方法来完成合并?

谢谢,

答案1

svn merge命令对祖先敏感。这意味着当您尝试合并任何更改集(来自分支、主干或任何内容)时,顺序都会保留,并且 svn 会尝试逐个合并更改。这非常好,您只需模拟分支中发生的每一个小变化,因此不会丢失任何内容。每次 svn 因大量冲突而卡住时,它都会停止并要求您在恢复合并之前解决冲突。

如果两个分支是孤立的,不经常合并(同步)并且长时间保持这种状态(如您的情况),这种行为确实很痛苦。您可以忽略祖先(分支和 HEAD 之间的版本),并使用标志进行更简单的合并--ignore-ancestry。这样,合并就可以确定要合并的差异,就像svn diff确定两个版本之间的差异一样,而无需考虑祖先。

请注意,您应该检查合并的工作副本并确保一切都符合您的要求,因为忽略祖先也会忽略途中所做的某些更改,但没有对最新版本进行更改。

相关内容