【问题标题】:Does Mercurial do a better job merging files when changesets are small?当变更集较小时,Mercurial 是否能更好地合并文件?
【发布时间】:2011-06-03 09:43:14
【问题描述】:

假设我有一个名为“myDevelopmentBranch”的功能的开发分支和另一个包含大量更改的分支“myOtherBranch”,其中一些会与“myDevelopmentBranch”中的内容冲突。从“myDevelopmentBranch”合并到“myOtherBranch”的结果是否会(可能)不同,如果我经常提交而不是我不经常提交(例如,一天几次而不是每周一两次)?我想知道这一点,因为我认为 Mercurial(或任何其他 VCS)更容易跟踪小块的更改,因此可以更好地弄清楚如何合并它们。

注意!我知道为什么要频繁提交的原因有很多,这只是我一直在思考的一个技术问题。

【问题讨论】:

    标签: mercurial merge dvcs


    【解决方案1】:

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

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

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

    但是,根据我的经验, 使合并更容易的不是经常提交,而是经常合并。例如,将稳定分支的更改合并到开发分支中,以使开发分支保持基于最新稳定版本的较小部分,而不是等到开发分支上的工作完成后才用一个大的稳定分支更改来更新它咬。并且在某些情况下,改变稳定分支的基础而不是合并(取决于您的 DVCS 工作流程)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 2018-12-22
      • 2011-05-21
      • 1970-01-01
      相关资源
      最近更新 更多