-def __delete_empty(patches, push = False):
- """Delete the empty patches
- """
- for p in patches:
- if crt_series.empty_patch(p):
- print 'Deleting patch "%s"...' % p,
- sys.stdout.flush()
- crt_series.delete_patch(p)
- print 'done'
- elif push:
- crt_series.push_patch(p)
+def _clean(stack, clean_applied, clean_unapplied):
+ trans = transaction.StackTransaction(stack, 'clean')
+ def del_patch(pn):
+ if pn in stack.patchorder.applied:
+ return clean_applied and trans.patches[pn].data.is_nochange()
+ elif pn in stack.patchorder.unapplied:
+ return clean_unapplied and trans.patches[pn].data.is_nochange()
+ for pn in trans.delete_patches(del_patch):
+ trans.push_patch(pn)
+ trans.run()