# HG changeset patch # User Idan Kamara # Date 1307888818 -10800 # Node ID b28004513977050dfd180723084e67134fd5f9e9 # Parent 259ba7502370eecad2150b5dbadb2cf71f7bc90b rebase: preserve mq series order after rebasing (issue2849) diff -r 259ba7502370 -r b28004513977 hgext/rebase.py --- a/hgext/rebase.py Sun Jun 12 17:26:20 2011 +0300 +++ b/hgext/rebase.py Sun Jun 12 17:26:58 2011 +0300 @@ -396,14 +396,9 @@ mq.qimport(repo, (), patchname=name, git=isgit, rev=[str(state[rev])]) - # Restore missing guards - for s in original_series: - pname = mq.guard_re.split(s, 1)[0] - if pname in mq.fullseries: - repo.ui.debug('restoring guard for patch %s' % (pname)) - mq.fullseries.remove(pname) - mq.fullseries.append(s) - mq.series_dirty = True + # restore old series to preserve guards + mq.fullseries = original_series + mq.series_dirty = True mq.savedirty() def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches, diff -r 259ba7502370 -r b28004513977 tests/test-rebase-mq.t --- a/tests/test-rebase-mq.t Sun Jun 12 17:26:20 2011 +0300 +++ b/tests/test-rebase-mq.t Sun Jun 12 17:26:58 2011 +0300 @@ -250,6 +250,7 @@ $ hg qnew foo $ hg qguard foo +baz $ echo foo > foo + $ hg add foo $ hg qref $ hg qpop popping foo @@ -258,6 +259,7 @@ $ hg qnew bar $ hg qguard bar +baz $ echo bar > bar + $ hg add bar $ hg qref $ hg qguard -l @@ -272,13 +274,13 @@ Create new head to rebase bar onto: $ hg up -C 0 - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo b > b $ hg add b $ hg ci -m b created new head $ hg up -C 1 - 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo a >> a $ hg qref @@ -290,13 +292,19 @@ o 0:* 'a' tags: qparent (glob) -Rebase bar: +Rebase bar (make sure series order is preserved): + $ hg qseries + bar + foo $ hg -q rebase -d 1 + $ hg qseries + bar + foo $ hg qguard -l + bar: +baz foo: +baz - bar: +baz $ hg tglog @ 2:* '[mq]: bar' tags: bar qbase qtip tip (glob)