--- 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: