【问题标题】:Mercurial merge changeset between branches brings all ancestors with it分支之间的 Mercurial 合并变更集带来了所有祖先
【发布时间】:2014-07-09 10:33:21
【问题描述】:

我在合并分支之间的更改时遇到问题。

我有默认分支default

当我开始处理新问题时,我会从default 创建像#565 这样的新分支并使用它。工作后,我将代码更改从 #565 合并到 default - 它工作得很好。

我还有分支anotherbranch - 这就像生产分支,如果它在default 上测试过,我们可以在那里合并一些东西。

有时我需要将#565 中的代码更改合并到anotherbranch。当我尝试这样做时,Mercurial 让我合并 #565 和 anotherbranch 之间的所有代码更改(因为 #565 是 default 的子级)。

如何仅合并 #565 的代码更改?

【问题讨论】:

    标签: merge mercurial tortoisehg


    【解决方案1】:

    有人建议了 graft 命令,这可能是您最终会使用的命令,但让我退后一步,建议如果您稍微改进一下流程,这个问题就会消失。

    一般来说,如果您修复从 anotherbranch 分支的新分支中的错误,并在从 default 分支的分支中添加新功能,您将两全其美。修复“生产”分支中的错误,然后立即将名为 anotherbranch 的生产分支合并回 default

    这是通常的流程,确保漏洞修复无处不在,但新功能在经过良好测试之前不会投入生产。

    【讨论】:

      【解决方案2】:

      我认为您需要的是graft command(“将更改从其他分支复制到当前分支”)。

      【讨论】:

        【解决方案3】:

        按照 Ry4an 的建议,解决此问题的最佳方法是修改您的工作流程。您可能还想考虑使用mq extension 创建补丁。补丁是仅将某些更改应用到存储库的好方法,尤其是在您还没有准备好进行全面合并的情况下。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-12-22
          • 1970-01-01
          • 2011-11-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多