mercurial/hgweb/webcommands.py
changeset 7633 08cabecfa8a8
parent 7622 4dd7b28003d2
child 7637 1d54e2f6c0b7
equal deleted inserted replaced
7632:9626819b2e3d 7633:08cabecfa8a8
     5 # This software may be used and distributed according to the terms
     5 # This software may be used and distributed according to the terms
     6 # of the GNU General Public License, incorporated herein by reference.
     6 # of the GNU General Public License, incorporated herein by reference.
     7 
     7 
     8 import os, mimetypes, re, cgi, copy
     8 import os, mimetypes, re, cgi, copy
     9 import webutil
     9 import webutil
    10 from mercurial import revlog, archival, templatefilters
    10 from mercurial import error, archival, templatefilters
    11 from mercurial.node import short, hex, nullid
    11 from mercurial.node import short, hex, nullid
    12 from mercurial.util import binary, datestr
    12 from mercurial.util import binary, datestr
    13 from mercurial.repo import RepoError
    13 from mercurial.repo import RepoError
    14 from common import paritygen, staticfile, get_contact, ErrorResponse
    14 from common import paritygen, staticfile, get_contact, ErrorResponse
    15 from common import HTTP_OK, HTTP_FORBIDDEN, HTTP_NOT_FOUND
    15 from common import HTTP_OK, HTTP_FORBIDDEN, HTTP_NOT_FOUND
    37         req.respond(HTTP_OK, web.ctype)
    37         req.respond(HTTP_OK, web.ctype)
    38         return content
    38         return content
    39 
    39 
    40     try:
    40     try:
    41         fctx = webutil.filectx(web.repo, req)
    41         fctx = webutil.filectx(web.repo, req)
    42     except revlog.LookupError, inst:
    42     except error.LookupError, inst:
    43         try:
    43         try:
    44             content = manifest(web, req, tmpl)
    44             content = manifest(web, req, tmpl)
    45             req.respond(HTTP_OK, web.ctype)
    45             req.respond(HTTP_OK, web.ctype)
    46             return content
    46             return content
    47         except ErrorResponse:
    47         except ErrorResponse:
    91     path = webutil.cleanpath(web.repo, req.form.get('file', [''])[0])
    91     path = webutil.cleanpath(web.repo, req.form.get('file', [''])[0])
    92     if not path:
    92     if not path:
    93         return manifest(web, req, tmpl)
    93         return manifest(web, req, tmpl)
    94     try:
    94     try:
    95         return _filerevision(web, tmpl, webutil.filectx(web.repo, req))
    95         return _filerevision(web, tmpl, webutil.filectx(web.repo, req))
    96     except revlog.LookupError, inst:
    96     except error.LookupError, inst:
    97         try:
    97         try:
    98             return manifest(web, req, tmpl)
    98             return manifest(web, req, tmpl)
    99         except ErrorResponse:
    99         except ErrorResponse:
   100             raise inst
   100             raise inst
   101 
   101 
   519 
   519 
   520     try:
   520     try:
   521         fctx = webutil.filectx(web.repo, req)
   521         fctx = webutil.filectx(web.repo, req)
   522         f = fctx.path()
   522         f = fctx.path()
   523         fl = fctx.filelog()
   523         fl = fctx.filelog()
   524     except revlog.LookupError:
   524     except error.LookupError:
   525         f = webutil.cleanpath(web.repo, req.form['file'][0])
   525         f = webutil.cleanpath(web.repo, req.form['file'][0])
   526         fl = web.repo.file(f)
   526         fl = web.repo.file(f)
   527         numrevs = len(fl)
   527         numrevs = len(fl)
   528         if not numrevs: # file doesn't exist at all
   528         if not numrevs: # file doesn't exist at all
   529             raise
   529             raise