comparison mercurial/revset.py @ 11280:a5eb0bf7e158

revset: add tagged predicate
author Matt Mackall <mpm@selenic.com>
date Thu, 03 Jun 2010 17:39:40 -0500
parents 62ccf4cd6e7f
children e581f3acc338
comparison
equal deleted inserted replaced
11279:62ccf4cd6e7f 11280:a5eb0bf7e158
422 cl = repo.changelog 422 cl = repo.changelog
423 o = set([cl.rev(r) for r in repo.changelog.nodesbetween(o, None)[0]]) 423 o = set([cl.rev(r) for r in repo.changelog.nodesbetween(o, None)[0]])
424 print 'out', dest, o 424 print 'out', dest, o
425 return [r for r in subset if r in o] 425 return [r for r in subset if r in o]
426 426
427 def tagged(repo, subset, x):
428 cl = repo.changelog
429 s = set([cl.rev(n) for t, n in repo.tagslist() if t != 'tip'])
430 return [r for r in subset if r in s]
431
427 symbols = { 432 symbols = {
428 "ancestor": ancestor, 433 "ancestor": ancestor,
429 "ancestors": ancestors, 434 "ancestors": ancestors,
430 "descendants": descendants, 435 "descendants": descendants,
431 "follow": follow, 436 "follow": follow,
453 "head": head, 458 "head": head,
454 "modifies": modifies, 459 "modifies": modifies,
455 "adds": adds, 460 "adds": adds,
456 "removes": removes, 461 "removes": removes,
457 "outgoing": outgoing, 462 "outgoing": outgoing,
463 "tagged": tagged,
458 } 464 }
459 465
460 methods = { 466 methods = {
461 "negate": negate, 467 "negate": negate,
462 "range": rangeset, 468 "range": rangeset,