comparison mercurial/revset.py @ 20454:47fd57f650e5

revset: added lazyset implementation to merge revset Performance benchmarking: $ time hg log -qr "first(merge())" 102:58039eddbdda real 0m0.276s user 0m0.208s sys 0m0.047s $ time ./hg log -qr "first(merge())" 102:58039eddbdda real 0m0.192s user 0m0.154s sys 0m0.027s
author Lucas Moscovicz <lmoscovicz@fb.com>
date Thu, 30 Jan 2014 16:47:29 -0800
parents 6aa7dcae6bd8
children 9a49feb408f3
comparison
equal deleted inserted replaced
20453:6aa7dcae6bd8 20454:47fd57f650e5
990 Changeset is a merge changeset. 990 Changeset is a merge changeset.
991 """ 991 """
992 # i18n: "merge" is a keyword 992 # i18n: "merge" is a keyword
993 getargs(x, 0, 0, _("merge takes no arguments")) 993 getargs(x, 0, 0, _("merge takes no arguments"))
994 cl = repo.changelog 994 cl = repo.changelog
995 return baseset([r for r in subset if cl.parentrevs(r)[1] != -1]) 995 return lazyset(subset, lambda r: cl.parentrevs(r)[1] != -1)
996 996
997 def branchpoint(repo, subset, x): 997 def branchpoint(repo, subset, x):
998 """``branchpoint()`` 998 """``branchpoint()``
999 Changesets with more than one child. 999 Changesets with more than one child.
1000 """ 1000 """