Mercurial > public > mercurial-scm > hg
comparison mercurial/revset.py @ 20452:a685d9870eb5
revset: added lazyset implementation to desc revset
Performance benchmarking:
$ time hg log -qr "first(desc(hg))"
changeset: 0:9117c6561b0b
real 0m2.210s
user 0m2.158s
sys 0m0.049s
$ time ./hg log -qr "first(desc(hg))"
changeset: 0:9117c6561b0b
real 0m0.171s
user 0m0.131s
sys 0m0.035s
author | Lucas Moscovicz <lmoscovicz@fb.com> |
---|---|
date | Thu, 30 Jan 2014 15:39:56 -0800 |
parents | ac7cebf45eb4 |
children | 6aa7dcae6bd8 |
comparison
equal
deleted
inserted
replaced
20451:ac7cebf45eb4 | 20452:a685d9870eb5 |
---|---|
588 """``desc(string)`` | 588 """``desc(string)`` |
589 Search commit message for string. The match is case-insensitive. | 589 Search commit message for string. The match is case-insensitive. |
590 """ | 590 """ |
591 # i18n: "desc" is a keyword | 591 # i18n: "desc" is a keyword |
592 ds = encoding.lower(getstring(x, _("desc requires a string"))) | 592 ds = encoding.lower(getstring(x, _("desc requires a string"))) |
593 l = [] | 593 |
594 for r in subset: | 594 def matches(x): |
595 c = repo[r] | 595 c = repo[x] |
596 if ds in encoding.lower(c.description()): | 596 return ds in encoding.lower(c.description()) |
597 l.append(r) | 597 |
598 return baseset(l) | 598 return lazyset(subset, matches) |
599 | 599 |
600 def _descendants(repo, subset, x, followfirst=False): | 600 def _descendants(repo, subset, x, followfirst=False): |
601 args = getset(repo, baseset(repo), x) | 601 args = getset(repo, baseset(repo), x) |
602 if not args: | 602 if not args: |
603 return baseset([]) | 603 return baseset([]) |