[PATCH 6 of 7] namespaces: generate template keyword when registering a namespace
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Wed Dec 17 00:58:16 CST 2014
On 12/16/2014 04:02 PM, Sean Farley wrote:
> # HG changeset patch
> # User Sean Farley <sean.michael.farley at gmail.com>
> # Date 1413526749 25200
> # Thu Oct 16 23:19:09 2014 -0700
> # Node ID 957096b720f355369f56ceebd088a11b7ed37ebc
> # Parent 3c155bf2bd32e0b719f6fe4dc66c635b2e87b40e
> 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 % "BABAR: {babar}\n"}'
>
> diff --git a/mercurial/namespaces.py b/mercurial/namespaces.py
> --- a/mercurial/namespaces.py
> +++ b/mercurial/namespaces.py
> @@ -1,7 +1,8 @@
> from i18n import _
> from mercurial import util
> +import templatekw
>
> def tolist(val):
> """
> a convenience method to return an empty list instead of None
> """
> @@ -72,10 +73,18 @@ class namespaces(object):
> if order is not None:
> self._names.insert(order, namespace, val)
> else:
> self._names[namespace] = val
>
> + # create template keyword for anything but branches and bookmarks,
> + # since those have special logic for 'current' and 'default'
> + if namespace not in ('bookmarks', 'branches'):
> + def generatekw(**args):
> + return templatekw.shownames(namespace, **args)
> +
> + templatekw.keywords[namespace] = generatekw
Instead of adding special case to avoid over-writing bookmrks and
branchs, we could automatically avoid adding new namespace if they
already exists. This would avoid issue with possible extensions and
running this multiple times.
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list