Mercurial

<始める前に>

  • 手元に Mercurial がインストールされていること (最新版がいいかも)
  • サーバで Python 使えること (最新版がいいかも python -v で確認 MercurialはPythonがないと動かないよ。クライアント側もね。)
  • サーバで C コンパイラが使えること (which gcc で確認)
あと、サーバ側はApachとかをインストールして、CGIも使えるようにしておく。

<ダウンロードとインストール>

Mercurial のソースコードをダウンロードして展開, 適当なローカルディレクトリにインストールする。

サーバ側:
$wget http://www.selenic.com/mercurial/release/mercurial-1.0.1.tar.gz
$tar xvzf mercurial-1.0.1.tar.gz
$cd mercurial-1.0.1
$python setup.py install

<レポジトリの準備>

サーバ側で公開するレポジトリを手元で作り, サーバにコピーする。
その際にサーバ側で必要な設定(hgrc の記述)も済ませておく。

クライアント側:
$mkdir TEST_SRC
$hg init TEST_SRC
$vi TEST_SRC/.hg/hgrc

hgrcの編集:
[web]
push_ssl = false
allow_push = *

"allow_push = *" は任意のユーザにチェックイン(push)を許す設定。
アクセス管理は apache に任せるので, ここでは素通し。
"push_ssl = false" は push の際にSSLは使わないの場合、HTTPを許す設定。
このレポジトリを丸ごとサーバにコピーする。

クライアント側:
$tar cvzf TEST_SRC.tgz TEST_SRC
$scp TEST_SRC.tgz ....

サーバ側でそれをファイル管理用のディレクトリに展開する。
ついでに CGI から書き換え可能なアクセス権を与える

サーバ側:
$tar xvzf TEST_SRC.tgz
TEST_SRC ディレクトリができる。アクセス権限も追加しておく。
$find TEST_SRC -type d | xargs chmod 777
$find TEST_SRC -type f | xargs chmod 666

レポジトリづくりはサーバ側でも構わないらしいが、
hg コマンドを動かすには環境変数の設定などがあり、手元でやる方が楽とのこと。

<CGI の設定>

hgweb.cgiをWebから見える適当なディレクトリにコピーし、設定をする。

サーバ側:
$mkdir ~/cgi-bin/TEST_SRC/
$cp ~/tmp/mercurial-1.0.1/hgweb.cgi ~/cgi-bin/TEST_SRC/index.cgi
$chmod 755 ~/cgi-bin/TEST_SRC/index.cgi
$vi ~/cgi-bin/TEST_SRC/index.cgi
スクリプトの書き換え箇所は二箇所ある.まずこのコメントを外し
Mercurial をインストールしたディレクトリを指定する.
import sys
sys.path.insert(0, "/usr/lib64/Python")
レポジトリの場所を指定する。
application = hgweb("/***/***/TEST_SRC/", "TEST_SRC")

<hgコマンドを打つ>

リポジトリに移って、hgコマンドで
$hg add
$hg commit
と打つ。
コミットはメッセージを入れないとうまくコミットできないので、注意。

これで設定は完了。
index.cgiをwebで見てみよう!Internal Server Errorとかでないなら、たぶんOK!
最終更新:2008年06月25日 18:30