Hgシェルフ(屋根裏部屋ではない)拡張機能をインストールしましたが、パッチを削除したいと思います。 gitではgit stash drop
。シェルフエクステンションを使用してこれを行うにはどうすればよいですか?
Mercurialシェルフ拡張機能はパッチを.hg/shelvedの下に保存します。それぞれが単純なパッチファイルであり、ファイル名はパッチの名前です。したがって、「mypatch」というパッチを削除するには、.hg/shelvedからファイル「mypatch」を削除するだけです。
rm .hg/shelved/mypatch
Mercurialシェルフのドキュメント から(またはhg help shelve
を使用):
特定の棚上げされた変更を削除するには、「-delete」を使用します。棚上げされたすべての変更を削除するには、「-cleanup」を使用します。
オプション:
-d--delete名前付きの棚上げされた変更を削除します
したがって、パッチの名前がmy-patch
の場合は、次を使用してパッチを削除します。
hg shelve -d my-patch
棚板を使いたくない場合は、次のようにできます。
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
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
を使用します)。