[issue1956] backup created during rebase does not contain original changesets

metolone bugs at mercurial.selenic.com
Wed Dec 16 18:11:50 CST 2009

New submission from metolone <metolone at hotmail.com>:

After a rebase with a merge-gone-wrong, I tried to restore the backup listed 
when the rebase was performed.  The backup contained the "new" changesets 
and changesets up to but not including the parent of the original rebased 
branch.  The original changesets that were rebased were lost.

Windows script to reproduce:

hg init bug
cd bug
echo >file1
hg add
hg ci -m 1
hg clone . ..\bug-other
echo >file2
hg add
hg ci -m 2
cd ..\bug-other
echo >file3
hg add
hg ci -m 3
hg pull --rebase
[saving bundle to ...\bug-other\.hg\strip-backup\<name_of_backup>]
hg unbundle .hg\strip-backup\<name_of_backup>

Note the backup name during the pull and restore it with unbundle.

I expected the original changeset to reappear.  Instead I got:

adding changesets
adding manifests
adding file changes
added 0 changesets with 0 changes to 2 files
(run 'hg update' to get a working copy)

Nothing was restored.  The bundle contained changeset 1 and 2 from the 
result after the rebase, instead of changeset 1 from before the rebase as 
expected.  The name of the backup is the changeset ID of the original 
rebased changeset, however.

Since people might think a bad rebase is recoverable, I marked this 

messages: 11265
nosy: metolone
priority: urgent
status: unread
title: backup created during rebase does not contain original changesets
topic: rebase

Mercurial issue tracker <bugs at mercurial.selenic.com>

More information about the Mercurial-devel mailing list