# HG changeset patch # User Yuya Nishihara # Date 2015-11-14 07:58:18 # Node ID 60af96494a76c5bfa2deb59b0c0fc4e90a7e39f9 # Parent ccae1588117f823b4a6ae12285c83e8beeb00363 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. diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2161,16 +2161,9 @@ def getlogrevs(repo, pats, opts): 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 = [] diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py --- a/mercurial/templatekw.py +++ b/mercurial/templatekw.py @@ -340,6 +340,19 @@ def showfiles(**args): """ 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 @@ keywords = { 'file_dels': showfiledels, 'file_mods': showfilemods, 'files': showfiles, + 'graphnode': showgraphnode, 'latesttag': showlatesttag, 'latesttagdistance': showlatesttagdistance, 'manifest': showmanifest,