# HG changeset patch # User FUJIWARA Katsunori # Date 1405434853 -32400 # Node ID 2b41ee1b5ea1b2e7dcdd1ba54a28d29624ae76b8 # Parent 5809d62e7106a80cc8087bc8f1e76fbfe1f9b141 templatekw: add 'currentbookmark' keyword to show current bookmark easily Before this patch, complicated template expression below is required to show current active bookmark if it is associated with the changeset. "{bookmarks % '{ifeq(bookmark, current, \"{bookmark}\")}'}" This patch add 'currentbookmark' keyword to show current bookmark easily. diff -r 5809d62e7106 -r 2b41ee1b5ea1 mercurial/templatekw.py --- a/mercurial/templatekw.py Wed Jul 16 14:53:03 2014 -0700 +++ b/mercurial/templatekw.py Tue Jul 15 23:34:13 2014 +0900 @@ -208,6 +208,17 @@ childrevs = ['%d:%s' % (cctx, cctx) for cctx in ctx.children()] return showlist('children', childrevs, element='child', **args) +def showcurrentbookmark(**args): + """:currentbookmark: String. The active bookmark, if it is + associated with the changeset""" + import bookmarks as bookmarks # to avoid circular import issues + repo = args['repo'] + if bookmarks.iscurrent(repo): + current = repo._bookmarkcurrent + if current in args['ctx'].bookmarks(): + return current + return '' + def showdate(repo, ctx, templ, **args): """:date: Date information. The date when the changeset was committed.""" return ctx.date() @@ -364,6 +375,7 @@ 'branches': showbranches, 'bookmarks': showbookmarks, 'children': showchildren, + 'currentbookmark': showcurrentbookmark, 'date': showdate, 'desc': showdescription, 'diffstat': showdiffstat, diff -r 5809d62e7106 -r 2b41ee1b5ea1 tests/test-command-template.t --- a/tests/test-command-template.t Wed Jul 16 14:53:03 2014 -0700 +++ b/tests/test-command-template.t Tue Jul 15 23:34:13 2014 +0900 @@ -1850,6 +1850,15 @@ 2 bar* foo 1 0 + $ hg log --template "{rev} {currentbookmark}\n" + 2 bar + 1 + 0 + $ hg bookmarks --inactive bar + $ hg log --template "{rev} {currentbookmark}\n" + 2 + 1 + 0 Test stringify on sub expressions