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