# HG changeset patch # User Sean Farley # Date 2014-10-17 06:19:09 # Node ID 9266d1dd6a6edda6d3fdaab3008d73c4ff9568a6 # Parent 40fcf6c0521781ef981f0490d71712f1ac27c135 namespaces: generate template keyword when registering a namespace For any namespace, we generate a template keyword. For example, given a namespace 'babar', we automatically have the ability to use it in a template: hg log -r . -T '{babars % "King: {babar}\n"}' Furthermore, we only generate this keyword for a namespace if one doesn't already exist. This is necessary for 'branches' and 'bookmarks' since both of those have concepts of 'current' (something outside the namespace api) and also allows extensions to override default behavior if desired. diff --git a/mercurial/namespaces.py b/mercurial/namespaces.py --- a/mercurial/namespaces.py +++ b/mercurial/namespaces.py @@ -1,5 +1,6 @@ from i18n import _ from mercurial import util +import templatekw def tolist(val): """ @@ -74,6 +75,13 @@ class namespaces(object): else: self._names[namespace] = val + # we only generate a template keyword if one does not already exist + if namespace not in templatekw.keywords: + def generatekw(**args): + return templatekw.shownames(namespace, **args) + + templatekw.keywords[namespace] = generatekw + def singlenode(self, repo, name): """ Return the 'best' node for the given name. Best means the first node