我对svn有一个“问题”我无法理解为什么有时当我合并两个分支时,它报告修改文件上的 mergeinfo 属性而不对文本进行任何更改。
这是正常的行为吗?
如果没有,那可能是什么问题?
答案 0 :(得分:4)
嗯,你确实合并了这两个分支。对?按预期工作。
你做的是合并。即使合并没有导致任何代码更改,并且这对合并来说并不罕见,Subversion仍然标记合并已完成。如果没有别的,标记你进行了合并 - 即使它没有导致任何变化,仍然是一个好主意。想象一下发布一个发布,有人说“等等,没有人把那个分支合并回主干!我们必须推迟发布直到我们完成这个”,因为他们没有看到合并svn:merge-info
记录。
所以,是的,你看到可以正常行为。
现在,如果您的问题是“为什么我的更改未合并”,那就是另一个问题。 Subversion通常在合并方面做得很好,但你必须确保做一些事情:
svn:merge-info
。--reintegrate
标志。你有一个分支“A”(在这个例子中可能包括trunk)。您从分支“A”创建分支“B”。
--reintegrate
--reintegrate
。它改变了Subversion处理合并的方式。svn merge --record-only
,以便Subversion知道您已完成合并。当开发人员手动进行一些合并而其他人允许Subversion进行合并时,就会出现欢闹。因此,如果Subversion没有合并它应该具有的更改,请确保您正确使用--reintegrate
,并且您没有遇到上述其他问题。
答案 1 :(得分:0)
svn:mergeinfo
属性用于跟踪有关已在存储库中执行的合并的信息。
有关详细信息,请参阅SVNBook:"Mergeinfo and Previews"。