# HG changeset patch # User Brendan Cully # Date 1160611001 25200 # Node ID 41741218504d19b7613502b322d13ff6a2b39bae # Parent 818598f5bc8b91ea260ab5d1bd9c28bda0567294 hgweb: trap lookup errors diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py --- a/mercurial/hgweb/hgweb_mod.py +++ b/mercurial/hgweb/hgweb_mod.py @@ -13,7 +13,7 @@ from mercurial.demandload import demandl demandload(globals(), "re zlib ConfigParser mimetools cStringIO sys tempfile") demandload(globals(), 'urllib') demandload(globals(), "mercurial:mdiff,ui,hg,util,archival,streamclone,patch") -demandload(globals(), "mercurial:templater") +demandload(globals(), "mercurial:revlog,templater") demandload(globals(), "mercurial.hgweb.common:get_mtime,staticfile,style_map") from mercurial.node import * from mercurial.i18n import gettext as _ @@ -765,7 +765,10 @@ class hgweb(object): method = getattr(self, 'do_' + cmd, None) if method: - method(req) + try: + method(req) + except (hg.RepoError, revlog.RevlogError), inst: + req.write(self.t("error", error=str(inst))) else: req.write(self.t("error", error='No such method: ' + cmd))