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
--- a/mercurial/templatekw.py Sat Nov 14 16:58:18 2015 +0900
+++ b/mercurial/templatekw.py Sat Nov 14 17:02:57 2015 +0900
@@ -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 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():