diff hgext/rebase.py @ 14497:ea585f2b1adc stable

rebase: restore mq guards after rebasing (issue2107) Guards on rebased mq patches were lost. This patch restores them after the qimporting step.
author Stefano Tortarolo <stefano.tortarolo@gmail.com>
date Sat, 26 Mar 2011 13:05:17 +0100
parents 14c0988c314d
children 4f695345979c
line wrap: on
line diff
--- a/hgext/rebase.py	Wed Mar 16 23:09:14 2011 +0100
+++ b/hgext/rebase.py	Sat Mar 26 13:05:17 2011 +0100
@@ -354,6 +354,8 @@
     'Update rebased mq patches - finalize and then import them'
     mqrebase = {}
     mq = repo.mq
+    original_series = mq.full_series[:]
+
     for p in mq.applied:
         rev = repo[p.node].rev()
         if rev in state:
@@ -371,6 +373,15 @@
                 repo.ui.debug('import mq patch %d (%s)\n' % (state[rev], name))
                 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.full_series:
+                repo.ui.debug('restoring guard for patch %s' % (pname))
+                mq.full_series.remove(pname)
+                mq.full_series.append(s)
+                mq.series_dirty = True
         mq.save_dirty()
 
 def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches,