[PATCH 4 of 4] revset: added lazyset implementation to author revset
Lucas Moscovicz
lmoscovicz at fb.com
Tue Feb 11 18:50:53 UTC 2014
# HG changeset patch
# User Lucas Moscovicz <lmoscovicz at fb.com>
# Date 1391016151 28800
# Wed Jan 29 09:22:31 2014 -0800
# Node ID 9bca7c192a62d916e3a91cc305db9d7594ffcb03
# Parent 9e46d74473bc918341572a5b94737a20b56e01b1
revset: added lazyset implementation to author revset
Performance benchmarking:
$ time hg log -qr "first(author(mpm))"
0:9117c6561b0b
real 0m3.486s
user 0m3.317s
sys 0m0.077s
$ time ./hg log -qr "first(author(mpm))"
0:9117c6561b0b
real 0m0.551s
user 0m0.295s
sys 0m0.072s
diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -347,8 +347,7 @@
# i18n: "author" is a keyword
n = encoding.lower(getstring(x, _("author requires a string")))
kind, pattern, matcher = _substringmatcher(n)
- return baseset([r for r in subset if
- matcher(encoding.lower(repo[r].user()))])
+ return lazyset(subset, lambda x: matcher(encoding.lower(repo[x].user())))
def bisect(repo, subset, x):
"""``bisect(string)``
More information about the Mercurial-devel
mailing list