2012-04-03 53 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