# HG changeset patch # User Idan Kamara # Date 2011-06-12 14:26:58 # Node ID b28004513977050dfd180723084e67134fd5f9e9 # Parent 259ba7502370eecad2150b5dbadb2cf71f7bc90b rebase: preserve mq series order after rebasing (issue2849) diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -396,14 +396,9 @@ def updatemq(repo, state, skipped, **opt 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 --git a/tests/test-rebase-mq.t b/tests/test-rebase-mq.t --- a/tests/test-rebase-mq.t +++ b/tests/test-rebase-mq.t @@ -250,6 +250,7 @@ Create mq repo with guarded patches foo $ hg qnew foo $ hg qguard foo +baz $ echo foo > foo + $ hg add foo $ hg qref $ hg qpop popping foo @@ -258,6 +259,7 @@ Create mq repo with guarded patches foo $ hg qnew bar $ hg qguard bar +baz $ echo bar > bar + $ hg add bar $ hg qref $ hg qguard -l @@ -272,13 +274,13 @@ Create mq repo with guarded patches foo 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 @@ Create new head to rebase bar onto: 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)