diff -r 892592475094 -r faa41fd282d1 mercurial/templatefuncs.py --- a/mercurial/templatefuncs.py Fri May 04 21:31:34 2018 -0700 +++ b/mercurial/templatefuncs.py Thu Apr 19 21:00:12 2018 +0900 @@ -113,6 +113,13 @@ raise error.ParseError(_('extdata expects one argument')) source = evalstring(context, mapping, args['source']) + if not source: + sym = templateutil.findsymbolicname(args['source']) + if sym: + raise error.ParseError(_('empty data source specified'), + hint=_("did you mean extdata('%s')?") % sym) + else: + raise error.ParseError(_('empty data source specified')) cache = context.resource(mapping, 'cache').setdefault('extdata', {}) ctx = context.resource(mapping, 'ctx') if source in cache: