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 |
|
|
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 = |
|
|
1211 | groupsize = 0 | |
|
1213 | 1212 | for idx, r in enumerate(regexps): |
|
1214 | 1213 | piecesize = len(r) |
|
1215 |
if |
|
|
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 = |
|
|
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( |
|
|
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=' |
|
|
22 | <patternmatcher patterns='a1$'> | |
|
23 | 23 | a1 |
|
24 | 24 | $ fileset -v 'a*' |
|
25 | 25 | (symbol 'a*') |
|
26 | 26 | * matcher: |
|
27 |
<patternmatcher patterns=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
258 |
m2=<patternmatcher patterns=' |
|
|
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=' |
|
|
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=' |
|
|
290 |
m2=<patternmatcher patterns=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
111 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
327 |
m2=<includematcher includes=' |
|
|
326 | m1=<patternmatcher patterns='mammals(?:/|$)'>, | |
|
327 | m2=<includematcher includes='beans(?:/|$)'>> | |
|
328 | 328 | $ hg debugwalk -v -Inon-existent |
|
329 | 329 | * matcher: |
|
330 |
<includematcher includes=' |
|
|
330 | <includematcher includes='non\\-existent(?:/|$)'> | |
|
331 | 331 | $ hg debugwalk -v -Inon-existent -Ibeans/black |
|
332 | 332 | * matcher: |
|
333 |
<includematcher includes=' |
|
|
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=' |
|
|
339 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
345 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
351 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
361 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
371 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
376 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
381 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
386 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
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=' |
|
|
396 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
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=' |
|
|
430 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
435 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
440 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
445 |
m2=<includematcher includes=' |
|
|
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=' |
|
|
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=' |
|
|
484 | <patternmatcher patterns='glob$'> | |
|
485 | 485 | glob: $ENOENT$ |
|
486 | 486 | $ hg debugwalk -v glob:glob:glob |
|
487 | 487 | * matcher: |
|
488 |
<patternmatcher patterns=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
523 | <patternmatcher patterns='(?:|.*/)Procyonidae$'> | |
|
524 | 524 | $ hg debugwalk -v 'relglob:Procyonidae/**' |
|
525 | 525 | * matcher: |
|
526 |
<patternmatcher patterns=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
563 | <patternmatcher patterns='j[^/]*$'> | |
|
564 | 564 | $ hg debugwalk -v NOEXIST |
|
565 | 565 | * matcher: |
|
566 |
<patternmatcher patterns=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
598 | <patternmatcher patterns='ignored(?:/|$)'> | |
|
599 | 599 | $ hg debugwalk -v ignored/file |
|
600 | 600 | * matcher: |
|
601 |
<patternmatcher patterns=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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=' |
|
|
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