##// END OF EJS Templates
match: drop unnecessary wrapping of regex in group...
Martin von Zweigbergk -
r40818:3984409e default
parent child Browse files
Show More
@@ -1185,11 +1185,10 b' def _buildmatch(kindpats, globsuffix, li'
1185 1185 return regex, lambda f: any(mf(f) for mf in matchfuncs)
1186 1186
1187 1187 MAX_RE_SIZE = 20000
1188 _BASE_SIZE = len('(?:)')
1189 1188
1190 1189 def _joinregexes(regexps):
1191 1190 """gather multiple regular expressions into a single one"""
1192 return '(?:%s)' % '|'.join(regexps)
1191 return '|'.join(regexps)
1193 1192
1194 1193 def _buildregexmatch(kindpats, globsuffix):
1195 1194 """Build a match function from a list of kinds and kindpats,
@@ -1209,17 +1208,17 b' def _buildregexmatch(kindpats, globsuffi'
1209 1208 fullregexp = _joinregexes(regexps)
1210 1209
1211 1210 startidx = 0
1212 groupsize = _BASE_SIZE
1211 groupsize = 0
1213 1212 for idx, r in enumerate(regexps):
1214 1213 piecesize = len(r)
1215 if (piecesize + _BASE_SIZE) > MAX_RE_SIZE:
1214 if piecesize > MAX_RE_SIZE:
1216 1215 msg = _("matcher pattern is too long (%d bytes)") % piecesize
1217 1216 raise error.Abort(msg)
1218 1217 elif (groupsize + piecesize) > MAX_RE_SIZE:
1219 1218 group = regexps[startidx:idx]
1220 1219 allgroups.append(_joinregexes(group))
1221 1220 startidx = idx
1222 groupsize = _BASE_SIZE
1221 groupsize = 0
1223 1222 groupsize += piecesize + 1
1224 1223
1225 1224 if startidx == 0:
@@ -1233,7 +1232,7 b' def _buildregexmatch(kindpats, globsuffi'
1233 1232 except re.error:
1234 1233 for k, p, s in kindpats:
1235 1234 try:
1236 _rematcher('(?:%s)' % _regex(k, p, globsuffix))
1235 _rematcher(_regex(k, p, globsuffix))
1237 1236 except re.error:
1238 1237 if s:
1239 1238 raise error.Abort(_("%s: invalid pattern (%s): %s") %
@@ -19,18 +19,18 b' Test operators and basic patterns'
19 19 $ fileset -v a1
20 20 (symbol 'a1')
21 21 * matcher:
22 <patternmatcher patterns='(?:a1$)'>
22 <patternmatcher patterns='a1$'>
23 23 a1
24 24 $ fileset -v 'a*'
25 25 (symbol 'a*')
26 26 * matcher:
27 <patternmatcher patterns='(?:a[^/]*$)'>
27 <patternmatcher patterns='a[^/]*$'>
28 28 a1
29 29 a2
30 30 $ fileset -v '"re:a\d"'
31 31 (string 're:a\\d')
32 32 * matcher:
33 <patternmatcher patterns='(?:a\\d)'>
33 <patternmatcher patterns='a\\d'>
34 34 a1
35 35 a2
36 36 $ fileset -v '!re:"a\d"'
@@ -41,7 +41,7 b' Test operators and basic patterns'
41 41 * matcher:
42 42 <predicatenmatcher
43 43 pred=<not
44 <patternmatcher patterns='(?:a\\d)'>>>
44 <patternmatcher patterns='a\\d'>>>
45 45 b1
46 46 b2
47 47 $ fileset -v 'path:a1 or glob:b?'
@@ -53,7 +53,7 b' Test operators and basic patterns'
53 53 (symbol 'glob')
54 54 (symbol 'b?')))
55 55 * matcher:
56 <patternmatcher patterns='(?:a1(?:/|$)|b.$)'>
56 <patternmatcher patterns='a1(?:/|$)|b.$'>
57 57 a1
58 58 b1
59 59 b2
@@ -196,7 +196,7 b' Show parsed tree at stages:'
196 196 (string 'b'))))
197 197 * matcher:
198 198 <unionmatcher matchers=[
199 <patternmatcher patterns='(?:a1$|a2$)'>,
199 <patternmatcher patterns='a1$|a2$'>,
200 200 <intersectionmatcher
201 201 m1=<predicatenmatcher pred=clean>,
202 202 m2=<predicatenmatcher pred=grep('b')>>]>
@@ -216,7 +216,7 b' Union of basic patterns:'
216 216 (symbol 'path')
217 217 (symbol 'b1')))
218 218 * matcher:
219 <patternmatcher patterns='(?:a1$|a2$|b1(?:/|$))'>
219 <patternmatcher patterns='a1$|a2$|b1(?:/|$)'>
220 220 a1
221 221 a2
222 222 b1
@@ -237,7 +237,7 b' OR expression should be reordered by wei'
237 237 (string 'b')))
238 238 * matcher:
239 239 <unionmatcher matchers=[
240 <patternmatcher patterns='(?:a1$|b2$)'>,
240 <patternmatcher patterns='a1$|b2$'>,
241 241 <predicatenmatcher pred=grep('a')>,
242 242 <predicatenmatcher pred=grep('b')>]>
243 243 a1
@@ -254,8 +254,8 b" Use differencematcher for 'x and not y':"
254 254 (symbol 'a1'))
255 255 * matcher:
256 256 <differencematcher
257 m1=<patternmatcher patterns='(?:a[^/]*$)'>,
258 m2=<patternmatcher patterns='(?:a1$)'>>
257 m1=<patternmatcher patterns='a[^/]*$'>,
258 m2=<patternmatcher patterns='a1$'>>
259 259 a2
260 260
261 261 $ fileset -p optimized -s '!binary() and a*'
@@ -267,7 +267,7 b" Use differencematcher for 'x and not y':"
267 267 None))
268 268 * matcher:
269 269 <differencematcher
270 m1=<patternmatcher patterns='(?:a[^/]*$)'>,
270 m1=<patternmatcher patterns='a[^/]*$'>,
271 271 m2=<predicatenmatcher pred=binary>>
272 272 a1
273 273 a2
@@ -286,8 +286,8 b" Use differencematcher for 'x and not y':"
286 286 (symbol 'a1'))
287 287 * matcher:
288 288 <differencematcher
289 m1=<patternmatcher patterns='(?:a[^/]*$)'>,
290 m2=<patternmatcher patterns='(?:a1$)'>>
289 m1=<patternmatcher patterns='a[^/]*$'>,
290 m2=<patternmatcher patterns='a1$'>>
291 291 a2
292 292
293 293 $ fileset -p analyzed -p optimized -s 'binary() - a*'
@@ -309,7 +309,7 b" Use differencematcher for 'x and not y':"
309 309 <intersectionmatcher
310 310 m1=<predicatenmatcher
311 311 pred=<not
312 <patternmatcher patterns='(?:a[^/]*$)'>>>,
312 <patternmatcher patterns='a[^/]*$'>>>,
313 313 m2=<predicatenmatcher pred=binary>>
314 314
315 315 Test files status
@@ -551,7 +551,7 b' Test files properties'
551 551 None))
552 552 * matcher:
553 553 <intersectionmatcher
554 m1=<patternmatcher patterns='(?:b[^/]*$)'>,
554 m1=<patternmatcher patterns='b[^/]*$'>,
555 555 m2=<predicatenmatcher pred=binary>>
556 556 bin
557 557
@@ -197,7 +197,7 b' Test relative ignore path (issue4473):'
197 197 A b.o
198 198
199 199 $ hg debugignore
200 <includematcher includes='(?:(?:|.*/)[^/]*(?:/|$))'>
200 <includematcher includes='(?:|.*/)[^/]*(?:/|$)'>
201 201
202 202 $ hg debugignore b.o
203 203 b.o is ignored
@@ -51,7 +51,7 b' Can not modify dirstate outside'
51 51 $ touch outside/f1
52 52 $ hg debugwalk -v -I 'relglob:f1'
53 53 * matcher:
54 <includematcher includes='(?:(?:|.*/)f1(?:/|$))'>
54 <includematcher includes='(?:|.*/)f1(?:/|$)'>
55 55 f inside/f1 inside/f1
56 56 $ hg add .
57 57 $ hg add outside/f1
@@ -46,7 +46,7 b''
46 46 f mammals/skunk mammals/skunk
47 47 $ hg debugwalk -v -I.
48 48 * matcher:
49 <includematcher includes='(?:)'>
49 <includematcher includes=''>
50 50 f beans/black beans/black
51 51 f beans/borlotti beans/borlotti
52 52 f beans/kidney beans/kidney
@@ -82,7 +82,7 b''
82 82 * matcher:
83 83 <differencematcher
84 84 m1=<alwaysmatcher>,
85 m2=<includematcher includes='(?:beans(?:/|$))'>>
85 m2=<includematcher includes='beans(?:/|$)'>>
86 86 f fennel ../fennel
87 87 f fenugreek ../fenugreek
88 88 f fiddlehead ../fiddlehead
@@ -92,39 +92,39 b''
92 92 f mammals/skunk skunk
93 93 $ hg debugwalk -v -I '*k'
94 94 * matcher:
95 <includematcher includes='(?:mammals/[^/]*k(?:/|$))'>
95 <includematcher includes='mammals/[^/]*k(?:/|$)'>
96 96 f mammals/skunk skunk
97 97 $ hg debugwalk -v -I 'glob:*k'
98 98 * matcher:
99 <includematcher includes='(?:mammals/[^/]*k(?:/|$))'>
99 <includematcher includes='mammals/[^/]*k(?:/|$)'>
100 100 f mammals/skunk skunk
101 101 $ hg debugwalk -v -I 'relglob:*k'
102 102 * matcher:
103 <includematcher includes='(?:(?:|.*/)[^/]*k(?:/|$))'>
103 <includematcher includes='(?:|.*/)[^/]*k(?:/|$)'>
104 104 f beans/black ../beans/black
105 105 f fenugreek ../fenugreek
106 106 f mammals/skunk skunk
107 107 $ hg debugwalk -v -I 'relglob:*k' .
108 108 * matcher:
109 109 <intersectionmatcher
110 m1=<patternmatcher patterns='(?:mammals(?:/|$))'>,
111 m2=<includematcher includes='(?:(?:|.*/)[^/]*k(?:/|$))'>>
110 m1=<patternmatcher patterns='mammals(?:/|$)'>,
111 m2=<includematcher includes='(?:|.*/)[^/]*k(?:/|$)'>>
112 112 f mammals/skunk skunk
113 113 $ hg debugwalk -v -I 're:.*k$'
114 114 * matcher:
115 <includematcher includes='(?:.*k$)'>
115 <includematcher includes='.*k$'>
116 116 f beans/black ../beans/black
117 117 f fenugreek ../fenugreek
118 118 f mammals/skunk skunk
119 119 $ hg debugwalk -v -I 'relre:.*k$'
120 120 * matcher:
121 <includematcher includes='(?:.*.*k$)'>
121 <includematcher includes='.*.*k$'>
122 122 f beans/black ../beans/black
123 123 f fenugreek ../fenugreek
124 124 f mammals/skunk skunk
125 125 $ hg debugwalk -v -I 'path:beans'
126 126 * matcher:
127 <includematcher includes='(?:beans(?:/|$))'>
127 <includematcher includes='beans(?:/|$)'>
128 128 f beans/black ../beans/black
129 129 f beans/borlotti ../beans/borlotti
130 130 f beans/kidney ../beans/kidney
@@ -133,7 +133,7 b''
133 133 f beans/turtle ../beans/turtle
134 134 $ hg debugwalk -v -I 'relpath:detour/../../beans'
135 135 * matcher:
136 <includematcher includes='(?:beans(?:/|$))'>
136 <includematcher includes='beans(?:/|$)'>
137 137 f beans/black ../beans/black
138 138 f beans/borlotti ../beans/borlotti
139 139 f beans/kidney ../beans/kidney
@@ -246,21 +246,21 b''
246 246
247 247 $ hg debugwalk -v .
248 248 * matcher:
249 <patternmatcher patterns='(?:mammals(?:/|$))'>
249 <patternmatcher patterns='mammals(?:/|$)'>
250 250 f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
251 251 f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
252 252 f mammals/Procyonidae/raccoon Procyonidae/raccoon
253 253 f mammals/skunk skunk
254 254 $ hg debugwalk -v -I.
255 255 * matcher:
256 <includematcher includes='(?:mammals(?:/|$))'>
256 <includematcher includes='mammals(?:/|$)'>
257 257 f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
258 258 f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
259 259 f mammals/Procyonidae/raccoon Procyonidae/raccoon
260 260 f mammals/skunk skunk
261 261 $ hg debugwalk -v Procyonidae
262 262 * matcher:
263 <patternmatcher patterns='(?:mammals/Procyonidae(?:/|$))'>
263 <patternmatcher patterns='mammals/Procyonidae(?:/|$)'>
264 264 f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
265 265 f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
266 266 f mammals/Procyonidae/raccoon Procyonidae/raccoon
@@ -268,13 +268,13 b''
268 268 $ cd Procyonidae
269 269 $ hg debugwalk -v .
270 270 * matcher:
271 <patternmatcher patterns='(?:mammals/Procyonidae(?:/|$))'>
271 <patternmatcher patterns='mammals/Procyonidae(?:/|$)'>
272 272 f mammals/Procyonidae/cacomistle cacomistle
273 273 f mammals/Procyonidae/coatimundi coatimundi
274 274 f mammals/Procyonidae/raccoon raccoon
275 275 $ hg debugwalk -v ..
276 276 * matcher:
277 <patternmatcher patterns='(?:mammals(?:/|$))'>
277 <patternmatcher patterns='mammals(?:/|$)'>
278 278 f mammals/Procyonidae/cacomistle cacomistle
279 279 f mammals/Procyonidae/coatimundi coatimundi
280 280 f mammals/Procyonidae/raccoon raccoon
@@ -283,7 +283,7 b''
283 283
284 284 $ hg debugwalk -v ../beans
285 285 * matcher:
286 <patternmatcher patterns='(?:beans(?:/|$))'>
286 <patternmatcher patterns='beans(?:/|$)'>
287 287 f beans/black ../beans/black
288 288 f beans/borlotti ../beans/borlotti
289 289 f beans/kidney ../beans/kidney
@@ -292,7 +292,7 b''
292 292 f beans/turtle ../beans/turtle
293 293 $ hg debugwalk -v .
294 294 * matcher:
295 <patternmatcher patterns='(?:mammals(?:/|$))'>
295 <patternmatcher patterns='mammals(?:/|$)'>
296 296 f mammals/Procyonidae/cacomistle Procyonidae/cacomistle
297 297 f mammals/Procyonidae/coatimundi Procyonidae/coatimundi
298 298 f mammals/Procyonidae/raccoon Procyonidae/raccoon
@@ -307,7 +307,7 b''
307 307
308 308 $ hg debugwalk -v -Ibeans
309 309 * matcher:
310 <includematcher includes='(?:beans(?:/|$))'>
310 <includematcher includes='beans(?:/|$)'>
311 311 f beans/black beans/black
312 312 f beans/borlotti beans/borlotti
313 313 f beans/kidney beans/kidney
@@ -316,39 +316,39 b''
316 316 f beans/turtle beans/turtle
317 317 $ hg debugwalk -v -I '{*,{b,m}*/*}k'
318 318 * matcher:
319 <includematcher includes='(?:(?:[^/]*|(?:b|m)[^/]*/[^/]*)k(?:/|$))'>
319 <includematcher includes='(?:[^/]*|(?:b|m)[^/]*/[^/]*)k(?:/|$)'>
320 320 f beans/black beans/black
321 321 f fenugreek fenugreek
322 322 f mammals/skunk mammals/skunk
323 323 $ hg debugwalk -v -Ibeans mammals
324 324 * matcher:
325 325 <intersectionmatcher
326 m1=<patternmatcher patterns='(?:mammals(?:/|$))'>,
327 m2=<includematcher includes='(?:beans(?:/|$))'>>
326 m1=<patternmatcher patterns='mammals(?:/|$)'>,
327 m2=<includematcher includes='beans(?:/|$)'>>
328 328 $ hg debugwalk -v -Inon-existent
329 329 * matcher:
330 <includematcher includes='(?:non\\-existent(?:/|$))'>
330 <includematcher includes='non\\-existent(?:/|$)'>
331 331 $ hg debugwalk -v -Inon-existent -Ibeans/black
332 332 * matcher:
333 <includematcher includes='(?:non\\-existent(?:/|$)|beans/black(?:/|$))'>
333 <includematcher includes='non\\-existent(?:/|$)|beans/black(?:/|$)'>
334 334 f beans/black beans/black
335 335 $ hg debugwalk -v -Ibeans beans/black
336 336 * matcher:
337 337 <intersectionmatcher
338 m1=<patternmatcher patterns='(?:beans/black(?:/|$))'>,
339 m2=<includematcher includes='(?:beans(?:/|$))'>>
338 m1=<patternmatcher patterns='beans/black(?:/|$)'>,
339 m2=<includematcher includes='beans(?:/|$)'>>
340 340 f beans/black beans/black exact
341 341 $ hg debugwalk -v -Ibeans/black beans
342 342 * matcher:
343 343 <intersectionmatcher
344 m1=<patternmatcher patterns='(?:beans(?:/|$))'>,
345 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
344 m1=<patternmatcher patterns='beans(?:/|$)'>,
345 m2=<includematcher includes='beans/black(?:/|$)'>>
346 346 f beans/black beans/black
347 347 $ hg debugwalk -v -Xbeans/black beans
348 348 * matcher:
349 349 <differencematcher
350 m1=<patternmatcher patterns='(?:beans(?:/|$))'>,
351 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
350 m1=<patternmatcher patterns='beans(?:/|$)'>,
351 m2=<includematcher includes='beans/black(?:/|$)'>>
352 352 f beans/borlotti beans/borlotti
353 353 f beans/kidney beans/kidney
354 354 f beans/navy beans/navy
@@ -357,8 +357,8 b''
357 357 $ hg debugwalk -v -Xbeans/black -Ibeans
358 358 * matcher:
359 359 <differencematcher
360 m1=<includematcher includes='(?:beans(?:/|$))'>,
361 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
360 m1=<includematcher includes='beans(?:/|$)'>,
361 m2=<includematcher includes='beans/black(?:/|$)'>>
362 362 f beans/borlotti beans/borlotti
363 363 f beans/kidney beans/kidney
364 364 f beans/navy beans/navy
@@ -367,37 +367,37 b''
367 367 $ hg debugwalk -v -Xbeans/black beans/black
368 368 * matcher:
369 369 <differencematcher
370 m1=<patternmatcher patterns='(?:beans/black(?:/|$))'>,
371 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
370 m1=<patternmatcher patterns='beans/black(?:/|$)'>,
371 m2=<includematcher includes='beans/black(?:/|$)'>>
372 372 $ hg debugwalk -v -Xbeans/black -Ibeans/black
373 373 * matcher:
374 374 <differencematcher
375 m1=<includematcher includes='(?:beans/black(?:/|$))'>,
376 m2=<includematcher includes='(?:beans/black(?:/|$))'>>
375 m1=<includematcher includes='beans/black(?:/|$)'>,
376 m2=<includematcher includes='beans/black(?:/|$)'>>
377 377 $ hg debugwalk -v -Xbeans beans/black
378 378 * matcher:
379 379 <differencematcher
380 m1=<patternmatcher patterns='(?:beans/black(?:/|$))'>,
381 m2=<includematcher includes='(?:beans(?:/|$))'>>
380 m1=<patternmatcher patterns='beans/black(?:/|$)'>,
381 m2=<includematcher includes='beans(?:/|$)'>>
382 382 $ hg debugwalk -v -Xbeans -Ibeans/black
383 383 * matcher:
384 384 <differencematcher
385 m1=<includematcher includes='(?:beans/black(?:/|$))'>,
386 m2=<includematcher includes='(?:beans(?:/|$))'>>
385 m1=<includematcher includes='beans/black(?:/|$)'>,
386 m2=<includematcher includes='beans(?:/|$)'>>
387 387 $ hg debugwalk -v 'glob:mammals/../beans/b*'
388 388 * matcher:
389 <patternmatcher patterns='(?:beans/b[^/]*$)'>
389 <patternmatcher patterns='beans/b[^/]*$'>
390 390 f beans/black beans/black
391 391 f beans/borlotti beans/borlotti
392 392 $ hg debugwalk -v '-X*/Procyonidae' mammals
393 393 * matcher:
394 394 <differencematcher
395 m1=<patternmatcher patterns='(?:mammals(?:/|$))'>,
396 m2=<includematcher includes='(?:[^/]*/Procyonidae(?:/|$))'>>
395 m1=<patternmatcher patterns='mammals(?:/|$)'>,
396 m2=<includematcher includes='[^/]*/Procyonidae(?:/|$)'>>
397 397 f mammals/skunk mammals/skunk
398 398 $ hg debugwalk -v path:mammals
399 399 * matcher:
400 <patternmatcher patterns='(?:mammals(?:/|$))'>
400 <patternmatcher patterns='mammals(?:/|$)'>
401 401 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
402 402 f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
403 403 f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
@@ -426,29 +426,29 b' Test explicit paths and excludes:'
426 426 $ hg debugwalk -v fennel -X fennel
427 427 * matcher:
428 428 <differencematcher
429 m1=<patternmatcher patterns='(?:fennel(?:/|$))'>,
430 m2=<includematcher includes='(?:fennel(?:/|$))'>>
429 m1=<patternmatcher patterns='fennel(?:/|$)'>,
430 m2=<includematcher includes='fennel(?:/|$)'>>
431 431 $ hg debugwalk -v fennel -X 'f*'
432 432 * matcher:
433 433 <differencematcher
434 m1=<patternmatcher patterns='(?:fennel(?:/|$))'>,
435 m2=<includematcher includes='(?:f[^/]*(?:/|$))'>>
434 m1=<patternmatcher patterns='fennel(?:/|$)'>,
435 m2=<includematcher includes='f[^/]*(?:/|$)'>>
436 436 $ hg debugwalk -v beans/black -X 'path:beans'
437 437 * matcher:
438 438 <differencematcher
439 m1=<patternmatcher patterns='(?:beans/black(?:/|$))'>,
440 m2=<includematcher includes='(?:beans(?:/|$))'>>
439 m1=<patternmatcher patterns='beans/black(?:/|$)'>,
440 m2=<includematcher includes='beans(?:/|$)'>>
441 441 $ hg debugwalk -v -I 'path:beans/black' -X 'path:beans'
442 442 * matcher:
443 443 <differencematcher
444 m1=<includematcher includes='(?:beans/black(?:/|$))'>,
445 m2=<includematcher includes='(?:beans(?:/|$))'>>
444 m1=<includematcher includes='beans/black(?:/|$)'>,
445 m2=<includematcher includes='beans(?:/|$)'>>
446 446
447 447 Test absolute paths:
448 448
449 449 $ hg debugwalk -v `pwd`/beans
450 450 * matcher:
451 <patternmatcher patterns='(?:beans(?:/|$))'>
451 <patternmatcher patterns='beans(?:/|$)'>
452 452 f beans/black beans/black
453 453 f beans/borlotti beans/borlotti
454 454 f beans/kidney beans/kidney
@@ -463,7 +463,7 b' Test patterns:'
463 463
464 464 $ hg debugwalk -v glob:\*
465 465 * matcher:
466 <patternmatcher patterns='(?:[^/]*$)'>
466 <patternmatcher patterns='[^/]*$'>
467 467 f fennel fennel
468 468 f fenugreek fenugreek
469 469 f fiddlehead fiddlehead
@@ -474,22 +474,22 b' Test patterns:'
474 474 warning: filename contains ':', which is reserved on Windows: 'glob:glob'
475 475 $ hg debugwalk -v glob:\*
476 476 * matcher:
477 <patternmatcher patterns='(?:[^/]*$)'>
477 <patternmatcher patterns='[^/]*$'>
478 478 f fennel fennel
479 479 f fenugreek fenugreek
480 480 f fiddlehead fiddlehead
481 481 f glob:glob glob:glob
482 482 $ hg debugwalk -v glob:glob
483 483 * matcher:
484 <patternmatcher patterns='(?:glob$)'>
484 <patternmatcher patterns='glob$'>
485 485 glob: $ENOENT$
486 486 $ hg debugwalk -v glob:glob:glob
487 487 * matcher:
488 <patternmatcher patterns='(?:glob:glob$)'>
488 <patternmatcher patterns='glob:glob$'>
489 489 f glob:glob glob:glob exact
490 490 $ hg debugwalk -v path:glob:glob
491 491 * matcher:
492 <patternmatcher patterns='(?:glob:glob(?:/|$))'>
492 <patternmatcher patterns='glob:glob(?:/|$)'>
493 493 f glob:glob glob:glob exact
494 494 $ rm glob:glob
495 495 $ hg addremove
@@ -498,45 +498,45 b' Test patterns:'
498 498
499 499 $ hg debugwalk -v 'glob:**e'
500 500 * matcher:
501 <patternmatcher patterns='(?:.*e$)'>
501 <patternmatcher patterns='.*e$'>
502 502 f beans/turtle beans/turtle
503 503 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
504 504
505 505 $ hg debugwalk -v 're:.*[kb]$'
506 506 * matcher:
507 <patternmatcher patterns='(?:.*[kb]$)'>
507 <patternmatcher patterns='.*[kb]$'>
508 508 f beans/black beans/black
509 509 f fenugreek fenugreek
510 510 f mammals/skunk mammals/skunk
511 511
512 512 $ hg debugwalk -v path:beans/black
513 513 * matcher:
514 <patternmatcher patterns='(?:beans/black(?:/|$))'>
514 <patternmatcher patterns='beans/black(?:/|$)'>
515 515 f beans/black beans/black exact
516 516 $ hg debugwalk -v path:beans//black
517 517 * matcher:
518 <patternmatcher patterns='(?:beans/black(?:/|$))'>
518 <patternmatcher patterns='beans/black(?:/|$)'>
519 519 f beans/black beans/black exact
520 520
521 521 $ hg debugwalk -v relglob:Procyonidae
522 522 * matcher:
523 <patternmatcher patterns='(?:(?:|.*/)Procyonidae$)'>
523 <patternmatcher patterns='(?:|.*/)Procyonidae$'>
524 524 $ hg debugwalk -v 'relglob:Procyonidae/**'
525 525 * matcher:
526 <patternmatcher patterns='(?:(?:|.*/)Procyonidae/.*$)'>
526 <patternmatcher patterns='(?:|.*/)Procyonidae/.*$'>
527 527 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
528 528 f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
529 529 f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
530 530 $ hg debugwalk -v 'relglob:Procyonidae/**' fennel
531 531 * matcher:
532 <patternmatcher patterns='(?:(?:|.*/)Procyonidae/.*$|fennel(?:/|$))'>
532 <patternmatcher patterns='(?:|.*/)Procyonidae/.*$|fennel(?:/|$)'>
533 533 f fennel fennel exact
534 534 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
535 535 f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
536 536 f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
537 537 $ hg debugwalk -v beans 'glob:beans/*'
538 538 * matcher:
539 <patternmatcher patterns='(?:beans(?:/|$)|beans/[^/]*$)'>
539 <patternmatcher patterns='beans(?:/|$)|beans/[^/]*$'>
540 540 f beans/black beans/black
541 541 f beans/borlotti beans/borlotti
542 542 f beans/kidney beans/kidney
@@ -545,14 +545,14 b' Test patterns:'
545 545 f beans/turtle beans/turtle
546 546 $ hg debugwalk -v 'glob:mamm**'
547 547 * matcher:
548 <patternmatcher patterns='(?:mamm.*$)'>
548 <patternmatcher patterns='mamm.*$'>
549 549 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
550 550 f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
551 551 f mammals/Procyonidae/raccoon mammals/Procyonidae/raccoon
552 552 f mammals/skunk mammals/skunk
553 553 $ hg debugwalk -v 'glob:mamm**' fennel
554 554 * matcher:
555 <patternmatcher patterns='(?:mamm.*$|fennel(?:/|$))'>
555 <patternmatcher patterns='mamm.*$|fennel(?:/|$)'>
556 556 f fennel fennel exact
557 557 f mammals/Procyonidae/cacomistle mammals/Procyonidae/cacomistle
558 558 f mammals/Procyonidae/coatimundi mammals/Procyonidae/coatimundi
@@ -560,34 +560,34 b' Test patterns:'
560 560 f mammals/skunk mammals/skunk
561 561 $ hg debugwalk -v 'glob:j*'
562 562 * matcher:
563 <patternmatcher patterns='(?:j[^/]*$)'>
563 <patternmatcher patterns='j[^/]*$'>
564 564 $ hg debugwalk -v NOEXIST
565 565 * matcher:
566 <patternmatcher patterns='(?:NOEXIST(?:/|$))'>
566 <patternmatcher patterns='NOEXIST(?:/|$)'>
567 567 NOEXIST: * (glob)
568 568
569 569 #if fifo
570 570 $ mkfifo fifo
571 571 $ hg debugwalk -v fifo
572 572 * matcher:
573 <patternmatcher patterns='(?:fifo(?:/|$))'>
573 <patternmatcher patterns='fifo(?:/|$)'>
574 574 fifo: unsupported file type (type is fifo)
575 575 #endif
576 576
577 577 $ rm fenugreek
578 578 $ hg debugwalk -v fenugreek
579 579 * matcher:
580 <patternmatcher patterns='(?:fenugreek(?:/|$))'>
580 <patternmatcher patterns='fenugreek(?:/|$)'>
581 581 f fenugreek fenugreek exact
582 582 $ hg rm fenugreek
583 583 $ hg debugwalk -v fenugreek
584 584 * matcher:
585 <patternmatcher patterns='(?:fenugreek(?:/|$))'>
585 <patternmatcher patterns='fenugreek(?:/|$)'>
586 586 f fenugreek fenugreek exact
587 587 $ touch new
588 588 $ hg debugwalk -v new
589 589 * matcher:
590 <patternmatcher patterns='(?:new(?:/|$))'>
590 <patternmatcher patterns='new(?:/|$)'>
591 591 f new new exact
592 592
593 593 $ mkdir ignored
@@ -595,10 +595,10 b' Test patterns:'
595 595 $ echo '^ignored$' > .hgignore
596 596 $ hg debugwalk -v ignored
597 597 * matcher:
598 <patternmatcher patterns='(?:ignored(?:/|$))'>
598 <patternmatcher patterns='ignored(?:/|$)'>
599 599 $ hg debugwalk -v ignored/file
600 600 * matcher:
601 <patternmatcher patterns='(?:ignored/file(?:/|$))'>
601 <patternmatcher patterns='ignored/file(?:/|$)'>
602 602 f ignored/file ignored/file exact
603 603
604 604 Test listfile and listfile0
@@ -606,13 +606,13 b' Test listfile and listfile0'
606 606 $ "$PYTHON" -c "open('listfile0', 'wb').write(b'fenugreek\0new\0')"
607 607 $ hg debugwalk -v -I 'listfile0:listfile0'
608 608 * matcher:
609 <includematcher includes='(?:fenugreek(?:/|$)|new(?:/|$))'>
609 <includematcher includes='fenugreek(?:/|$)|new(?:/|$)'>
610 610 f fenugreek fenugreek
611 611 f new new
612 612 $ "$PYTHON" -c "open('listfile', 'wb').write(b'fenugreek\nnew\r\nmammals/skunk\n')"
613 613 $ hg debugwalk -v -I 'listfile:listfile'
614 614 * matcher:
615 <includematcher includes='(?:fenugreek(?:/|$)|new(?:/|$)|mammals/skunk(?:/|$))'>
615 <includematcher includes='fenugreek(?:/|$)|new(?:/|$)|mammals/skunk(?:/|$)'>
616 616 f fenugreek fenugreek
617 617 f mammals/skunk mammals/skunk
618 618 f new new
@@ -620,17 +620,17 b' Test listfile and listfile0'
620 620 $ cd ..
621 621 $ hg debugwalk -v -R t t/mammals/skunk
622 622 * matcher:
623 <patternmatcher patterns='(?:mammals/skunk(?:/|$))'>
623 <patternmatcher patterns='mammals/skunk(?:/|$)'>
624 624 f mammals/skunk t/mammals/skunk exact
625 625 $ mkdir t2
626 626 $ cd t2
627 627 $ hg debugwalk -v -R ../t ../t/mammals/skunk
628 628 * matcher:
629 <patternmatcher patterns='(?:mammals/skunk(?:/|$))'>
629 <patternmatcher patterns='mammals/skunk(?:/|$)'>
630 630 f mammals/skunk ../t/mammals/skunk exact
631 631 $ hg debugwalk -v --cwd ../t mammals/skunk
632 632 * matcher:
633 <patternmatcher patterns='(?:mammals/skunk(?:/|$))'>
633 <patternmatcher patterns='mammals/skunk(?:/|$)'>
634 634 f mammals/skunk mammals/skunk exact
635 635
636 636 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now