526 |
526 |
527 If `string` starts with `re:`, the remainder of the name is treated as |
527 If `string` starts with `re:`, the remainder of the name is treated as |
528 a regular expression. To match a branch that actually starts with `re:`, |
528 a regular expression. To match a branch that actually starts with `re:`, |
529 use the prefix `literal:`. |
529 use the prefix `literal:`. |
530 """ |
530 """ |
531 import branchmap |
531 getbi = repo.revbranchcache().branchinfo |
532 urepo = repo.unfiltered() |
|
533 ucl = urepo.changelog |
|
534 getbi = branchmap.revbranchcache(urepo, readonly=True).branchinfo |
|
535 |
532 |
536 try: |
533 try: |
537 b = getstring(x, '') |
534 b = getstring(x, '') |
538 except error.ParseError: |
535 except error.ParseError: |
539 # not a string, but another revspec, e.g. tip() |
536 # not a string, but another revspec, e.g. tip() |
542 kind, pattern, matcher = _stringmatcher(b) |
539 kind, pattern, matcher = _stringmatcher(b) |
543 if kind == 'literal': |
540 if kind == 'literal': |
544 # note: falls through to the revspec case if no branch with |
541 # note: falls through to the revspec case if no branch with |
545 # this name exists |
542 # this name exists |
546 if pattern in repo.branchmap(): |
543 if pattern in repo.branchmap(): |
547 return subset.filter(lambda r: matcher(getbi(ucl, r)[0])) |
544 return subset.filter(lambda r: matcher(getbi(r)[0])) |
548 else: |
545 else: |
549 return subset.filter(lambda r: matcher(getbi(ucl, r)[0])) |
546 return subset.filter(lambda r: matcher(getbi(r)[0])) |
550 |
547 |
551 s = getset(repo, fullreposet(repo), x) |
548 s = getset(repo, fullreposet(repo), x) |
552 b = set() |
549 b = set() |
553 for r in s: |
550 for r in s: |
554 b.add(getbi(ucl, r)[0]) |
551 b.add(getbi(r)[0]) |
555 c = s.__contains__ |
552 c = s.__contains__ |
556 return subset.filter(lambda r: c(r) or getbi(ucl, r)[0] in b) |
553 return subset.filter(lambda r: c(r) or getbi(r)[0] in b) |
557 |
554 |
558 def bumped(repo, subset, x): |
555 def bumped(repo, subset, x): |
559 """``bumped()`` |
556 """``bumped()`` |
560 Mutable changesets marked as successors of public changesets. |
557 Mutable changesets marked as successors of public changesets. |
561 |
558 |