Fix the 'clean' command not to pop all the patches
authorCatalin Marinas <catalin.marinas@gmail.com>
Wed, 6 Dec 2006 22:12:13 +0000 (22:12 +0000)
committerCatalin Marinas <catalin.marinas@gmail.com>
Wed, 6 Dec 2006 22:12:13 +0000 (22:12 +0000)
With this patch, the 'clean' command only pops to the first empty
patch.

Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
stgit/commands/clean.py

index baa4a54..8f5c606 100644 (file)
@@ -38,16 +38,20 @@ options = [make_option('-a', '--applied',
                        action = 'store_true')]
 
 
-def __delete_empty(patches, push = False):
+def __delete_empty(patches, applied):
     """Delete the empty patches
     """
     for p in patches:
         if crt_series.empty_patch(p):
             print 'Deleting patch "%s"...' % p,
             sys.stdout.flush()
+
+            if applied and crt_series.patch_applied(p):
+                crt_series.pop_patch(p)
             crt_series.delete_patch(p)
+
             print 'done'
-        elif push:
+        elif applied and crt_series.patch_unapplied(p):
             crt_series.push_patch(p)
 
 def func(parser, options, args):
@@ -65,8 +69,6 @@ def func(parser, options, args):
 
     if options.applied:
         applied = crt_series.get_applied()
-        if applied != []:
-            crt_series.pop_patch(applied[0])
         __delete_empty(applied, True)
 
     if options.unapplied: