##// END OF EJS Templates
mq: reject new patch name containing leading/trailing whitespace...
Yuya Nishihara -
r31556:448acdee default
parent child Browse files
Show More
@@ -1116,6 +1116,10 b' class queue(object):'
1116 if name in self._reserved:
1116 if name in self._reserved:
1117 raise error.Abort(_('"%s" cannot be used as the name of a patch')
1117 raise error.Abort(_('"%s" cannot be used as the name of a patch')
1118 % name)
1118 % name)
1119 if name != name.strip():
1120 # whitespace is stripped by parseseries()
1121 raise error.Abort(_('patch name cannot begin or end with '
1122 'whitespace'))
1119 for prefix in ('.hg', '.mq'):
1123 for prefix in ('.hg', '.mq'):
1120 if name.startswith(prefix):
1124 if name.startswith(prefix):
1121 raise error.Abort(_('patch name cannot begin with "%s"')
1125 raise error.Abort(_('patch name cannot begin with "%s"')
@@ -247,11 +247,28 b' qimport -e --name with --force'
247 this-name-is-better
247 this-name-is-better
248 url.diff
248 url.diff
249
249
250 import patch of bad filename
251
252 $ touch '../ bad.diff'
253 $ hg qimport '../ bad.diff'
254 abort: patch name cannot begin or end with whitespace
255 [255]
256 $ touch '.hg/patches/ bad.diff'
257 $ hg qimport -e ' bad.diff'
258 abort: patch name cannot begin or end with whitespace
259 [255]
260
250 qimport with bad name, should abort before reading file
261 qimport with bad name, should abort before reading file
251
262
252 $ hg qimport non-existent-file --name .hg
263 $ hg qimport non-existent-file --name .hg
253 abort: patch name cannot begin with ".hg"
264 abort: patch name cannot begin with ".hg"
254 [255]
265 [255]
266 $ hg qimport non-existent-file --name ' foo'
267 abort: patch name cannot begin or end with whitespace
268 [255]
269 $ hg qimport non-existent-file --name 'foo '
270 abort: patch name cannot begin or end with whitespace
271 [255]
255
272
256 qimport http:// patch with leading slashes in url
273 qimport http:// patch with leading slashes in url
257
274
@@ -22,6 +22,8 b''
22 > hg qnew 'foo#bar'
22 > hg qnew 'foo#bar'
23 > hg qnew 'foo:bar'
23 > hg qnew 'foo:bar'
24 > hg qnew "`echo foo; echo bar`"
24 > hg qnew "`echo foo; echo bar`"
25 > hg qnew ' foo'
26 > hg qnew 'foo '
25 >
27 >
26 > hg qinit -c
28 > hg qinit -c
27 >
29 >
@@ -112,6 +114,8 b' plain headers'
112 abort: '#' cannot be used in the name of a patch
114 abort: '#' cannot be used in the name of a patch
113 abort: ':' cannot be used in the name of a patch
115 abort: ':' cannot be used in the name of a patch
114 abort: '\n' cannot be used in the name of a patch
116 abort: '\n' cannot be used in the name of a patch
117 abort: patch name cannot begin or end with whitespace
118 abort: patch name cannot begin or end with whitespace
115 % qnew with name containing slash
119 % qnew with name containing slash
116 abort: path ends in directory separator: foo/ (glob)
120 abort: path ends in directory separator: foo/ (glob)
117 abort: "foo" already exists as a directory
121 abort: "foo" already exists as a directory
@@ -180,6 +184,8 b' hg headers'
180 abort: '#' cannot be used in the name of a patch
184 abort: '#' cannot be used in the name of a patch
181 abort: ':' cannot be used in the name of a patch
185 abort: ':' cannot be used in the name of a patch
182 abort: '\n' cannot be used in the name of a patch
186 abort: '\n' cannot be used in the name of a patch
187 abort: patch name cannot begin or end with whitespace
188 abort: patch name cannot begin or end with whitespace
183 % qnew with name containing slash
189 % qnew with name containing slash
184 abort: path ends in directory separator: foo/ (glob)
190 abort: path ends in directory separator: foo/ (glob)
185 abort: "foo" already exists as a directory
191 abort: "foo" already exists as a directory
@@ -313,36 +319,3 b' Test saving last-message.txt'
313 > [hooks]
319 > [hooks]
314 > pretxncommit.unexpectedabort =
320 > pretxncommit.unexpectedabort =
315 > EOF
321 > EOF
316
317 #if unix-permissions
318
319 Test handling default message with the patch filename with tail whitespaces
320
321 $ cat > $TESTTMP/editor.sh << EOF
322 > echo "==== before editing"
323 > cat \$1
324 > echo "===="
325 > echo "[mq]: patch " > \$1
326 > EOF
327
328 $ rm -f .hg/last-message.txt
329 $ hg status
330 $ HGEDITOR="sh $TESTTMP/editor.sh" hg qnew -e "patch "
331 ==== before editing
332
333
334 HG: Enter commit message. Lines beginning with 'HG:' are removed.
335 HG: Leave message empty to use default message.
336 HG: --
337 HG: user: test
338 HG: branch 'default'
339 HG: no files changed
340 ====
341 $ cat ".hg/patches/patch "
342 # HG changeset patch
343 # Parent 0000000000000000000000000000000000000000
344
345
346 $ cd ..
347
348 #endif
@@ -239,6 +239,12 b' qrecord with bad patch name, should abor'
239 $ hg qrecord .hg
239 $ hg qrecord .hg
240 abort: patch name cannot begin with ".hg"
240 abort: patch name cannot begin with ".hg"
241 [255]
241 [255]
242 $ hg qrecord ' foo'
243 abort: patch name cannot begin or end with whitespace
244 [255]
245 $ hg qrecord 'foo '
246 abort: patch name cannot begin or end with whitespace
247 [255]
242
248
243 qrecord a.patch
249 qrecord a.patch
244
250
General Comments 0
You need to be logged in to leave comments. Login now