Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/cmdutil.py @ 21872:abae1eb695c0
log: allow revset for --follow to be lazily evaluated
It is unclear to me why evaluation was forced.
For a repository with over 700,000 commits, 'hg log -f' drops from 1.2 seconds
to 0.2 seconds.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Sat, 12 Jul 2014 20:44:00 -0700 |
parents | e353fac7db26 |
children | dbbae63865a6 |
comparison
equal
deleted
inserted
replaced
21871:0feb41534421 | 21872:abae1eb695c0 |
---|---|
1717 # depends on revisions resolved from --rev... | 1717 # depends on revisions resolved from --rev... |
1718 follow = opts.get('follow') or opts.get('follow_first') | 1718 follow = opts.get('follow') or opts.get('follow_first') |
1719 if opts.get('rev'): | 1719 if opts.get('rev'): |
1720 revs = scmutil.revrange(repo, opts['rev']) | 1720 revs = scmutil.revrange(repo, opts['rev']) |
1721 elif follow: | 1721 elif follow: |
1722 revs = revset.baseset(repo.revs('reverse(:.)')) | 1722 revs = repo.revs('reverse(:.)') |
1723 else: | 1723 else: |
1724 revs = revset.spanset(repo) | 1724 revs = revset.spanset(repo) |
1725 revs.reverse() | 1725 revs.reverse() |
1726 if not revs: | 1726 if not revs: |
1727 return revset.baseset([]), None, None | 1727 return revset.baseset([]), None, None |