mercurial/hgweb/hgweb_mod.py
changeset 12739 8dcd3203a261
parent 12696 ef969e58a394
child 13445 61a898576888
equal deleted inserted replaced
12738:e9733f96b38b 12739:8dcd3203a261
     7 # GNU General Public License version 2 or any later version.
     7 # GNU General Public License version 2 or any later version.
     8 
     8 
     9 import os
     9 import os
    10 from mercurial import ui, hg, hook, error, encoding, templater
    10 from mercurial import ui, hg, hook, error, encoding, templater
    11 from common import get_mtime, ErrorResponse, permhooks, caching
    11 from common import get_mtime, ErrorResponse, permhooks, caching
    12 from common import HTTP_OK, HTTP_BAD_REQUEST, HTTP_NOT_FOUND, HTTP_SERVER_ERROR
    12 from common import HTTP_OK, HTTP_NOT_MODIFIED, HTTP_BAD_REQUEST
       
    13 from common import HTTP_NOT_FOUND, HTTP_SERVER_ERROR
    13 from request import wsgirequest
    14 from request import wsgirequest
    14 import webcommands, protocol, webutil
    15 import webcommands, protocol, webutil
    15 
    16 
    16 perms = {
    17 perms = {
    17     'changegroup': 'pull',
    18     'changegroup': 'pull',
   200         except (error.RepoError, error.RevlogError), inst:
   201         except (error.RepoError, error.RevlogError), inst:
   201             req.respond(HTTP_SERVER_ERROR, ctype)
   202             req.respond(HTTP_SERVER_ERROR, ctype)
   202             return tmpl('error', error=str(inst))
   203             return tmpl('error', error=str(inst))
   203         except ErrorResponse, inst:
   204         except ErrorResponse, inst:
   204             req.respond(inst, ctype)
   205             req.respond(inst, ctype)
       
   206             if inst.code == HTTP_NOT_MODIFIED:
       
   207                 # Not allowed to return a body on a 304
       
   208                 return ['']
   205             return tmpl('error', error=inst.message)
   209             return tmpl('error', error=inst.message)
   206 
   210 
   207     def templater(self, req):
   211     def templater(self, req):
   208 
   212 
   209         # determine scheme, port and server name
   213         # determine scheme, port and server name