Mercurial > public > mercurial-scm > hg-stable
diff mercurial/templatekw.py @ 41790:e9b9ee9af4a9
templatekw: move getrenamedfn() to scmutil (API)
The function is already used by `hg log` (for following renames, not
for templates), so it seems it does not belong in templatekw.
Differential Revision: https://phab.mercurial-scm.org/D6021
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 21 Feb 2019 10:54:29 -0800 |
parents | 52d4cb162902 |
children | b47e9712000b |
line wrap: on
line diff
--- a/mercurial/templatekw.py Sat Feb 23 09:32:07 2019 -0800 +++ b/mercurial/templatekw.py Thu Feb 21 10:54:29 2019 -0800 @@ -104,37 +104,6 @@ latesttags[rev] = pdate, pdist + 1, ptag return latesttags[rev] -def getrenamedfn(repo, endrev=None): - rcache = {} - if endrev is None: - endrev = len(repo) - - def getrenamed(fn, rev): - '''looks up all renames for a file (up to endrev) the first - time the file is given. It indexes on the changerev and only - parses the manifest if linkrev != changerev. - Returns rename info for fn at changerev rev.''' - if fn not in rcache: - rcache[fn] = {} - fl = repo.file(fn) - for i in fl: - lr = fl.linkrev(i) - renamed = fl.renamed(fl.node(i)) - rcache[fn][lr] = renamed and renamed[0] - if lr >= endrev: - break - if rev in rcache[fn]: - return rcache[fn][rev] - - # If linkrev != rev (i.e. rev not found in rcache) fallback to - # filectx logic. - try: - return repo[rev][fn].copysource() - except error.LookupError: - return None - - return getrenamed - def getlogcolumns(): """Return a dict of log column labels""" _ = pycompat.identity # temporarily disable gettext @@ -343,7 +312,7 @@ copies = context.resource(mapping, 'revcache').get('copies') if copies is None: if 'getrenamed' not in cache: - cache['getrenamed'] = getrenamedfn(repo) + cache['getrenamed'] = scmutil.getrenamedfn(repo) copies = [] getrenamed = cache['getrenamed'] for fn in ctx.files():