JUGEMテーマ:
コンピュータ最近使っていて、ローカルコミットができて便利な
mercurial(Hg)。
(チュートリアルはこちら
http://mercurial.selenic.com/wiki/JapaneseTutorial )
自分の管理するサーバにもインストールしてみようと思い、Web検索をすると、「
Mercurial/TortoiseHGの使い方・リポジトリサーバの立て方」なんて、TortoiseHGというWindowsクライアントからも使えて便利そうなタイトルのサイトがみつかった。
さっそくインストールをしてみたわけだが、/var/hg/test/repos にレポジットリを作成して、Webアクセスインターフェースを/var/hg/test/index.cgiで設定するという感じ。
うーむ。複数のレポジットリを簡単に扱えないかなあと、再びWeb検索してみると、「
Publishing Mercurial Repositories」になんかありそう、結局mercurialのソースアーカイブにhgwebdir.wsgiなるものが含まれているということわかり、「Apacheとmod_wsgiでMercurialのリポジトリを提供する」というmod_wsgiの文書が見つかった。
mod_wsgiを使えばApache httpdのモジュールとして実行できるので、処理も少し速くなりそうと、hgweb.cgi から hgwebdir.wsgiに変更してみた。こちらの設定は、バーチャルホストにしてhgwebdir.wsgiの設定ファイルでリポジトリの親ディレクトリを指定するだけ。あとは、そのディレクトリの下に複数のレポジットリを作成できて、アクセスもできるというので簡単。はいおしまいなのだが、さて、認証をどうしようかと立ち往生ってしまった。
考えてみると、おやつ程度に借りているVPSサーバではメモリーが少なくて、デーモンにメモリを捧げてしまうと、返って処理が遅くなりそうな感じ。最近、端末アクセス中にハングアップしたのかと思うくらいしばらく停止してしまう。
そんなわけで、結局、cgiに戻すことにした。最初に試したサイトに紹介されていたように、ベーシック認証なら、htpasswd.php (http://www.nurs.or.jp/~sho/scripts/php/htpasswd/)でパスワード管理もできるので便利である。
ついでに、cgiでディレクトリを扱えるdayflowerさんのスクリプトも発見。
http://d.hatena.ne.jp/dayflower/20080226/1204013008そんなわけで、最終的には以下のようなインストール手順になったはず。