[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