Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/hgweb/webcommands.py @ 6368:2c370f08c486
hgweb: better error messages
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Sun, 23 Mar 2008 23:08:18 +0100 |
parents | fe8dbbe9520d |
children | 2540521dc7c1 782dbbdfb1d7 |
comparison
equal
deleted
inserted
replaced
6367:51984a2413f2 | 6368:2c370f08c486 |
---|---|
32 req.respond(HTTP_OK, web.ctype) | 32 req.respond(HTTP_OK, web.ctype) |
33 return content | 33 return content |
34 | 34 |
35 try: | 35 try: |
36 fctx = web.filectx(req) | 36 fctx = web.filectx(req) |
37 except revlog.LookupError: | 37 except revlog.LookupError, inst: |
38 content = web.manifest(tmpl, web.changectx(req), path) | 38 try: |
39 req.respond(HTTP_OK, web.ctype) | 39 content = web.manifest(tmpl, web.changectx(req), path) |
40 return content | 40 req.respond(HTTP_OK, web.ctype) |
41 return content | |
42 except ErrorResponse: | |
43 raise inst | |
41 | 44 |
42 path = fctx.path() | 45 path = fctx.path() |
43 text = fctx.data() | 46 text = fctx.data() |
44 mt = mimetypes.guess_type(path)[0] | 47 mt = mimetypes.guess_type(path)[0] |
45 if mt is None or util.binary(text): | 48 if mt is None or util.binary(text): |
51 def file(web, req, tmpl): | 54 def file(web, req, tmpl): |
52 path = web.cleanpath(req.form.get('file', [''])[0]) | 55 path = web.cleanpath(req.form.get('file', [''])[0]) |
53 if path: | 56 if path: |
54 try: | 57 try: |
55 return web.filerevision(tmpl, web.filectx(req)) | 58 return web.filerevision(tmpl, web.filectx(req)) |
56 except revlog.LookupError: | 59 except revlog.LookupError, inst: |
57 pass | 60 pass |
58 | 61 |
59 return web.manifest(tmpl, web.changectx(req), path) | 62 try: |
63 return web.manifest(tmpl, web.changectx(req), path) | |
64 except ErrorResponse: | |
65 raise inst | |
60 | 66 |
61 def changelog(web, req, tmpl, shortlog = False): | 67 def changelog(web, req, tmpl, shortlog = False): |
62 if 'node' in req.form: | 68 if 'node' in req.form: |
63 ctx = web.changectx(req) | 69 ctx = web.changectx(req) |
64 else: | 70 else: |
107 allowed = web.configlist("web", "allow_archive") | 113 allowed = web.configlist("web", "allow_archive") |
108 if (type_ in web.archives and (type_ in allowed or | 114 if (type_ in web.archives and (type_ in allowed or |
109 web.configbool("web", "allow" + type_, False))): | 115 web.configbool("web", "allow" + type_, False))): |
110 web.archive(tmpl, req, req.form['node'][0], type_) | 116 web.archive(tmpl, req, req.form['node'][0], type_) |
111 return [] | 117 return [] |
112 raise ErrorResponse(HTTP_NOT_FOUND, 'Unsupported archive type: %s' % type_) | 118 raise ErrorResponse(HTTP_NOT_FOUND, 'unsupported archive type: %s' % type_) |
113 | 119 |
114 def static(web, req, tmpl): | 120 def static(web, req, tmpl): |
115 fname = req.form['file'][0] | 121 fname = req.form['file'][0] |
116 # a repo owner may set web.static in .hg/hgrc to get any file | 122 # a repo owner may set web.static in .hg/hgrc to get any file |
117 # readable by the user running the CGI script | 123 # readable by the user running the CGI script |