Mercurial
<始める前に>
- 手元に Mercurial がインストールされていること (最新版がいいかも)
- サーバで Python 使えること (最新版がいいかも python -v で確認 MercurialはPythonがないと動かないよ。クライアント側もね。)
- サーバで C コンパイラが使えること (which gcc で確認)
あと、サーバ側はApachとかをインストールして、CGIも使えるようにしておく。
<ダウンロードとインストール>
Mercurial のソースコードをダウンロードして展開, 適当なローカルディレクトリにインストールする。
サーバ側:
<レポジトリの準備>
サーバ側で公開するレポジトリを手元で作り, サーバにコピーする。
その際にサーバ側で必要な設定(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