UbuntuでMercurialリポジトリをhgweb.cgiで公開

まず、以前aptで入れたmercurialを削除する。こっちではhgwebが使えないので。

sudo apt-get remove mercurial

python開発環境とパッケージ管理ツールのeasy_installを入れる

sudo apt-get install python-dev python
cd ~/tmp
wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py

これでeasy_installが使える


mercurialを再インストール

sudo easy_install -U mercurial

1.0.1が入った。


PythonでCGI - 橋本詳解の手順でapachepythoncgiが動くように設定する。


hgweb.cgiを適当に修正してapache2の/var/www以下に設置、permissionなど適宜修正


hgweb.cgi

#!/usr/bin/python
#
# An example CGI script to use hgweb, edit as necessary

# adjust python path if not a system-wide install:
import sys
#sys.path.insert(0, "/home/username/lib/python2.4/")

# enable importing on demand to reduce startup time
from mercurial import demandimport; demandimport.enable()

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

# If you'd like to serve pages with UTF-8 instead of your default
# locale charset, you can do so by uncommenting the following lines.
# Note that this will cause your .hgrc files to be interpreted in
# UTF-8 and all your repo files to be displayed using UTF-8.
#
import os
os.environ["HGENCODING"] = "UTF-8"

from mercurial.hgweb.hgweb_mod import hgweb
import mercurial.hgweb.wsgicgi as wsgicgi

application = hgweb("/path/to/repository", "repository name")
wsgicgi.launch(application)

リポジトリを後ろから2行目で指定する


http://shokai.mag.keio.ac.jp/ttemulator/hg/