【问题标题】:Backout unwanted changes and make a patch out of them取消不需要的更改并对其进行修补
【发布时间】:2012-04-27 12:32:12
【问题描述】:

我正在与某人合作进行远程回购。我们意识到我所做的更改应该从 repo 中删除。但这些更改存在于许多更改集中,并与某人的更改混合在一起。

我们决定在我提交另一个变更集之前删除我的变更。所以我用未提交的更改和qpop 做了一个补丁

现在我想从远程撤消我的其余更改,并有选择地修补这些更改,使我的同事的更改保持不变。

此外,我希望将 新补丁 的差异与 patch_ive_made_before 的差异放在一个补丁中。所以换句话说 - 我想从 2 个不同的变更集中获得一个补丁。我必须手动完成吗?

然后在我完成之后,我将commit/push 清除更改到存储库中。

Mercurial Queues 如何做到这一点?

【问题讨论】:

    标签: mercurial patch mercurial-queue mercurial-extension


    【解决方案1】:

    您可以使用以下命令制作与先前更改相反的补丁:

    hg diff --change NODEID_YOU_REGRET --reverse > undoes-what-you-regret.patch
    

    可以使用以下方法将该补丁放入一个反复无常的队列中:

    hg qimport undoes-what-you-regret.patch
    

    如果我这样做了,我会完全跳过 mq,直接做:

    hg backout --rev NODEID_YOU_REGRET
    

    这将创建一个新的 head,您可以将其 hg merge 进入 任何 原始更改的后裔的开发线 - 即:任何具有该代码的东西。

    【讨论】:

    • 完全同意“hg backout”路线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多