mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
revset: add pattern matching to 'branch' revset expression
This commit is contained in:
parent
9ecf845d55
commit
85110850a9
@ -325,14 +325,25 @@ def branch(repo, subset, x):
|
||||
"""``branch(string or set)``
|
||||
All changesets belonging to the given branch or the branches of the given
|
||||
changesets.
|
||||
|
||||
If `string` starts with `re:`, the remainder of the name is treated as
|
||||
a regular expression. To match a branch that actually starts with `re:`,
|
||||
use the prefix `literal:`.
|
||||
"""
|
||||
try:
|
||||
b = getstring(x, '')
|
||||
if b in repo.branchmap():
|
||||
return [r for r in subset if repo[r].branch() == b]
|
||||
except error.ParseError:
|
||||
# not a string, but another revspec, e.g. tip()
|
||||
pass
|
||||
else:
|
||||
kind, pattern, matcher = _stringmatcher(b)
|
||||
if kind == 'literal':
|
||||
# note: falls through to the revspec case if no branch with
|
||||
# this name exists
|
||||
if pattern in repo.branchmap():
|
||||
return [r for r in subset if matcher(repo[r].branch())]
|
||||
else:
|
||||
return [r for r in subset if matcher(repo[r].branch())]
|
||||
|
||||
s = getset(repo, range(len(repo)), x)
|
||||
b = set()
|
||||
|
@ -233,6 +233,16 @@ quoting needed
|
||||
$ log 'branch(é)'
|
||||
8
|
||||
9
|
||||
$ log 'branch(a)'
|
||||
0
|
||||
$ hg log -r 'branch("re:a")' --template '{rev} {branch}\n'
|
||||
0 a
|
||||
2 a-b-c-
|
||||
3 +a+b+c+
|
||||
4 -a-b-c-
|
||||
5 /a/b/c/
|
||||
6 _a_b_c_
|
||||
7 .a.b.c.
|
||||
$ log 'children(ancestor(4,5))'
|
||||
2
|
||||
3
|
||||
|
Loading…
Reference in New Issue
Block a user