view hgweb.cgi @ 19465:004f965630d9

osutil: consider WindowsError's behaviour to support python 2.4 on Windows This change treat the ESRCH error as ENOENT like WindowsError class does in python 2.5 or later. Without this change, some try..execpt code which expects errno is ENOENT may fail. Actually hg command does not work with python 2.4 on Windows. CreateFile() will fail with error code ESRCH when parent directory of specified path is not exist, or ENOENT when parent directory exist but file is not exist. Two errors are same in the mean of "file is not exist". So WindowsError class treats error code ESRCH as ENOENT in python 2.5 or later, but python 2.4 does not. Actual results with python 2.4: >>> errno.ENOENT 2 >>> errno.ESRCH 3 >>> WindowsError(3, 'msg').errno 3 >>> WindowsError(3, 'msg').args (3, 'msg') And with python 2.5 (or later): >>> errno.ENOENT 2 >>> errno.ESRCH 3 >>> WindowsError(3, 'msg').errno 2 >>> WindowsError(3, 'msg').args (3, 'msg') Note that there is no need to fix osutil.c because it never be used with python 2.4.
author Shun-ichi GOTO <shunichi.goto@gmail.com>
date Fri, 12 Jul 2013 11:14:42 +0900
parents 85cba926cb59
children 4b0fc75f9403
line wrap: on
line source

#!/usr/bin/env python
#
# An example hgweb CGI script, edit as necessary
# See also http://mercurial.selenic.com/wiki/PublishingRepositories

# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"

# Uncomment and adjust if Mercurial is not installed system-wide
# (consult "installed modules" path from 'hg debuginstall'):
#import sys; sys.path.insert(0, "/path/to/python/lib")

# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb(config)
wsgicgi.launch(application)