[PATCH 5 of 6] qrm: unify "qfinish" functionality and move it out of qdelete implementation

Mads Kiilerich mads at kiilerich.com
Mon Jul 12 16:05:49 CDT 2010


# HG changeset patch
# User Mads Kiilerich <mads at kiilerich.com>
# Date 1278968554 -7200
# Node ID 9b55beb5c4d0a3b3518044fc5194c2be7d6d42a8
# Parent  80107b6ca632a1ace718ee04a6e812eae94ae219
qrm: unify "qfinish" functionality and move it out of qdelete implementation

diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -748,10 +748,6 @@
         self._cleanup(patches, len(patches), opts.get('keep'))
 
     def delete(self, repo, patches, opts):
-        if not patches and not opts.get('rev'):
-            raise util.Abort(_('qdelete requires at least one revision or '
-                               'patch name'))
-
         realpatches = []
         for patch in patches:
             patch = self.lookup(patch, strict=True)
@@ -762,18 +758,7 @@
                 raise util.Abort(_("patch %s not in series file") % patch)
             realpatches.append(patch)
 
-        numrevs = 0
-        if opts.get('rev'):
-            if not self.applied:
-                raise util.Abort(_('no patches applied'))
-            revs = cmdutil.revrange(repo, opts['rev'])
-            if len(revs) > 1 and revs[0] > revs[1]:
-                revs.reverse()
-            revpatches = self._revpatches(repo, revs)
-            realpatches += revpatches
-            numrevs = len(revpatches)
-
-        self._cleanup(realpatches, numrevs, opts.get('keep'))
+        self._cleanup(realpatches, 0, opts.get('keep'))
 
     def check_toppatch(self, repo):
         if self.applied:
@@ -1729,7 +1714,13 @@
     To stop managing a patch and move it into permanent history,
     use the :hg:`qfinish` command."""
     q = repo.mq
-    q.delete(repo, patches, opts)
+    if not patches and not opts.get('rev'):
+        raise util.Abort(_('qdelete requires at least one patch name'))
+    if patches:
+        q.delete(repo, patches, opts)
+    if opts.get('rev'):
+        revs = cmdutil.revrange(repo, opts.get('rev'))
+        q.finish(repo, revs, opts)
     q.save_dirty()
     return 0
 
@@ -2951,7 +2942,7 @@
         (delete,
          [('k', 'keep', None, _('keep patch file')),
           ('r', 'rev', [],
-           _('stop managing a revision (DEPRECATED)'), _('REV'))],
+           _('finish a managed revision (DEPRECATED)'), _('REV'))],
          _('hg qdelete [-k] [-r REV]... [PATCH]...')),
     'qfold':
         (fold,
diff --git a/tests/test-mq-qdelete.out b/tests/test-mq-qdelete.out
--- a/tests/test-mq-qdelete.out
+++ b/tests/test-mq-qdelete.out
@@ -1,5 +1,5 @@
 adding base
-abort: qdelete requires at least one revision or patch name
+abort: qdelete requires at least one patch name
 abort: cannot delete applied patch c
 popping c
 now at: b


More information about the Mercurial-devel mailing list