diff mercurial/templatekw.py @ 20520:5c65ee4193e1

template: add 'current' to scope during {bookmarks % ...} This adds the keyword 'current' to the template scope when processing a bookmark list. The 'current' keyword resolves to the name of the currently active bookmark in the repo. This allows us to apply special labels to the current bookmark to distinguish it (especially in the case where there are multiple bookmarks on the same commit). Example: "{bookmarks % '{bookmark}{ifeq(bookmark, current, \"*\")} '}" Results in a space separated list of bookmarks where the current bookmark has an asterix.
author Durham Goode <durham@fb.com>
date Tue, 11 Feb 2014 21:40:33 -0800
parents 0c22257388d6
children 6cb419dd3703
line wrap: on
line diff
--- a/mercurial/templatekw.py	Tue Feb 11 21:04:12 2014 -0800
+++ b/mercurial/templatekw.py	Tue Feb 11 21:40:33 2014 -0800
@@ -195,8 +195,12 @@
     """:bookmarks: List of strings. Any bookmarks associated with the
     changeset.
     """
+    repo = args['ctx']._repo
     bookmarks = args['ctx'].bookmarks()
-    return showlist('bookmark', bookmarks, **args)
+    hybrid = showlist('bookmark', bookmarks, **args)
+    for value in hybrid.values:
+        value['current'] = repo._bookmarkcurrent
+    return hybrid
 
 def showchildren(**args):
     """:children: List of strings. The children of the changeset."""