Mercurial > hg
changeset 3445:233c733e4af5
httprepo: add support for passing lookup exception data
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 18 Oct 2006 02:08:36 -0500 |
parents | 3505fcd5a231 |
children | 0b450267cf47 |
files | mercurial/hgweb/hgweb_mod.py mercurial/httprepo.py |
diffstat | 2 files changed, 12 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/hgweb_mod.py Sat Sep 09 18:25:06 2006 -0700 +++ b/mercurial/hgweb/hgweb_mod.py Wed Oct 18 02:08:36 2006 -0500 @@ -884,7 +884,13 @@ req.write(self.filelog(self.filectx(req))) def do_lookup(self, req): - resp = hex(self.repo.lookup(req.form['key'][0])) + "\n" + try: + r = hex(self.repo.lookup(req.form['key'][0])) + success = 1 + except Exception,inst: + r = str(inst) + success = 0 + resp = "%s %s\n" % (success, r) req.httphdr("application/mercurial-0.1", length=len(resp)) req.write(resp)
--- a/mercurial/httprepo.py Sat Sep 09 18:25:06 2006 -0700 +++ b/mercurial/httprepo.py Wed Oct 18 02:08:36 2006 -0500 @@ -262,12 +262,11 @@ fp.close() def lookup(self, key): - try: - d = self.do_cmd("lookup", key = key).read() - return bin(d[:-1]) - except: - self.ui.warn('Not able to look up revision named "%s"\n' % (key,)) - raise + d = self.do_cmd("lookup", key = key).read() + success, data = d[:-1].split(' ', 1) + if int(success): + return bin(data) + raise hg.RepoError(data) def heads(self): d = self.do_read("heads")