##// END OF EJS Templates
revset: add pattern matching to 'branch' revset expression
Simon King -
r16821:0946502f default
parent child Browse files
Show More
@@ -325,14 +325,25 b' def branch(repo, subset, x):'
325 325 """``branch(string or set)``
326 326 All changesets belonging to the given branch or the branches of the given
327 327 changesets.
328
329 If `string` starts with `re:`, the remainder of the name is treated as
330 a regular expression. To match a branch that actually starts with `re:`,
331 use the prefix `literal:`.
328 332 """
329 333 try:
330 334 b = getstring(x, '')
331 if b in repo.branchmap():
332 return [r for r in subset if repo[r].branch() == b]
333 335 except error.ParseError:
334 336 # not a string, but another revspec, e.g. tip()
335 337 pass
338 else:
339 kind, pattern, matcher = _stringmatcher(b)
340 if kind == 'literal':
341 # note: falls through to the revspec case if no branch with
342 # this name exists
343 if pattern in repo.branchmap():
344 return [r for r in subset if matcher(repo[r].branch())]
345 else:
346 return [r for r in subset if matcher(repo[r].branch())]
336 347
337 348 s = getset(repo, range(len(repo)), x)
338 349 b = set()
@@ -233,6 +233,16 b' quoting needed'
233 233 $ log 'branch(é)'
234 234 8
235 235 9
236 $ log 'branch(a)'
237 0
238 $ hg log -r 'branch("re:a")' --template '{rev} {branch}\n'
239 0 a
240 2 a-b-c-
241 3 +a+b+c+
242 4 -a-b-c-
243 5 /a/b/c/
244 6 _a_b_c_
245 7 .a.b.c.
236 246 $ log 'children(ancestor(4,5))'
237 247 2
238 248 3
General Comments 0
You need to be logged in to leave comments. Login now