如何将mercurial队列修补程序转换为工作副本中未提交的更改?

时间:2014-07-25 09:31:20

标签: mercurial mercurial-queue

我的Mercurial队列中有一个应用的补丁,如何将此补丁转换为我的工作副本中的未经修改的更改(好像我从未使用qnew创建补丁)?

2 个答案:

答案 0 :(得分:1)

告诉Mercurial刷新补丁但排除所有文件。这将使补丁中的所有更改都未在工作文件夹中提交。您将留下一个空的应用补丁,可以弹出并删除。

hg qref -X *
hg qpop -f
hg qdel <patch>

答案 1 :(得分:0)

好吧,在没有其他答案的情况下,这就是我最终做的事情:

首先从补丁堆栈中弹出补丁,使其不再应用

hg qpop thepatchname --keep-changes

我不确定--keep-changes是否有必要,但我想保留本地未提交的更改。

接下来,我不得不搁置我的工作副本中的一些未提交的更改,以便我可以应用补丁

hg shelve

现在使用import命令将存储在.hg / patches中的补丁应用于--no-commit选项,以便补丁不会提交到您的存储库。

hg import .hg/patches/thepatchname --no-commit

如果您愿意,现在可以删除补丁。