Mercurial:关于在分支之间 merge 时如何跳过某些变更集的任何想法?

标签 mercurial branching-and-merging

这里我们的情况:
我们的 Mercurial 存储库中有两个分支,我们称它们为分支 A 和分支 B。

  • 分支 A 是针对稳定版的代码
  • 分支 B 用于开发分支

  • 在分支 A 中修改的所有内容都已 merge 到分支 B。
    但是现在我们发现分支 B 中的代码与分支 A 中的代码有几个不同之处。
    我们在分支 A 中进行了一些大的代码更改,在分支 B 中 merge 这些更改将是一个真正的痛苦,实际上我们希望对解决方案进行替代实现。
    但是稍后我们还希望继续在分支 A 上进行更改,并且仍然能够将这些稍后的小更改 merge 到分支 B 中。
    所以问题是:
    merge 到分支 B 时是否可以跳过分支 A 中的某些单个变更集,然后再次将 A 中的变更集 merge 到 B 中? (可能使用纯 Hg 解决方案,没有变通方法,使用备份副本等等......)

    这里概述了我们将达到的目标:

    变更集分支 A 变更集分支 B
    Chgset A.1 Chgset B.1(与 A.1 merge )
    设置 A.2
    Chgset B.2(**未与 A.2 merge **)
    Chgset A.3 Chgset B.3(与 A.3 merge 但不与 A.2 merge )

    提前感谢您的任何建议

    最佳答案

    这就是 transplant 的确切目的。延期。
    transplant扩展(其他 DVCS 中的 cherry-pick )跟踪复制更改集时来自何处的内容,因此 merge 更容易。

    您必须先激活扩展程序(它已包含但默认禁用)。在您的 hgrc文件,添加:

    [extensions]
    transplant=
    

    关于Mercurial:关于在分支之间 merge 时如何跳过某些变更集的任何想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018228/

    相关文章:

    python - 应用程序在 Mercurial 存储库中访问自己的版本

    mercurial - 为什么 jenkins mercurial 插件会忽略 merge ?

    mercurial - 找到两个分支的最新 merge 点

    git - 警告 : you are leaving 1 commit behind, 未连接到您的任何分支

    git - QA 如何使用 Gitflow 工作流程中的功能分支一次测试多个功能?

    Git 不允许我 merge

    version-control - 选择 Mercurial 主机

    git - 具有文件状态的 Mercurial 日志格式

    mercurial - Mercurial 存储库内的 hgrc 文件是否由存储库本身跟踪?

    mercurial - 如何查看剩余的变更集以 checkin hg bisect?