Mercurial 撤消不需要的更改并对其进行修补

Mercurial 撤消不需要的更改并对其进行修补,mercurial,patch,mercurial-queue,mercurial-extension,Mercurial,Patch,Mercurial Queue,Mercurial Extension,我正在和某人合作进行远程回购。我们意识到我所做的改变应该从回购协议中删除。但是这些变化存在于许多变化集中,并且与某些人的变化混合在一起 在我提交另一个变更集之前,我们决定删除我的变更。因此,我对未限制的更改和qpop进行了修补 现在,我想从remote中撤销其余的更改,并有选择地对这些更改进行修补,让同事的更改保持不变 此外,我希望在一个补丁中包含来自新补丁的差异,以及来自补丁的差异。换句话说,我想从两个不同的变更集中选择一个补丁。我必须手动操作吗 然后在我完成后,我将提交/将清除的更改推送到存

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

在我提交另一个变更集之前,我们决定删除我的变更。因此,我对未限制的更改和
qpop
进行了修补

现在,我想从remote中撤销其余的更改,并有选择地对这些更改进行修补,让同事的更改保持不变

此外,我希望在一个补丁中包含来自新补丁的差异,以及来自补丁的差异。换句话说,我想从两个不同的变更集中选择一个补丁。我必须手动操作吗

然后在我完成后,我将
提交
/
清除的更改推送到存储库中


如何使用Mercurial队列完成此操作?

您可以使用以下命令制作一个与先前更改相反的修补程序:

hg diff --change NODEID_YOU_REGRET --reverse > undoes-what-you-regret.patch
可以使用以下方法将该修补程序放入mercurial队列:

hg qimport undoes-what-you-regret.patch
如果我这样做,我会完全跳过mq,只做:

hg backout --rev NODEID_YOU_REGRET
这将创建一个新的head,您可以将其
hg合并到任何与原始更改不同的开发线中,即:任何具有该代码的开发线。

完全同意“hg回退”路线。