web-dev-qa-db-ja.com

git stashdropに相当するhgシェルフ

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

37
undefined

Mercurialシェルフ拡張機能はパッチを.hg/shelvedの下に保存します。それぞれが単純なパッチファイルであり、ファイル名はパッチの名前です。したがって、「mypatch」というパッチを削除するには、.hg/shelvedからファイル「mypatch」を削除するだけです。

rm .hg/shelved/mypatch

26
undefined

Mercurialシェルフのドキュメント から(またはhg help shelveを使用):

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

オプション:

-d--delete名前付きの棚上げされた変更を削除します

したがって、パッチの名前がmy-patchの場合は、次を使用してパッチを削除します。

hg shelve -d my-patch
38
BennyMcBenBen

棚板を使いたくない場合は、次のようにできます。

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
31
minaz

Minazの答えに基づいて2つのシェルスクリプトを作成しました。

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を使用します)。

0
mpen