I have the hg shelve (not attic) extension installed, and I want to drop a patch. In git it would be git stash drop
. How do I do this using the shelve extension?
hg shelve equivalent of git stash drop
15.3k Views Asked by undefined At
4
There are 4 best solutions below
0

I created two shell scripts based on minaz's answer:
hgshelve
#!/bin/sh
hg diff > $1 && hg revert -a
hgunshelve
#!/bin/sh
hg import --no-commit $1 && trash $1
Put them in ~/bin
. You need sudo apt-get install trash-cli
for the trash
command (or modify the script to either not remove the patch file, or use rm
if you prefer).
0

From the Mercurial shelve documentation (or using hg help shelve
):
To delete specific shelved changes, use "--delete". To delete all shelved changes, use "--cleanup".
options:
-d --delete delete the named shelved change(s)
So if your patch was called my-patch
, then you would delete it using:
hg shelve -d my-patch
The Mercurial shelve extension stores patches under .hg/shelved. Each is a simple patch file, and the filename is the name of the patch. So to remove a patch called 'mypatch' I can simply remove the file 'mypatch' from .hg/shelved:
rm .hg/shelved/mypatch