@kyanny's blog

My thoughts, my life. Views/opinions are my own.

さくらインターネットのレンタルサーバ(スタンダードプラン)で hgwebdir.cgi を使う

まず、 Mercurial を DreamHost で使う の手順に従う。

「URI をきれいにする」の、

# clean URI
import os
os.environ['SCRIPT_NAME'] = os.getenv('SCRIPT_URL')[:-len(os.getenv('PATH_INFO', ''))]
...

この部分のみエラーでうまくいかないので、

os,environ['SCRIPT_NAME'] = ''

にしちゃう。これでも動く(http://hg.example.com/hgwebdir.cgi/hello みたいなのじゃなく http://hg.example.com/hello みたいな URL になる)。

なぜエラーになるのかはよくわからない(さくらインターネットのレンタルサーバ(スタンダードプラン)だとエラーログが見られない)けど、環境変数みてみたら SCRIPT_URL がセットされてなかったから、存在しないキーを参照しているとかでダメなのかもしれない。


・・・けど、自分で使う分には一個のレポジトリで十分だったので、結局 hgweb.cgi 一つおくほうに戻してしまった。 hgwebdir.cgi の collections の中身にどんなレポジトリ群があるのかをみる hg hogehoge コマンドはないのかな。あると便利なんだけど。