remotenames: introduce new template keywords for remotenames
This patch introduces three new template keywords 'remotenames',
'remotebookmarks', 'remotebranches' to show remotenames, remotebookmarks and
remotebranches associated to a changeset.
This is a part of moving hgremotenames extension to core. The remotenames
template keyword was present in the extension and the rest of the two are not
present in the hgremotenames extension and are introduced in this patch.
hgremotenames: https://bitbucket.org/seanfarley/hgremotenames
Differential Revision: https://phab.mercurial-scm.org/D1759
--- a/hgext/remotenames.py Sat Dec 23 14:24:41 2017 +0530
+++ b/hgext/remotenames.py Sat Dec 23 15:13:37 2017 +0530
@@ -30,7 +30,9 @@
from mercurial import (
logexchange,
namespaces,
+ pycompat,
registrar,
+ templatekw,
)
# Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for
@@ -41,6 +43,7 @@
configtable = {}
configitem = registrar.configitem(configtable)
+templatekeyword = registrar.templatekeyword()
configitem('remotenames', 'bookmarks',
default=True,
@@ -205,3 +208,51 @@
nodemap = lambda repo, node:
repo._remotenames.nodetobranch().get(node, []))
repo.names.addnamespace(remotebranchns)
+
+@templatekeyword('remotenames')
+def remotenameskw(**args):
+ """:remotenames: List of strings. List of remote names associated with the
+ changeset.
+ """
+ args = pycompat.byteskwargs(args)
+ repo, ctx = args['repo'], args['ctx']
+
+ remotenames = []
+ if 'remotebookmarks' in repo.names:
+ remotenames = repo.names['remotebookmarks'].names(repo, ctx.node())
+
+ if 'remotebranches' in repo.names:
+ remotenames += repo.names['remotebranches'].names(repo, ctx.node())
+
+ return templatekw.showlist('remotename', remotenames, args,
+ plural='remotenames')
+
+@templatekeyword('remotebookmarks')
+def remotebookmarkskw(**args):
+ """:remotebookmarks: List of strings. List of remote bookmarks associated
+ with the changeset.
+ """
+ args = pycompat.byteskwargs(args)
+ repo, ctx = args['repo'], args['ctx']
+
+ remotebmarks = []
+ if 'remotebookmarks' in repo.names:
+ remotebmarks = repo.names['remotebookmarks'].names(repo, ctx.node())
+
+ return templatekw.showlist('remotebookmark', remotebmarks, args,
+ plural='remotebookmarks')
+
+@templatekeyword('remotebranches')
+def remotebrancheskw(**args):
+ """:remotebranches: List of strings. List of remote branches associated
+ with the changeset.
+ """
+ args = pycompat.byteskwargs(args)
+ repo, ctx = args['repo'], args['ctx']
+
+ remotebranches = []
+ if 'remotebranches' in repo.names:
+ remotebranches = repo.names['remotebranches'].names(repo, ctx.node())
+
+ return templatekw.showlist('remotebranch', remotebranches, args,
+ plural='remotebranches')
--- a/tests/test-logexchange.t Sat Dec 23 14:24:41 2017 +0530
+++ b/tests/test-logexchange.t Sat Dec 23 15:13:37 2017 +0530
@@ -182,3 +182,47 @@
date: Thu Jan 01 00:00:00 1970 +0000
summary: Added a
+Testing the templates provided by remotenames extension
+
+`remotenames` keyword
+
+ $ hg log -G -T "{rev}:{node|short} {remotenames}\n"
+ @ 8:3e1487808078 $TESTTMP/server2/wat default/wat
+ |
+ | o 7:ec2426147f0e $TESTTMP/server2/default default/default
+ | |
+ | o 6:87d6d6676308 $TESTTMP/server2/bar default/bar
+ | |
+ | o 5:825660c69f0c
+ |/
+ o 4:aa98ab95a928
+ |
+ o 3:62615734edd5 $TESTTMP/server2/foo default/foo
+ |
+ o 2:28ad74487de9
+ |
+ o 1:29becc82797a
+ |
+ o 0:18d04c59bb5d
+
+`remotebookmarks` and `remotebranches` keywords
+
+ $ hg log -G -T "{rev}:{node|short} [{remotebookmarks}] ({remotebranches})"
+ @ 8:3e1487808078 [] ($TESTTMP/server2/wat default/wat)
+ |
+ | o 7:ec2426147f0e [] ($TESTTMP/server2/default default/default)
+ | |
+ | o 6:87d6d6676308 [$TESTTMP/server2/bar default/bar] ()
+ | |
+ | o 5:825660c69f0c [] ()
+ |/
+ o 4:aa98ab95a928 [] ()
+ |
+ o 3:62615734edd5 [$TESTTMP/server2/foo default/foo] ()
+ |
+ o 2:28ad74487de9 [] ()
+ |
+ o 1:29becc82797a [] ()
+ |
+ o 0:18d04c59bb5d [] ()
+