Allow interactive merging via StackTransaction.reorder_patches()
authorCatalin Marinas <catalin.marinas@gmail.com>
Tue, 9 Mar 2010 10:05:58 +0000 (10:05 +0000)
committerCatalin Marinas <catalin.marinas@gmail.com>
Tue, 9 Mar 2010 10:05:58 +0000 (10:05 +0000)
This way other commands like sink and pop can use the interactive
mergetool.

Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
stgit/commands/pop.py
stgit/commands/sink.py
stgit/lib/transaction.py

index f67cc0a..abf2814 100644 (file)
@@ -79,7 +79,8 @@ def func(parser, options, args):
     applied = [p for p in trans.applied if not p in set(patches)]
     unapplied = patches + trans.unapplied
     try:
-        trans.reorder_patches(applied, unapplied, iw = iw)
+        trans.reorder_patches(applied, unapplied, iw = iw,
+                              allow_interactive = True)
     except transaction.TransactionException:
         pass
     return trans.run(iw)
index eadc27d..4b7535e 100644 (file)
@@ -89,7 +89,8 @@ def func(parser, options, args):
                                          check_clean_iw = clean_iw)
 
     try:
-        trans.reorder_patches(applied, unapplied, iw = iw)
+        trans.reorder_patches(applied, unapplied, iw = iw,
+                              allow_interactive = True)
     except transaction.TransactionHalted:
         pass
     return trans.run(iw)
index d82e724..e76f5ab 100644 (file)
@@ -398,7 +398,8 @@ class StackTransaction(object):
         del x[x.index(pn)]
         self.applied.append(pn)
 
-    def reorder_patches(self, applied, unapplied, hidden = None, iw = None):
+    def reorder_patches(self, applied, unapplied, hidden = None, iw = None,
+                        allow_interactive = False):
         """Push and pop patches to attain the given ordering."""
         if hidden is None:
             hidden = self.hidden
@@ -407,7 +408,7 @@ class StackTransaction(object):
         to_pop = set(self.applied[common:])
         self.pop_patches(lambda pn: pn in to_pop)
         for pn in applied[common:]:
-            self.push_patch(pn, iw)
+            self.push_patch(pn, iw, allow_interactive = allow_interactive)
         assert self.applied == applied
         assert set(self.unapplied + self.hidden) == set(unapplied + hidden)
         self.unapplied = unapplied