equal
deleted
inserted
replaced
356 p = mctx.ctx[f].parents() |
356 p = mctx.ctx[f].parents() |
357 if p and p[0].path() != f: |
357 if p and p[0].path() != f: |
358 s.append(f) |
358 s.append(f) |
359 return s |
359 return s |
360 |
360 |
|
361 def subrepo(mctx, x): |
|
362 """``subrepo([pattern])`` |
|
363 Subrepositories whose paths match the given pattern. |
|
364 """ |
|
365 # i18n: "subrepo" is a keyword |
|
366 getargs(x, 0, 1, _("subrepo takes at most one argument")) |
|
367 ctx = mctx.ctx |
|
368 sstate = ctx.substate |
|
369 if x: |
|
370 pat = getstring(x, _("subrepo requires a pattern or no arguments")) |
|
371 |
|
372 import match as matchmod # avoid circular import issues |
|
373 fast = not matchmod.patkind(pat) |
|
374 if fast: |
|
375 def m(s): |
|
376 return (s == pat) |
|
377 else: |
|
378 m = matchmod.match(ctx._repo.root, '', [pat], ctx=ctx) |
|
379 return [sub for sub in sstate if m(sub)] |
|
380 else: |
|
381 return [sub for sub in sstate] |
|
382 |
361 symbols = { |
383 symbols = { |
362 'added': added, |
384 'added': added, |
363 'binary': binary, |
385 'binary': binary, |
364 'clean': clean, |
386 'clean': clean, |
365 'copied': copied, |
387 'copied': copied, |
374 'resolved': resolved, |
396 'resolved': resolved, |
375 'size': size, |
397 'size': size, |
376 'symlink': symlink, |
398 'symlink': symlink, |
377 'unknown': unknown, |
399 'unknown': unknown, |
378 'unresolved': unresolved, |
400 'unresolved': unresolved, |
|
401 'subrepo': subrepo, |
379 } |
402 } |
380 |
403 |
381 methods = { |
404 methods = { |
382 'string': stringset, |
405 'string': stringset, |
383 'symbol': stringset, |
406 'symbol': stringset, |