changeset 36101:5a53af7d09aa

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
author Pulkit Goyal <7895pulkit@gmail.com>
date Sat, 23 Dec 2017 15:13:37 +0530
parents 382aefea8faf
children 5767664d39a5
files hgext/remotenames.py tests/test-logexchange.t
diffstat 2 files changed, 95 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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 [] ()
+