[PATCH] mq: --keep default behaviour of qdelete
Erik Zielke
ez at aragost.com
Thu Oct 14 04:45:14 CDT 2010
# HG changeset patch
# User Erik Zielke <ez at aragost.com>
# Date 1286288142 -7200
# Node ID 2088b605790bfbeb7e99b37b3de6baa59d8d5e2e
# Parent 80a3d1121c106fd972fa84423f55b2ce2e9407c9
mq: --keep default behaviour of qdelete.
Changed qdelete so that keep is default behaviour, and renames the
patch by appending .deleted to the patch file name.
If a .deleted patch files of that name already exists, it will be
deleted, and the new deleted patch will be renamed to that name.
diff -r 80a3d1121c10 -r 2088b605790b hgext/mq.py
--- a/hgext/mq.py Thu Oct 14 01:28:29 2010 +0200
+++ b/hgext/mq.py Tue Oct 05 16:15:42 2010 +0200
@@ -714,6 +714,12 @@
else:
for p in patches:
os.unlink(self.join(p))
+ else:
+ for p in patches:
+ deletedfilename = self.join(p) + '.deleted'
+ if os.path.isfile(deletedfilename):
+ os.unlink(deletedfilename)
+ os.rename(self.join(p), deletedfilename)
if numrevs:
del self.applied[:numrevs]
@@ -779,7 +785,11 @@
realpatches += revpatches
numrevs = len(revpatches)
- self._cleanup(realpatches, numrevs, opts.get('keep'))
+ keep = True
+ if opts.get('delete'):
+ keep = False
+
+ self._cleanup(realpatches, numrevs, keep)
def check_toppatch(self, repo):
if self.applied:
@@ -1743,8 +1753,9 @@
def delete(ui, repo, *patches, **opts):
"""remove patches from queue
- The patches must not be applied, and at least one patch is required. With
- -k/--keep, the patch files are preserved in the patch directory.
+ The patches must not be applied, and at least one patch is required. The
+ the patch files are preserved in the patch directory, with .deleted
+ appended to its name.
To stop managing a patch and move it into permanent history,
use the :hg:`qfinish` command."""
@@ -3039,10 +3050,11 @@
_('hg qdiff [OPTION]... [FILE]...')),
"qdelete|qremove|qrm":
(delete,
- [('k', 'keep', None, _('keep patch file')),
+ [('k', 'keep', None, _('keep patch file (DEPRECATED)')),
+ ('d', 'delete', None, _('delete patch file')),
('r', 'rev', [],
_('stop managing a revision (DEPRECATED)'), _('REV'))],
- _('hg qdelete [-k] [PATCH]...')),
+ _('hg qdelete [-d] [PATCH]...')),
'qfold':
(fold,
[('e', 'edit', None, _('edit patch header')),
diff -r 80a3d1121c10 -r 2088b605790b tests/test-mq-guards.t
--- a/tests/test-mq-guards.t Thu Oct 14 01:28:29 2010 +0200
+++ b/tests/test-mq-guards.t Tue Oct 05 16:15:42 2010 +0200
@@ -426,11 +426,11 @@
hg qseries -m: only b.patch should be shown
the guards file was not ignored in the past
- $ hg qdelete -k b.patch
+ $ hg qdelete b.patch
$ hg qseries -m
- b.patch
+ b.patch.deleted
hg qseries -m with color
$ hg --config extensions.color= qseries -m --color=always
- [0;31;1mb.patch[0m
+ [0;31;1mb.patch.deleted[0m
diff -r 80a3d1121c10 -r 2088b605790b tests/test-mq-qdelete.t
--- a/tests/test-mq-qdelete.t Thu Oct 14 01:28:29 2010 +0200
+++ b/tests/test-mq-qdelete.t Tue Oct 05 16:15:42 2010 +0200
@@ -16,7 +16,7 @@
abort: qdelete requires at least one revision or patch name
[255]
- $ hg qdel c
+ $ hg qdel -d c
abort: cannot delete applied patch c
[255]
@@ -26,7 +26,7 @@
Delete the same patch twice in one command (issue2427)
- $ hg qdel c c
+ $ hg qdel -d c c
$ hg qseries
a
@@ -42,11 +42,10 @@
popping b
now at: a
- $ hg qdel -k 1
+ $ hg qdel -d 1
$ ls .hg/patches
a
- b
series
status
@@ -158,7 +157,7 @@
popping 3.diff
patch queue now empty
$ hg qdel -k 3.diff
- $ hg qimp -e 3.diff
- adding 3.diff to series file
+ $ hg qimp -e 3.diff.deleted
+ adding 3.diff.deleted to series file
$ hg qfinish -a
no patches applied
diff -r 80a3d1121c10 -r 2088b605790b tests/test-mq-qimport.t
--- a/tests/test-mq-qimport.t Thu Oct 14 01:28:29 2010 +0200
+++ b/tests/test-mq-qimport.t Tue Oct 05 16:15:42 2010 +0200
@@ -167,18 +167,18 @@
$ hg qpop -a
popping 2.diff
patch queue now empty
- $ hg qdel -k 2.diff
+ $ hg qdel 2.diff
qimport -e
- $ hg qimport -e 2.diff
- adding 2.diff to series file
- $ hg qdel -k 2.diff
+ $ hg qimport -e 2.diff.deleted
+ adding 2.diff.deleted to series file
+ $ hg qdel 2.diff.deleted
qimport -e --name newname oldexisitingpatch
- $ hg qimport -e --name this-name-is-better 2.diff
- renaming 2.diff to this-name-is-better
+ $ hg qimport -e --name this-name-is-better 2.diff.deleted.deleted
+ renaming 2.diff.deleted.deleted to this-name-is-better
adding this-name-is-better to series file
$ hg qser
this-name-is-better
diff -r 80a3d1121c10 -r 2088b605790b tests/test-mq-qnew.t
--- a/tests/test-mq-qnew.t Thu Oct 14 01:28:29 2010 +0200
+++ b/tests/test-mq-qnew.t Tue Oct 05 16:15:42 2010 +0200
@@ -26,7 +26,7 @@
> hg qnew foo/bar.patch
> hg qseries
> hg qpop
- > hg qdelete foo/bar.patch
+ > hg qdelete -d foo/bar.patch
>
> echo '% qnew with uncommitted changes'
> echo a > somefile
More information about the Mercurial-devel
mailing list