hg equivalent of git stash

Brendan Cully brendan at kublai.com
Mon Dec 12 10:40:18 CST 2011


On Monday, 12 December 2011 at 19:13, anatoly techtonik wrote:
> On Mon, Dec 12, 2011 at 6:35 PM, Masklinn <masklinn at masklinn.net> wrote:
> 
> > On 2011-12-12, at 16:15 , anatoly techtonik wrote:
> > > Quoting http://markmail.org/message/lglewvoffuxnffbz
> > > On Jan 12, 2008 3:27:01 pm, Matt Mackall wrote:
> > >> On Sat, 2008-01-12 at 17:13 -0600, Phillip Koebbe wrote:
> > >>> I was reading earlier today about "git stash" and was thinking it
> > >>> would be very useful to me. Is something like that available in hg?
> > >> You might be interested in mq, which is about a million times more
> > >> useful.
> > > Among million use cases for mq, can anybody explain the mq equivalent of
> > > git stash?
> > >
> > > My use case: I want to put my current changes away temporarily (into
> > > stash), do some unrelated changes, commit them and then get my previous
> > > changes back (removing them from stash). How do I do this with mq?
> >
> >     > hg qnew -f [-i] [-m "reminder message"] some-patch-name [files…]
> >    > hg qpop
> >
> 
> 'hg diff' doesn't show anything, so this solution is either wrong or
> incomplete (thanks for the answer, I appreciate it, but it doesn't help
> people who will be searching for 'git stash' recipe for mercurial).

You've popped the patch at this point. It's tucked away in a patch
file in .hg/patches right now. If you want to see the diff, the
simplest way is to 'hg qpush' then 'hg qdiff'. Alternatively, 'cat
.hg/patches/stash' is equivalent to git stash show.

When you want to put the changes back into the working directory at
the very end, run 'hg qref -X .' from the root to transfer them out of
the patch. (Admittedly, this invocation has git-like clarity.)


More information about the Mercurial mailing list