changeset 25454:b5a8bc09b0db

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.
author Augie Fackler <augie@google.com>
date Fri, 05 Jun 2015 14:34:58 -0400
parents d3a00fc3680f
children dc02a284e034
files hgext/mq.py tests/test-mq-qnew.t
diffstat 2 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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