さくらインターネットでmercurialを使う
sakura mercurialでググるとそこそこヒットする。
でも一カ所のやり方だけをまねてもうまくいかなかったから、まとめる。
目標:
1.sshしてhgコマンドが使えるようにする
2.ssh経由のhgリポジトリとして動作するようにする
1.sshしてhgコマンドが使えるようにする
これはすぐできる。
http://www.dodgson.org/omo/t/?date=20070519
ここの、「入手 展開 インストール」をそのまま実行。
そのまま、local/binにPATHを通しても良いのだが、目標2でちょっとやっかいなことが起きるので
$HOMEに$HOME/local/binへのリンクを貼る
cd ln -s local/bin bin
もしすでに$HOME/binが存在するならhgコマンドのリンクだけ貼っても良い。
cd ln -s local/bin/hg bin/hg
hg init hoge
とかやって動けばOK
2.ssh経由のhgリポジトリとして動作するようにする
さて、1で動くようになったhgを使ってリポジトリを初期化しcloneしようとするとmercurialモジュールが無いと怒られる。
$ hg clone ssh://foo@wwwXXX.sakura.ne.jp/SOME_REPOS_PATH remote: Traceback (most recent call last): remote: File "/home/foo/bin/hg", line 10, in ? remote: from mercurial import commands remote: ImportError: No module named mercurial abort: no suitable response from remote hg!
これはssh経由でリモートのhgを実行するときに、ユーザ定義の環境変数などが読み込まれないのが原因。
#.zshrcや.bashrcなどが読み込まれない
これをクリアするためにpythonの設定をする。
http://www.emptypage.jp/notes/pymods-on-sakura.html#ID000301
ここが大変参考になる。
おそらくここに掲載されているどの手法を使ってもうまく行くが、"アイデアその2、user モジュールのからくりを使う"を採用したらうまく行った。
cd vi .pythonrc.py
#!/usr/bin/env python import sys if not '/home/foo/local/lib/python' in sys.path: sys.path.append('/home/foo/local/lib/python')
cd cd bin vi hg
#!/usr/local/bin/python # # mercurial - scalable distributed SCM # # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to theterms # of the GNU General Public License, incorporated herein by reference. #ここ追加 import user from mercurial import commands commands.run()
パスは適宜変えてほしい。