[PATCH 1 of 7 V2] namespaces: add template name of a namespace
Sean Farley
sean.michael.farley at gmail.com
Thu Dec 18 21:10:45 UTC 2014
# HG changeset patch
# User Sean Farley <sean.michael.farley at gmail.com>
# Date 1418630992 28800
# Mon Dec 15 00:09:52 2014 -0800
# Node ID 5b61f147d886111e0e783b01342e864af67e2af7
# Parent 39cead85fd58ae6693592074656b284ed736d9bc
namespaces: add template name of a namespace
The template name property will be used in upcoming patches to automatically
generate a template keyword. For example, given a namespace called 'babars', we
will automatically generate a template keyword 'babar' such that we can use it
in the following way,
$ hg log -r . -T '{babars % "King: {babar}\n"}'
diff --git a/mercurial/namespaces.py b/mercurial/namespaces.py
--- a/mercurial/namespaces.py
+++ b/mercurial/namespaces.py
@@ -24,10 +24,12 @@ class namespaces(object):
not be in its domain. In this case, each method should return an empty list
and not raise an error.
We'll have a dictionary '_names' where each key is a namespace and
its value is a dictionary of functions:
+ 'templatename': name to use for templating (usually the singular form
+ of the plural namespace name)
'namemap': function that takes a name and returns a list of nodes
"""
_names_version = 0
@@ -36,29 +38,31 @@ class namespaces(object):
addns = self.addnamespace
# we need current mercurial named objects (bookmarks, tags, and
# branches) to be initialized somewhere, so that place is here
- addns("bookmarks",
+ addns("bookmarks", "bookmark",
lambda repo, name: tolist(repo._bookmarks.get(name)))
- addns("tags",
+ addns("tags", "tag",
lambda repo, name: tolist(repo._tagscache.tags.get(name)))
- addns("branches",
+ addns("branches", "branch",
lambda repo, name: tolist(repo.branchtip(name)))
- def addnamespace(self, namespace, namemap, order=None):
+ def addnamespace(self, namespace, templatename, namemap, order=None):
"""
register a namespace
namespace: the name to be registered (in plural form)
+ templatename: the name to use for templating
namemap: function that inputs a node, output name(s)
order: optional argument to specify the order of namespaces
(e.g. 'branches' should be listed before 'bookmarks')
"""
- val = {'namemap': namemap}
+ val = {'templatename': templatename,
+ 'namemap': namemap}
if order is not None:
self._names.insert(order, namespace, val)
else:
self._names[namespace] = val
More information about the Mercurial-devel
mailing list