2

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

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

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

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

然后在我这样做之后,我将commit/push清除存储库中的更改。

Mercurial Queues 如何做到这一点?

4

1 回答 1

5

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

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

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

于 2012-04-27T18:35:55.813 回答