Mercurial > public > mercurial-scm > hg-stable
diff mercurial/templatekw.py @ 33060:46fa46608ca5
namespaces: record and expose whether namespace is built-in
Currently, the templating layer tends to treat each namespace
as a one-off, with explicit usage of {bookmarks}, {tags}, {branch},
etc instead of using {namespaces}. It would be really useful if
we could iterate over namespaces and operate on them generically.
However, some consumers may wish to differentiate namespaces by
whether they are built-in to core Mercurial or provided by extensions.
Expected use cases include ignoring non-built-in namespaces or
emitting a generic label for non-built-in namespaces.
This commit introduces an attribute on namespace instances
that says whether the namespace is "built-in" and then exposes
this to the templating layer.
As part of this, we implement a reusable extension for defining
custom names on each changeset for testing. A second consumer
will be introduced in a subsequent commit.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 24 Jun 2017 14:52:15 -0700 |
parents | de8e3681c402 |
children | 89796a25d4bb |
line wrap: on
line diff
--- a/mercurial/templatekw.py Sat Jun 24 13:39:20 2017 -0700 +++ b/mercurial/templatekw.py Sat Jun 24 14:52:15 2017 -0700 @@ -557,10 +557,12 @@ namespaces = util.sortdict() colornames = {} + builtins = {} for k, ns in repo.names.iteritems(): namespaces[k] = showlist('name', ns.names(repo, ctx.node()), args) colornames[k] = ns.colorname + builtins[k] = ns.builtin f = _showlist('namespace', list(namespaces), args) @@ -568,6 +570,7 @@ return { 'namespace': ns, 'names': namespaces[ns], + 'builtin': builtins[ns], 'colorname': colornames[ns], }