diff -r 11f768258dcc -r de8e3681c402 mercurial/templatekw.py --- a/mercurial/templatekw.py Sat Jun 24 12:47:25 2017 -0700 +++ b/mercurial/templatekw.py Sat Jun 24 13:39:20 2017 -0700 @@ -554,13 +554,24 @@ args = pycompat.byteskwargs(args) ctx = args['ctx'] repo = ctx.repo() - namespaces = util.sortdict((k, showlist('name', ns.names(repo, ctx.node()), - args)) - for k, ns in repo.names.iteritems()) + + namespaces = util.sortdict() + colornames = {} + + for k, ns in repo.names.iteritems(): + namespaces[k] = showlist('name', ns.names(repo, ctx.node()), args) + colornames[k] = ns.colorname + f = _showlist('namespace', list(namespaces), args) - return _hybrid(f, namespaces, - lambda k: {'namespace': k, 'names': namespaces[k]}, - lambda x: x['namespace']) + + def makemap(ns): + return { + 'namespace': ns, + 'names': namespaces[ns], + 'colorname': colornames[ns], + } + + return _hybrid(f, namespaces, makemap, lambda x: x['namespace']) @templatekeyword('node') def shownode(repo, ctx, templ, **args):