[PATCH 2 of 2 stable] mq: check for reserved patch name with qimport -r (issue5033)
Mads Kiilerich
mads at kiilerich.com
Mon Jan 18 23:01:52 CST 2016
# HG changeset patch
# User Mads Kiilerich <madski at unity3d.com>
# Date 1453179659 -3600
# Tue Jan 19 06:00:59 2016 +0100
# Branch stable
# Node ID e5752aec54d89d3d8cb11d0c1c456a1fce57a1bf
# Parent 8e01eb2737b8cdaaf1c8aacdd7fe90664b9c6836
mq: check for reserved patch name with qimport -r (issue5033)
Fix regression from 143b52fce68e.
Catching aborts might not be pretty but it works and is a small change.
diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -1117,11 +1117,22 @@ class queue(object):
"""Return a suitable filename for title, adding a suffix to make
it unique in the existing list"""
namebase = re.sub('[\s\W_]+', '_', title.lower()).strip('_')
- if not namebase:
+ if namebase:
+ try:
+ self.checkreservedname(namebase)
+ except error.Abort:
+ namebase = fallbackname
+ else:
namebase = fallbackname
name = namebase
i = 0
- while name in self.fullseries:
+ while True:
+ if name not in self.fullseries:
+ try:
+ self.checkpatchname(name)
+ break
+ except error.Abort:
+ pass
i += 1
name = '%s__%s' % (namebase, i)
return name
diff --git a/tests/test-mq-qimport.t b/tests/test-mq-qimport.t
--- a/tests/test-mq-qimport.t
+++ b/tests/test-mq-qimport.t
@@ -200,9 +200,8 @@ try to import --push
patch b.diff finalized without changeset message
$ touch .hg/patches/append_foo
$ hg qimport -r 'p1(.)::'
- abort: patch "append_foo" already exists
- [255]
$ hg qapplied
+ append_foo__1
append_bar
$ hg qfin -a
$ rm .hg/patches/append_foo
@@ -313,3 +312,22 @@ check patch name generation for non-alph
2 U 0
3 U this-name-is-better
4 U url.diff
+
+check reserved patch names
+
+ $ hg qpop -qa
+ patch queue now empty
+ $ echo >> b
+ $ hg commit -m 'status'
+ $ echo >> b
+ $ hg commit -m '.'
+ $ echo >> b
+ $ hg commit -m 'taken'
+ $ mkdir .hg/patches/taken
+ $ touch .hg/patches/taken__1
+ $ hg qimport -r -3::
+ $ hg qap
+ 1.diff__1
+ 2.diff
+ taken__2
+
More information about the Mercurial-devel
mailing list