# HG changeset patch # User Yuya Nishihara # Date 2015-11-14 08:02:57 # Node ID 5b8da5643a8a4c6a74531851df3449cc277f362c # Parent 60af96494a76c5bfa2deb59b0c0fc4e90a7e39f9 templatekw: avoid slow creation of changectx objects in showgraphnode() This mitigates the minor perf regression introduced by the previous patch. % hg log -G -R mozilla-central -l10000 --time > /dev/null (original) real 2.200 secs (previous) real 2.590 secs (this) real 2.280 secs diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py --- a/mercurial/templatekw.py +++ b/mercurial/templatekw.py @@ -7,7 +7,7 @@ from __future__ import absolute_import -from .node import hex +from .node import hex, nullid from . import ( error, hbisect, @@ -343,7 +343,9 @@ def showfiles(**args): def showgraphnode(repo, ctx, **args): """:graphnode: String. The character representing the changeset node in an ASCII revision graph""" - wpnodes = [pctx.node() for pctx in repo[None].parents()] + wpnodes = repo.dirstate.parents() + if wpnodes[1] == nullid: + wpnodes = wpnodes[:1] if ctx.node() in wpnodes: return '@' elif ctx.obsolete():