graphlog: extract "graphnode" template keyword that represents node symbol
This provides a default node symbol. Tests will be added later.
"showparents" variable is renamed to "wpnodes" to avoid confusion with the
existing showparents() function.
--- a/mercurial/cmdutil.py Sat Nov 14 16:45:15 2015 +0900
+++ b/mercurial/cmdutil.py Sat Nov 14 16:58:18 2015 +0900
@@ -2161,16 +2161,9 @@
def displaygraph(ui, repo, dag, displayer, edgefn, getrenamed=None,
filematcher=None):
- showparents = [ctx.node() for ctx in repo[None].parents()]
seen, state = [], graphmod.asciistate()
for rev, type, ctx, parents in dag:
- char = 'o'
- if ctx.node() in showparents:
- char = '@'
- elif ctx.obsolete():
- char = 'x'
- elif ctx.closesbranch():
- char = '_'
+ char = templatekw.showgraphnode(repo, ctx)
copies = None
if getrenamed and ctx.rev():
copies = []
--- a/mercurial/templatekw.py Sat Nov 14 16:45:15 2015 +0900
+++ b/mercurial/templatekw.py Sat Nov 14 16:58:18 2015 +0900
@@ -340,6 +340,19 @@
"""
return showlist('file', args['ctx'].files(), **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()]
+ if ctx.node() in wpnodes:
+ return '@'
+ elif ctx.obsolete():
+ return 'x'
+ elif ctx.closesbranch():
+ return '_'
+ else:
+ return 'o'
+
def showlatesttag(**args):
""":latesttag: List of strings. The global tags on the most recent globally
tagged ancestor of this changeset.
@@ -518,6 +531,7 @@
'file_dels': showfiledels,
'file_mods': showfilemods,
'files': showfiles,
+ 'graphnode': showgraphnode,
'latesttag': showlatesttag,
'latesttagdistance': showlatesttagdistance,
'manifest': showmanifest,