我已经阅读了一些关于合并一系列修订和重新集成之间的区别的文档和博客,但我没有得到一件事。
如果我选择一种或其他方式从分支到主干的合并,合并有什么区别?为什么合并一系列修订在某些情况下不起作用,但重新集成成功地将分支合并到主干?
一方面,SVN 计算要应用的差异的方式在两种方法之间是不同的。通常,例如,当您以择优挑选的方式将一系列修订版 X 到 Y 从主干应用到分支时,SVN 会计算主干中 X 到 Y 修订版之间的差异,并将其应用到分支。您也可以在另一个方向执行相同的操作,以这种方式将更改从分支应用到主干。
然而,当您将分支重新集成到主干时,SVN 会进行不同类型的计算。 SVN 不会计算分支中修订版 X 到 Y 之间的差异并将这些更改应用到主干,而是仅计算整个分支和主干之间的差异。假设您一直努力使分支与主干中所做的更改保持最新,那么主干和分支之间的重新集成计算的差异将恰好是分支中尚未进行的所有更改在后备箱里。
From SVN 1.6 文档 http://svnbook.red-bean.com/nightly/en/svn-book.html#svn.branchemerge.basicmerging.reintegrate(重新整合分支):
当将你的分支合并回
然而,主干
数学则完全不同。你的
功能分支现在是一个大杂烩
重复的主干更改和
私人分支发生变化,所以没有
简单连续的修订范围
复制过来。通过指定--reintegrate
选项,你问的是
颠覆精心复制only这些变化是您的分支机构独有的。 (事实上,它是通过
将最新的树干树与
最新的分支树:结果
差异正是你的分支
变化!)
我不完全确定(多年来我已经忘记了),但我认为在以前的 SVN 版本中(比如 1.5 之前?),没有合并跟踪,也没有分支重新集成选项,所以如果你想合并将已完成的分支插入主干,您必须使用修订范围方法手动执行此操作。我正在尝试在文档中查找此内容,但尚未找到有关它的参考资料。
补充阅读
也可以看看回复: 为什么是--reintegratesvn 1.5 合并需要吗? http://svn.haxx.se/users/archive-2008-05/0808.shtml,这在这条评论 https://stackoverflow.com/questions/6575325/svn-merge-a-range-of-revisions-vs-reintegrate/6575565#comment7753305_6575367.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)