当变更集较小时,Mercurial是否能更好地合并文件?

lar*_*moa 5 merge mercurial dvcs

假设我有一个名为"myDevelopmentBranch"的功能的开发分支和另一个包含很多变化的分支"myOtherBranch",其中一些将与"myDevelopmentBranch"的内容冲突.将(可能)从"myDevelopmentBranch"合并到"myOtherBranch"的结果会不同于我经常提交的结果,而不是经常提交(例如,每天数次,而不是每周一次或两次)?我想知道这一点,因为我觉得Mercurial(或任何其他VCS)更容易跟踪小块的变化,从而更好地找出如何合并它们.

注意!我知道为什么人们应该经常提交的原因很多,这只是我一直在思考的一个技术问题.

Joe*_*ant 5

合并解决了更改文件之间的差异,因为它们位于两个分支的顶端(假设您正在合并提示).所以,如果你有...

  • 分支A上的1个变更集A1更改500行,父变更集Z.
  • 分支B上的1个变更集B1更改500行,父变更集Z.

...与每个分支上的50个变更集相比,您将拥有相同的合并体验,每个分支更改10行,以在上面的每个分支中生成相同的最终文件状态.

然而,根据我的经验,使合并更容易的不是经常提交而是经常合并.例如,将一个稳定分支的更改合并到一个开发分支中,以便将开发分支基于最新的稳定版本保持在更小的位置,而不是等到开发分支上的工作进行更新以便在一个大的稳定分支更改中更新它咬.在某些情况下,重新定义稳定分支而不是合并(取决于您的DVCS工作流程).