--> --> -->
 
 
<class 'mercurial.error.ParseError'>
Python 2.7.13: /usr/bin/python
Tue Jul 17 17:02:27 2018

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /home/unexist/hg/hgweb.cgi in ()
     21 
     22 from mercurial import demandimport; demandimport.enable()
     23 from mercurial.hgweb import hgweb, wsgicgi
     24 application = hgweb(config)
=>   25 wsgicgi.launch(application)
wsgicgi = <module 'mercurial.hgweb.wsgicgi' from '/usr/lib...on2.7/dist-packages/mercurial/hgweb/wsgicgi.pyc'>, wsgicgi.launch = <function launch>, application = <mercurial.hgweb.hgwebdir_mod.hgwebdir object>
 /usr/lib/python2.7/dist-packages/mercurial/hgweb/wsgicgi.py in launch(application=<mercurial.hgweb.hgwebdir_mod.hgwebdir object>)
     85     content = application(environ, start_response)
     86     try:
=>   87         for chunk in content:
     88             write(chunk)
     89         if not headers_sent:
chunk undefined, content = <generator object run_wsgi>
 /usr/lib/python2.7/dist-packages/mercurial/hgweb/hgwebdir_mod.py in run_wsgi(self=<mercurial.hgweb.hgwebdir_mod.hgwebdir object>, req=<mercurial.hgweb.request.wsgirequest object>)
    220     def run_wsgi(self, req):
    221         with profiling.maybeprofile(self.ui):
=>  222             for r in self._runwsgi(req):
    223                 yield r
    224 
r undefined, self = <mercurial.hgweb.hgwebdir_mod.hgwebdir object>, self._runwsgi = <bound method hgwebdir._runwsgi of <mercurial.hgweb.hgwebdir_mod.hgwebdir object>>, req = <mercurial.hgweb.request.wsgirequest object>
 /usr/lib/python2.7/dist-packages/mercurial/hgweb/hgweb_mod.py in run_wsgi(self=<mercurial.hgweb.hgweb_mod.hgweb object>, req=<mercurial.hgweb.request.wsgirequest object>)
    308         with self._obtainrepo() as repo:
    309             with profiling.maybeprofile(repo.ui):
=>  310                 for r in self._runwsgi(req, repo):
    311                     yield r
    312 
r undefined, self = <mercurial.hgweb.hgweb_mod.hgweb object>, self._runwsgi = <bound method hgweb._runwsgi of <mercurial.hgweb.hgweb_mod.hgweb object>>, req = <mercurial.hgweb.request.wsgirequest object>, repo = <mercurial.localrepo.proxycls object>
 /usr/lib/python2.7/dist-packages/mercurial/hgweb/hgweb_mod.py in _runwsgi(self=<mercurial.hgweb.hgweb_mod.hgweb object>, req=<mercurial.hgweb.request.wsgirequest object>, repo=<mercurial.localrepo.proxycls object>)
    423                 content = webcommands.rawfile(rctx, req, tmpl)
    424             else:
=>  425                 content = getattr(webcommands, cmd)(rctx, req, tmpl)
    426                 req.respond(HTTP_OK, ctype)
    427 
content undefined, builtin getattr = <built-in function getattr>, global webcommands = <module 'mercurial.hgweb.webcommands' from '/usr...7/dist-packages/mercurial/hgweb/webcommands.pyc'>, cmd = 'archive', rctx = <mercurial.hgweb.hgweb_mod.requestcontext object>, req = <mercurial.hgweb.request.wsgirequest object>, tmpl = <mercurial.templater.templater object>
 /usr/lib/python2.7/dist-packages/mercurial/hgweb/webcommands.py in archive(web=<mercurial.hgweb.hgweb_mod.requestcontext object>, req=<mercurial.hgweb.request.wsgirequest object>, tmpl=<mercurial.templater.templater object>)
   1063     archival.archive(web.repo, req, cnode, artype, prefix=name,
   1064                      matchfn=matchfn,
=> 1065                      subrepos=web.configbool("web", "archivesubrepos"))
   1066     return []
   1067 
subrepos undefined, web = <mercurial.hgweb.hgweb_mod.requestcontext object>, web.configbool = <bound method requestcontext.configbool of <mercurial.hgweb.hgweb_mod.requestcontext object>>
 /usr/lib/python2.7/dist-packages/mercurial/archival.py in archive(repo=<mercurial.localrepo.proxycls object>, dest=<mercurial.hgweb.request.wsgirequest object>, node='\xd2\xa8Z\x99<\xb8\xac\xdd\x95\xfc\x8f\xe9\x83\n\xcd8T\xb0\xa3\x18', kind='tbz2', decode=True, matchfn=<mercurial.match.match object>, prefix='subtle-d2a85a993cb8/', mtime=None, subrepos=False)
    324         for i, f in enumerate(files):
    325             ff = ctx.flags(f)
=>  326             write(f, 'x' in ff and 0o755 or 0o644, 'l' in ff, ctx[f].data)
    327             repo.ui.progress(_('archiving'), i + 1, item=f,
    328                              unit=_('files'), total=total)
write = <function write>, f = 'Doxyfile', ff = '', ctx = <changectx d2a85a993cb8>, ].data undefined
 /usr/lib/python2.7/dist-packages/mercurial/archival.py in write(name='Doxyfile', mode=420, islink=False, getdata=<bound method filectx.data of <filectx Doxyfile@d2a85a993cb8>>)
    298 
    299     def write(name, mode, islink, getdata):
=>  300         data = getdata()
    301         if decode:
    302             data = repo.wwritedata(name, data)
data undefined, getdata = <bound method filectx.data of <filectx Doxyfile@d2a85a993cb8>>
 /usr/lib/python2.7/dist-packages/mercurial/context.py in data(self=<filectx Doxyfile@d2a85a993cb8>)
   1110     def data(self):
   1111         try:
=> 1112             return self._filelog.read(self._filenode)
   1113         except error.CensoredNodeError:
   1114             if self._repo.ui.config("censor", "policy", "abort") == "ignore":
self = <filectx Doxyfile@d2a85a993cb8>, self._filelog = <hgext.keyword.kwfilelog object>, self._filelog.read = <bound method kwfilelog.read of <hgext.keyword.kwfilelog object>>, self._filenode = '\xa5\xf7\x18\x1e\x1c\x94$\x1dvKY\x08\xcat\xe6\xd53\xf39\xb7'
 /usr/lib/python2.7/dist-packages/hgext/keyword.py in read(self=<hgext.keyword.kwfilelog object>, node='\xa5\xf7\x18\x1e\x1c\x94$\x1dvKY\x08\xcat\xe6\xd53\xf39\xb7')
    352         if self.renamed(node):
    353             return data
=>  354         return self.kwt.expand(self.path, node, data)
    355 
    356     def add(self, text, meta, tr, link, p1=None, p2=None):
self = <hgext.keyword.kwfilelog object>, self.kwt = <hgext.keyword.kwtemplater object>, self.kwt.expand = <bound method kwtemplater.expand of <hgext.keyword.kwtemplater object>>, self.path = 'Doxyfile', node = '\xa5\xf7\x18\x1e\x1c\x94$\x1dvKY\x08\xcat\xe6\xd53\xf39\xb7', data = '# Doxyfile 1.5.4\n# $Id$\n\n#----------------------...--------------------\nSEARCHENGINE = NO\n'
 /usr/lib/python2.7/dist-packages/hgext/keyword.py in expand(self=<hgext.keyword.kwtemplater object>, path='Doxyfile', node='\xa5\xf7\x18\x1e\x1c\x94$\x1dvKY\x08\xcat\xe6\xd53\xf39\xb7', data='# Doxyfile 1.5.4\n# $Id$\n\n#----------------------...--------------------\nSEARCHENGINE = NO\n')
    257         if not self.restrict and self.match(path) and not util.binary(data):
    258             ctx = self.linkctx(path, node)
=>  259             return self.substitute(data, path, ctx, self.rekw.sub)
    260         return data
    261 
self = <hgext.keyword.kwtemplater object>, self.substitute = <bound method kwtemplater.substitute of <hgext.keyword.kwtemplater object>>, data = '# Doxyfile 1.5.4\n# $Id$\n\n#----------------------...--------------------\nSEARCHENGINE = NO\n', path = 'Doxyfile', ctx = <changectx 1a3892d520d8>, self.rekw = <_sre.SRE_Pattern object>, self.rekw.sub = <built-in method sub of _sre.SRE_Pattern object>
 /usr/lib/python2.7/dist-packages/hgext/keyword.py in substitute(self=<hgext.keyword.kwtemplater object>, data='# Doxyfile 1.5.4\n# $Id$\n\n#----------------------...--------------------\nSEARCHENGINE = NO\n', path='Doxyfile', ctx=<changectx 1a3892d520d8>, subfunc=<built-in method sub of _sre.SRE_Pattern object>)
    247             ekw = templatefilters.firstline(self.ui.popbuffer())
    248             return '$%s: %s $' % (kw, ekw)
=>  249         return subfunc(kwsub, data)
    250 
    251     def linkctx(self, path, fileid):
subfunc = <built-in method sub of _sre.SRE_Pattern object>, kwsub = <function kwsub>, data = '# Doxyfile 1.5.4\n# $Id$\n\n#----------------------...--------------------\nSEARCHENGINE = NO\n'
 /usr/lib/python2.7/dist-packages/hgext/keyword.py in kwsub(mobj=<_sre.SRE_Match object>)
    244                                              self.templates[kw], '', False)
    245             self.ui.pushbuffer()
=>  246             ct.show(ctx, root=self.repo.root, file=path)
    247             ekw = templatefilters.firstline(self.ui.popbuffer())
    248             return '$%s: %s $' % (kw, ekw)
ct = <mercurial.cmdutil.changeset_templater object>, ct.show = <bound method changeset_templater.show of <mercurial.cmdutil.changeset_templater object>>, ctx = <changectx 1a3892d520d8>, root undefined, self = <hgext.keyword.kwtemplater object>, self.repo = <hgext.keyword.kwrepo object>, self.repo.root = '/home/unexist/hg/repos/subtle', builtin file = <type 'file'>, path = 'Doxyfile'
 /usr/lib/python2.7/dist-packages/mercurial/cmdutil.py in show(self=<mercurial.cmdutil.changeset_templater object>, ctx=<changectx 1a3892d520d8>, copies=None, matchfn=None, **props={'file': 'Doxyfile', 'root': '/home/unexist/hg/repos/subtle'})
   1267             self.hunk[ctx.rev()] = self.ui.popbuffer()
   1268         else:
=> 1269             self._show(ctx, copies, matchfn, props)
   1270 
   1271     def _show(self, ctx, copies, matchfn, props):
self = <mercurial.cmdutil.changeset_templater object>, self._show = <bound method changeset_templater._show of <mercurial.cmdutil.changeset_templater object>>, ctx = <changectx 1a3892d520d8>, copies = None, matchfn = None, props = {'file': 'Doxyfile', 'root': '/home/unexist/hg/repos/subtle'}
 /usr/lib/python2.7/dist-packages/mercurial/cmdutil.py in _show(self=<mercurial.cmdutil.changeset_templater object>, ctx=<changectx 1a3892d520d8>, copies=None, matchfn=None, props={'activebookmark': <function showactivebookmark>, 'author': <function showauthor>, 'bisect': <function showbisect>, 'bookmarks': <function showbookmarks>, 'branch': <function showbranch>, 'branches': <function showbranches>, 'cache': {}, 'changessincelatesttag': <function showchangessincelatesttag>, 'children': <function showchildren>, 'ctx': <changectx 1a3892d520d8>, ...})
   1575         # write changeset metadata, then patch if requested
   1576         key = self._parts['changeset']
=> 1577         self.ui.write(templater.stringify(self.t(key, **props)))
   1578         self.showpatch(ctx, matchfn)
   1579 
self = <mercurial.cmdutil.changeset_templater object>, self.ui = <mercurial.ui.ui object>, self.ui.write = <bound method ui.write of <mercurial.ui.ui object>>, global templater = <module 'mercurial.templater' from '/usr/lib/python2.7/dist-packages/mercurial/templater.pyc'>, templater.stringify = <function stringify>, self.t = <mercurial.templater.templater object>, key = 'changeset', props = {'activebookmark': <function showactivebookmark>, 'author': <function showauthor>, 'bisect': <function showbisect>, 'bookmarks': <function showbookmarks>, 'branch': <function showbranch>, 'branches': <function showbranches>, 'cache': {}, 'changessincelatesttag': <function showchangessincelatesttag>, 'children': <function showchildren>, 'ctx': <changectx 1a3892d520d8>, ...}
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in __call__(self=<mercurial.templater.templater object>, t='changeset', **mapping={'activebookmark': <function showactivebookmark>, 'author': <function showauthor>, 'bisect': <function showbisect>, 'bookmarks': <function showbookmarks>, 'branch': <function showbranch>, 'branches': <function showbranches>, 'cache': {}, 'changessincelatesttag': <function showchangessincelatesttag>, 'children': <function showchildren>, 'ctx': <changectx 1a3892d520d8>, ...})
   1202         proc = self.ecache[ttype]
   1203 
=> 1204         stream = proc.process(t, mapping)
   1205         if self.minchunk:
   1206             stream = util.increasingchunks(stream, min=self.minchunk,
stream undefined, proc = <mercurial.templater.engine object>, proc.process = <bound method engine.process of <mercurial.templater.engine object>>, t = 'changeset', mapping = {'activebookmark': <function showactivebookmark>, 'author': <function showauthor>, 'bisect': <function showbisect>, 'bookmarks': <function showbookmarks>, 'branch': <function showbranch>, 'branches': <function showbranches>, 'cache': {}, 'changessincelatesttag': <function showchangessincelatesttag>, 'children': <function showchildren>, 'ctx': <changectx 1a3892d520d8>, ...}
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in process(self=<mercurial.templater.engine object>, t='changeset', mapping={'activebookmark': <function showactivebookmark>, 'author': <function showauthor>, 'bisect': <function showbisect>, 'bookmarks': <function showbookmarks>, 'branch': <function showbranch>, 'branches': <function showbranches>, 'cache': {}, 'changessincelatesttag': <function showchangessincelatesttag>, 'children': <function showchildren>, 'ctx': <changectx 1a3892d520d8>, ...})
   1069         mapping contains added elements for use during expansion. Is a
   1070         generator.'''
=> 1071         func, data = self._load(t)
   1072         return _flatten(func(self, mapping, data))
   1073 
func undefined, data undefined, self = <mercurial.templater.engine object>, self._load = <bound method engine._load of <mercurial.templater.engine object>>, t = 'changeset'
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in _load(self=<mercurial.templater.engine object>, t='changeset')
   1059                 if self._aliasmap:
   1060                     x = _aliasrules.expand(self._aliasmap, x)
=> 1061                 self._cache[t] = compileexp(x, self, methods)
   1062             except: # re-raises
   1063                 del self._cache[t]
self = <mercurial.templater.engine object>, self._cache = {}, t = 'changeset', global compileexp = <function compileexp>, x = ('template', ('symbol', 'file'), ('string', ',v '), ('symbol', 'rev'), ('string', ' '), ('|', ('symbol', 'date'), ('symbol', 'utcdate')), ('string', ' '), ('|', ('symbol', 'author'), ('symbol', 'user'))), global methods = {'%': <function buildmap>, '*': <function <lambda>>, '+': <function <lambda>>, '-': <function <lambda>>, '/': <function <lambda>>, 'func': <function buildfunc>, 'group': <function <lambda>>, 'integer': <function <lambda>>, 'negate': <function buildnegate>, 'string': <function <lambda>>, ...}
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in compileexp(exp=('template', ('symbol', 'file'), ('string', ',v '), ('symbol', 'rev'), ('string', ' '), ('|', ('symbol', 'date'), ('symbol', 'utcdate')), ('string', ' '), ('|', ('symbol', 'author'), ('symbol', 'user'))), context=<mercurial.templater.engine object>, curmethods={'%': <function buildmap>, '*': <function <lambda>>, '+': <function <lambda>>, '-': <function <lambda>>, '/': <function <lambda>>, 'func': <function buildfunc>, 'group': <function <lambda>>, 'integer': <function <lambda>>, 'negate': <function buildnegate>, 'string': <function <lambda>>, ...})
    251     t = exp[0]
    252     if t in curmethods:
=>  253         return curmethods[t](exp, context)
    254     raise error.ParseError(_("unknown method '%s'") % t)
    255 
curmethods = {'%': <function buildmap>, '*': <function <lambda>>, '+': <function <lambda>>, '-': <function <lambda>>, '/': <function <lambda>>, 'func': <function buildfunc>, 'group': <function <lambda>>, 'integer': <function <lambda>>, 'negate': <function buildnegate>, 'string': <function <lambda>>, ...}, t = 'template', exp = ('template', ('symbol', 'file'), ('string', ',v '), ('symbol', 'rev'), ('string', ' '), ('|', ('symbol', 'date'), ('symbol', 'utcdate')), ('string', ' '), ('|', ('symbol', 'author'), ('symbol', 'user'))), context = <mercurial.templater.engine object>
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in buildtemplate(exp=('template', ('symbol', 'file'), ('string', ',v '), ('symbol', 'rev'), ('string', ' '), ('|', ('symbol', 'date'), ('symbol', 'utcdate')), ('string', ' '), ('|', ('symbol', 'author'), ('symbol', 'user'))), context=<mercurial.templater.engine object>)
    358 
    359 def buildtemplate(exp, context):
=>  360     ctmpl = [compileexp(e, context, methods) for e in exp[1:]]
    361     return (runtemplate, ctmpl)
    362 
ctmpl undefined, global compileexp = <function compileexp>, e = ('|', ('symbol', 'date'), ('symbol', 'utcdate')), context = <mercurial.templater.engine object>, global methods = {'%': <function buildmap>, '*': <function <lambda>>, '+': <function <lambda>>, '-': <function <lambda>>, '/': <function <lambda>>, 'func': <function buildfunc>, 'group': <function <lambda>>, 'integer': <function <lambda>>, 'negate': <function buildnegate>, 'string': <function <lambda>>, ...}, exp = ('template', ('symbol', 'file'), ('string', ',v '), ('symbol', 'rev'), ('string', ' '), ('|', ('symbol', 'date'), ('symbol', 'utcdate')), ('string', ' '), ('|', ('symbol', 'author'), ('symbol', 'user')))
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in compileexp(exp=('|', ('symbol', 'date'), ('symbol', 'utcdate')), context=<mercurial.templater.engine object>, curmethods={'%': <function buildmap>, '*': <function <lambda>>, '+': <function <lambda>>, '-': <function <lambda>>, '/': <function <lambda>>, 'func': <function buildfunc>, 'group': <function <lambda>>, 'integer': <function <lambda>>, 'negate': <function buildnegate>, 'string': <function <lambda>>, ...})
    251     t = exp[0]
    252     if t in curmethods:
=>  253         return curmethods[t](exp, context)
    254     raise error.ParseError(_("unknown method '%s'") % t)
    255 
curmethods = {'%': <function buildmap>, '*': <function <lambda>>, '+': <function <lambda>>, '-': <function <lambda>>, '/': <function <lambda>>, 'func': <function buildfunc>, 'group': <function <lambda>>, 'integer': <function <lambda>>, 'negate': <function buildnegate>, 'string': <function <lambda>>, ...}, t = '|', exp = ('|', ('symbol', 'date'), ('symbol', 'utcdate')), context = <mercurial.templater.engine object>
 /usr/lib/python2.7/dist-packages/mercurial/templater.py in buildfilter(exp=('|', ('symbol', 'date'), ('symbol', 'utcdate')), context=<mercurial.templater.engine object>)
    374         f = funcs[n]
    375         return (f, [arg])
=>  376     raise error.ParseError(_("unknown function '%s'") % n)
    377 
    378 def runfilter(context, mapping, data):
global error = <module 'mercurial.error' from '/usr/lib/python2.7/dist-packages/mercurial/error.pyc'>, error.ParseError = <class 'mercurial.error.ParseError'>, global _ = <function gettext>, n = 'utcdate'

<class 'mercurial.error.ParseError'>: unknown function 'utcdate'
      args = ("unknown function 'utcdate'",)
      hint = None
      message = "unknown function 'utcdate'" Status: 200 Script output follows ETag: W/"1529322937" Content-Disposition: attachment; filename=subtle-d2a85a993cb8.tar.bz2 Content-Type: application/x-bzip2 BZh91AY&SYL?u_Ljl@@< 4ڰii&F@4"hd4b0L0L$)4&#MM44OFCAz<7J꘼dK[0JVKA"@d"P7ádiz1{*Y\diXEŋ1&P