# HG changeset patch # User Yuya Nishihara # Date 1426323498 -32400 # Node ID 8854ca3fa675192e878aea92d5a9772b77ed3b2f # Parent 3948cb4d0ae70e7257e47e2fd9f657c0c1af7c2b templatekw: apply manifest template only if ctx.manifestnode() exists This will prevent crash by "hg log -r 'wdir()' -Tdefault". We could use the pseudo ff... hash introduced by 183965a00c76, but it isn't proven idea yet. For now, I want to make "hg log" just works in order to test 'wdir()' revset. Note that unlike its name, "{manifest}" is not a list of files in that revision, but a pair of (manifestrev, manifestnode). diff -r 3948cb4d0ae7 -r 8854ca3fa675 mercurial/templatekw.py --- a/mercurial/templatekw.py Tue Jul 07 19:07:04 2015 -0500 +++ b/mercurial/templatekw.py Sat Mar 14 17:58:18 2015 +0900 @@ -355,6 +355,9 @@ def showmanifest(**args): repo, ctx, templ = args['repo'], args['ctx'], args['templ'] mnode = ctx.manifestnode() + if mnode is None: + # just avoid crash, we might want to use the 'ff...' hash in future + return args = args.copy() args.update({'rev': repo.manifest.rev(mnode), 'node': hex(mnode)}) return templ('manifest', **args) diff -r 3948cb4d0ae7 -r 8854ca3fa675 tests/test-command-template.t --- a/tests/test-command-template.t Tue Jul 07 19:07:04 2015 -0500 +++ b/tests/test-command-template.t Sat Mar 14 17:58:18 2015 +0900 @@ -51,6 +51,12 @@ 8 t 7 f +Some keywords are invalid for working-directory revision, but they should +never cause crash: + + $ hg log -r 'wdir()' -T '{manifest}\n' + + Quoting for ui.logtemplate $ hg tip --config "ui.logtemplate={rev}\n"