Mercurial > hg
changeset 25386:a5a95642144b
revrange: build spanset from x:y range
This slightly improves the performance in the optimal case:
% hg log -R mozilla-central -r0:tip -l1 --time
(before)
time: real 0.050 secs (user 0.040+0.000 sys 0.010+0.000)
(after)
time: real 0.020 secs (user 0.000+0.000 sys 0.010+0.000)
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 24 May 2015 18:30:27 +0900 |
parents | a26a55406c0a |
children | 390a10b7843b |
files | mercurial/scmutil.py |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/scmutil.py Sun May 24 18:11:33 2015 +0900 +++ b/mercurial/scmutil.py Sun May 24 18:30:27 2015 +0900 @@ -737,8 +737,10 @@ end = revfix(repo, end, len(repo) - 1) if end == nullrev and start < 0: start = nullrev - rangeiter = repo.changelog.revs(start, end) - l = revset.baseset(rangeiter) + if start < end: + l = revset.spanset(repo, start, end + 1) + else: + l = revset.spanset(repo, start, end - 1) subsets.append(l) continue elif spec and spec in repo: # single unquoted rev