diff --git a/mercurial/templater.py b/mercurial/templater.py --- a/mercurial/templater.py +++ b/mercurial/templater.py @@ -111,7 +111,7 @@ def compileexp(exp, context): def getsymbol(exp): if exp[0] == 'symbol': return exp[1] - raise error.ParseError(_("expected a symbol")) + raise error.ParseError(_("expected a symbol, got '%s'") % exp[0]) def getlist(x): if not x: diff --git a/tests/test-command-template.t b/tests/test-command-template.t --- a/tests/test-command-template.t +++ b/tests/test-command-template.t @@ -1911,3 +1911,9 @@ Test startswith | o line 1 line 2 + +Test bad template with better error message + + $ hg log -Gv -R a --template '{desc|user()}' + hg: parse error: expected a symbol, got 'func' + [255]