mq: ban \r and \n in patch names (issue4711)
authorAugie Fackler <augie@google.com>
Fri, 05 Jun 2015 14:34:58 -0400
changeset 25454 b5a8bc09b0db
parent 25453 d3a00fc3680f
child 25455 dc02a284e034
mq: ban \r and \n in patch names (issue4711) This is at best crazy, and at worst will break things like the series file. Let's just stop the madness.
hgext/mq.py
tests/test-mq-qnew.t
--- a/hgext/mq.py	Fri Jun 05 14:31:52 2015 -0400
+++ b/hgext/mq.py	Fri Jun 05 14:34:58 2015 -0400
@@ -1102,7 +1102,7 @@
             if name.startswith(prefix):
                 raise util.Abort(_('patch name cannot begin with "%s"')
                                  % prefix)
-        for c in ('#', ':'):
+        for c in ('#', ':', '\r', '\n'):
             if c in name:
                 raise util.Abort(_('%r cannot be used in the name of a patch')
                                  % c)
--- a/tests/test-mq-qnew.t	Fri Jun 05 14:31:52 2015 -0400
+++ b/tests/test-mq-qnew.t	Fri Jun 05 14:34:58 2015 -0400
@@ -21,6 +21,7 @@
   >     hg qnew .mqfoo
   >     hg qnew 'foo#bar'
   >     hg qnew 'foo:bar'
+  >     hg qnew "`echo foo; echo bar`"
   > 
   >     hg qinit -c
   > 
@@ -110,6 +111,7 @@
   abort: patch name cannot begin with ".mq"
   abort: '#' cannot be used in the name of a patch
   abort: ':' cannot be used in the name of a patch
+  abort: '\n' cannot be used in the name of a patch
   % qnew with name containing slash
   abort: path ends in directory separator: foo/ (glob)
   abort: "foo" already exists as a directory
@@ -178,6 +180,7 @@
   abort: patch name cannot begin with ".mq"
   abort: '#' cannot be used in the name of a patch
   abort: ':' cannot be used in the name of a patch
+  abort: '\n' cannot be used in the name of a patch
   % qnew with name containing slash
   abort: path ends in directory separator: foo/ (glob)
   abort: "foo" already exists as a directory