Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revset.py @ 20450:4f1aed2c7a7e
revset: added lazyset implementation bookmark revset
author | Lucas Moscovicz <lmoscovicz@fb.com> |
---|---|
date | Wed, 29 Jan 2014 15:23:16 -0800 |
parents | ad2f1512eaa6 |
children | ac7cebf45eb4 |
comparison
equal
deleted
inserted
replaced
20449:ad2f1512eaa6 | 20450:4f1aed2c7a7e |
---|---|
389 if kind == 'literal': | 389 if kind == 'literal': |
390 bmrev = repo._bookmarks.get(bm, None) | 390 bmrev = repo._bookmarks.get(bm, None) |
391 if not bmrev: | 391 if not bmrev: |
392 raise util.Abort(_("bookmark '%s' does not exist") % bm) | 392 raise util.Abort(_("bookmark '%s' does not exist") % bm) |
393 bmrev = repo[bmrev].rev() | 393 bmrev = repo[bmrev].rev() |
394 return baseset([r for r in subset if r == bmrev]) | 394 return lazyset(subset, lambda r: r == bmrev) |
395 else: | 395 else: |
396 matchrevs = set() | 396 matchrevs = set() |
397 for name, bmrev in repo._bookmarks.iteritems(): | 397 for name, bmrev in repo._bookmarks.iteritems(): |
398 if matcher(name): | 398 if matcher(name): |
399 matchrevs.add(bmrev) | 399 matchrevs.add(bmrev) |
405 bmrevs.add(repo[bmrev].rev()) | 405 bmrevs.add(repo[bmrev].rev()) |
406 return subset & bmrevs | 406 return subset & bmrevs |
407 | 407 |
408 bms = set([repo[r].rev() | 408 bms = set([repo[r].rev() |
409 for r in repo._bookmarks.values()]) | 409 for r in repo._bookmarks.values()]) |
410 return baseset([r for r in subset if r in bms]) | 410 return lazyset(subset, lambda r: r in bms) |
411 | 411 |
412 def branch(repo, subset, x): | 412 def branch(repo, subset, x): |
413 """``branch(string or set)`` | 413 """``branch(string or set)`` |
414 All changesets belonging to the given branch or the branches of the given | 414 All changesets belonging to the given branch or the branches of the given |
415 changesets. | 415 changesets. |