[Bug 3925] New: Rebasing *Part* of the Mq Patch Queue Breaks the Queue

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Mon May 6 11:38:03 CDT 2013


http://bz.selenic.com/show_bug.cgi?id=3925

          Priority: normal
            Bug ID: 3925
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: Rebasing *Part* of the Mq Patch Queue Breaks the Queue
          Severity: bug
    Classification: Unclassified
                OS: Windows
          Reporter: bamccaig at gmail.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 2.5.2
         Component: mq
           Product: Mercurial

So I basically had this:

o 126 (mq patch: tmp) Basically my working changes that I queued just so I
could rebase.
|
|
| o 125 Commit pulled from remote repository.
| |
| |
o | 124 (mq patch: property-names)
|/
|
o 123

Note that 124 and 126 are mq patches. I wanted to rebase 124 onto 125 for
linear history (I do this a LOT). I erroneously issued the wrong command though
and instead ask for 126 to be rebased onto 125: hg rebase -s 126 -d 125. It
seems that Mercurial bailed out half way, leaving the .hg/patches directory
broken. The output I got was:

> $ hg rebase -s 126 -d 125
> patch tmp finalized without changeset message
> abort: revision 126 is not the parent of the queue

I realized my mistake, and since it aborted I figured everything should be back
to normal, so I tried to rebase correct this time. I was informed that the
patch file didn't exist.

> $ hg rebase -s 124 -d 125
> abort: No such file or directory: C:\Users\bambams\src\<snipped>\.hg\patches\property-names

It was at this point that I realized that something was wrong and began
investigating. Log showed that the rebases had partially worked and been
aborted midway, leaving the new commits in place.

My mq patches were still listed in `hg qseries', but the patch files were no
longer in .hg/patches. I stupidly qpopped them, hoping that mq would either do
nothing or recover, but instead it popped them off the queue as if nothing was
wrong. The patch files were still nonexistent (so basically I lost those
changes).

I have evolve enabled. A full list of enabled extensions: bugzilla children
churn color convert eol evolve fetch gpg graphlog hgk highlight mq notify
patchbomb progress purge rebase record relink schemes tpager transplant.

evolve = https://bitbucket.org/marmoute/mutable-history (26930fab9c8e)
tpager = https://bitbucket.org/alexandrul/tpager (47d02abedec5)

I saved my scroll back so I should be able to produce that if desired (after
snipping it, since this is a j0rb repository). I am using tpager with MSYS less
though, which may have affected some of the scroll back... I'm not sure.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list