[PATCH 3 of 4] templatekw: avoid slow creation of changectx objects in showgraphnode()
Yuya Nishihara
yuya at tcha.org
Thu Dec 3 08:26:46 CST 2015
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1447488177 -32400
# Sat Nov 14 17:02:57 2015 +0900
# Node ID ebe7e6a6986675c44cef7bfd442d73e29a2dda40
# Parent e60e6f49f4c83db91d57364a5308d95a9ce982f6
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():
More information about the Mercurial-devel
mailing list