2012-04-03 54 views

回答

28

Mercurial搁架扩展程序将修补程序存储在.hg/shelved下。每个都是一个简单的补丁文件,文件名是补丁的名称。因此,要删除一个名为“mypatch”我可以简单地从.hg删除文件“mypatch” /补丁搁置:

rm .hg/shelved/mypatch

+2

请参阅[BennyMcBenBen的回答](http://stackoverflow.com/a/25558246/1286571),了解如何使用hg shelve用户界面删除货架。 – ForeverWintr 2016-11-23 18:21:21

28

如果你不想使用的货架,你可以做以下的方法。

hg diff > mylocalchanges.txt 
hg revert -a 
# Do your merge here, once you are done, import back your local mods 
hg import --no-commit mylocalchanges.txt 
+2

为避免创建'* .orig'文件,请使用:'hg revert -aC' – 2015-12-15 10:55:18

0

我创建了一个基于minaz的回答两个shell脚本:

hgshelve

#!/bin/sh 
hg diff > $1 && hg revert -a 

hgunshelve

#!/bin/sh 
hg import --no-commit $1 && trash $1 

把它们~/bin。对于trash命令,您需要sudo apt-get install trash-cli(或者修改脚本以不删除修补程序文件,或者如果您愿意,也可以使用rm)。

25

Mercurial shelve documentation(或使用hg help shelve):

删除特定搁置更改,请使用 “--delete”。要删除所有搁置的更改,请使用“--cleanup”。

选项:

-d --delete删除的命名搁置变化率(s)

所以,如果你的补丁被称为my-patch,那么你会用它删除:

hg shelve -d my-patch 
+0

这应该是被接受的答案。 – gcedo 2018-03-06 09:54:37