diff -r ab632e27f296 -r 14d0e89520a2 mercurial/logcmdutil.py --- a/mercurial/logcmdutil.py Wed Jan 29 14:42:54 2020 -0800 +++ b/mercurial/logcmdutil.py Tue Jan 28 21:49:50 2020 -0800 @@ -1004,7 +1004,7 @@ ui, spec, defaults=templatekw.keywords, resources=tres ) - def formatnode(repo, ctx): + def formatnode(repo, ctx, cache): props = {b'ctx': ctx, b'repo': repo} return templ.renderdefault(props) @@ -1038,8 +1038,9 @@ # experimental config: experimental.graphshorten state.graphshorten = ui.configbool(b'experimental', b'graphshorten') + formatnode_cache = {} for rev, type, ctx, parents in dag: - char = formatnode(repo, ctx) + char = formatnode(repo, ctx, formatnode_cache) copies = getcopies(ctx) if getcopies else None edges = edgefn(type, char, state, rev, parents) firstedge = next(edges)