changeset 22454:ac31d87608d6 stable

mq: use "mq.applied[i].name" instead of "mq.appliedname(i)" for safety Before this patch, "hg qselect --reapply" is aborted when "--verbose" is specified, because "mq.appliedname()" returns "INDEX PATCHNAME" instead of "PATCHNAME" in such case and "mq.push" can't accept the former as the name of patch. This patch uses "mq.applied[i].name" instead of "mq.appliedname(i)" as the name of the patch to be pushed for safety. Now, there is no code path using "mq.appliedname()", and it should be removed to prevent developers from using it in the wrong way like this issue.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Fri, 12 Sep 2014 02:29:19 +0900
parents fd0f0b0d316d
children c89379d47e95
files hgext/mq.py tests/test-mq-guards.t
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/mq.py	Fri Sep 12 02:29:19 2014 +0900
+++ b/hgext/mq.py	Fri Sep 12 02:29:19 2014 +0900
@@ -3015,7 +3015,7 @@
                 ui.write(g, '\n')
         else:
             ui.write(_('no active guards\n'))
-    reapply = opts.get('reapply') and q.applied and q.appliedname(-1)
+    reapply = opts.get('reapply') and q.applied and q.applied[-1].name
     popped = False
     if opts.get('pop') or opts.get('reapply'):
         for i in xrange(len(q.applied)):
--- a/tests/test-mq-guards.t	Fri Sep 12 02:29:19 2014 +0900
+++ b/tests/test-mq-guards.t	Fri Sep 12 02:29:19 2014 +0900
@@ -256,14 +256,21 @@
   $ hg qpush -a
   applying c.patch
   now at: c.patch
-  $ hg qselect -n --reapply
+  $ hg qselect -n --reapply -v
   guards deactivated
   popping guarded patches
   popping c.patch
   popping b.patch
   patch queue now empty
   reapplying unguarded patches
+  skipping a.patch - guarded by '+1' '+2'
+  skipping b.patch - guarded by '+2'
+  skipping a.patch - guarded by '+1' '+2'
+  skipping b.patch - guarded by '+2'
   applying c.patch
+  patching file c
+  adding c
+  c
   now at: c.patch
 
 guards in series file: +1 +2 -3