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?
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:
From the Mercurial shelve documentation (or using
hg help shelve):
To delete specific shelved changes, use "--delete". To delete all shelved changes, use "--cleanup".
-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
If you don't want to use shelves, you can do it the following way.
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
hg revert -aCVladimir Kovpak 2015-12-15 10:55
I created two shell scripts based on minaz's answer:
#!/bin/sh hg diff > $1 && hg revert -a
#!/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).