2012-04-03 16 views
31

私はhg shelve(屋根裏部屋ではない)拡張機能をインストールしていて、パッチを削除したいと思います。 gitではgit stash dropとなります。シェルフエクステンションを使用してこれを行うにはどうすればよいですか?hg shelve相当のgit stash drop

答えて

28

Mercurial shelve extensionは、.hg/shelvedの下にパッチを格納します。それぞれは単純なパッチファイルで、ファイル名はパッチの名前です。だから、の.hg /棚上げから私は単にファイルを削除することができます「mypatch」と呼ばれるパッチ「mypatch」を削除するには:

rm .hg/shelved/mypatch

+2

hg shelve UIを使用して棚を取り外す方法については、[BennyMcBenBenの回答](http://stackoverflow.com/a/25558246/1286571)を参照してください。 – ForeverWintr

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' –

0

私はminazの答えに基づいて、2つのシェルスクリプトを作成しました:~/binに入れ

hgshelve

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

hgunshelve

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

を。 trashコマンドにはsudo apt-get install trash-cliが必要です(または、スクリプトを修正してパッチファイルを削除しないか、好きな場合はrmを使用してください)。 Mercurial shelve documentation(またはhg help shelveを使用して)から、

25

特定棚上げ変更を削除するには、 "--delete" を使用。保存されたすべての変更を削除するには、 "--cleanup"を使用します。

オプション:

-d --deleteあなたのパッチがmy-patchと呼ばれていた場合には、そのように命名棚上げ変更(S)

を削除し、その後、あなたが使用してそれを削除します:

hg shelve -d my-patch 
+0

これは受け入れられる答えです。 – gcedo

関連する問題