Mercurialを使ってみた
1.0が出たので使ってみました。
http://www.selenic.com/mercurial/wiki/index.cgi/Mercurial
Windowsクライアント
Windows上は
http://mercurial.berkwood.com/
ここにありますがお勧めは亀さんですね
http://www.selenic.com/mercurial/wiki/index.cgi/TortoiseHg
両方入れておいたほうがいいと思います。
サーバー側
サーバーはCORESERVER(XREA)で試しました。
以下コマンドです
wget http://www.selenic.com/mercurial/release/mercurial-1.0.tar.gz tar zxvf mercurial-1.0.tar.gz cd mercurial-1.0/ HOME=$HOME/local make install-home-bin
上記でダウンロードから、インストールまで。本当はinstall-homeなのですがdocでエラーが発生するので、バイナリだけインストールしました。
これで /virtual/user_name/local にインストールされます。
vi .bash_profile
環境変数を追加します。
export PATH=$PATH:~/local/bin export PYTHONPATH=~/local/lib/python
こんな感じで追加します。
cd local mkdir var cd var mkdir testrepo cd testrepo/ hg init
local以下にvarを作ってレポジトリを作成。
vi .hg/hgrc
設定ファイルの編集
[web] push_ssl = false allow_push = *
BASIC認証を入れた場合には allow_push の場所にユーザー名をセットします。これでSSLを利用していないアクセスと、だれでも更新が可能になります。
cd cd mercurial-1.0/ mkdir ~/public_html/user_name/testrepo cp hgweb.cgi ~/public_html/user_name/testrepo/ cd ~/public_html/user_name/testrepo/ vi hgweb.cgi chmod 755 hgweb.cgi
公開用のフォルダを作成し、処理用のCGIをコピーして編集します。
import sys sys.path.insert(0, "/virtual/user_name/local/lib/python") import os os.environ["HGENCODING"] = "UTF-8" application = hgweb("/virtual/user_name/local/var/testrepo", "repository name")
上記の設定をしてCGIにアクセスしてみて、ページが表示されれば完了です。エラーが出た場合にはCGIの拡張子をcgidに変更することでエラーを見ることができます。
クライアントからのアクセス
hg clone http://domainname/testrepo/hgweb.cgi testrepo
上記で testrepo フォルダが作成され、リポジトリの内容を取得します。
何かファイルを追加してから、コミットとサーバーへの送信を行います。
hg add hg commit hg push
上記でファイルの追加、コミット、サーバーへの送信になります。
いろいろ触ったところ、10M以上のファイルは警告がでます。出ても送信できるみたいですが、CORESERVERの場合には大きすぎるファイルの場合にはエラーで落ちてしまいます。
この辺はレンタルサーバーのCGIで動かす限界かもしれません。
あまり大きなファイルを転送しないで、プログラムだけだったら十分使える可能性があります。