トップ 最新

ただのにっき

2005-08-02(火) [長年日記]

Subversion

やまだあきらさんがximapdのMLにもりもりパッチを投げまくっているので、「こりゃTrunk HEADに追従しないと乗り遅れるかも!」と焦り(←客観的には焦る必要なし)、重い腰を上げることに。ってつまり、Subversionを入れたってことなんだけど(おせー!)。

といっても、こんだけ:

% sudo apt-get install subversion

で、ximapdは職場で使っているので、proxyを通さないと社外のリポジトリは使えない。調べたところ、~/.subversion/serversを書き換えるらしい。設定はこんな感じ?:

[global]
http-proxy-host = proxy.example.com
http-proxy-port = 8080

で、coしてみたら、ダメなのだった:

% svn co http://projects.netlab.jp/svn/ximapd/trunk ximapd
svn: REPORT リクエスト (相手: '/svn/ximapd/!svn/vcc/default') が失敗しました
svn: REPORT (URL: '/svn/ximapd/!svn/vcc/default'): 400 Bad Request
(http://projects.netlab.jp)

Status 400って……。proxyのいらない自宅サーバ上でやると問題ないから、svnの使い方は間違ってないんだよな(たぶん)。これは会社のproxyの設定に問題があるってことか?(→コレかな?) 上流のproxyにイチャモンつけるのは難しいなぁ……。自宅でsvn upして、それをscpかrsyncで取ってくることにするか。

……というわけで、ただいま先っぽに追従中。

Subversion(2)

せっかくなので真面目に使うテスト。自宅サーバのCVSリポジトリを変換してみよう。ブランチも切ってないから、素直にコンバートできるだろう。もっとも、CVSでも何も困ってないんだけど。

ツールはcvs2svnを使うらしい。保存形式には悪評高き(?)Berkeley DBじゃなくて、そろそろ安定してきたと言われているfsfsを使うことにする。

% sudo apt-get install cvs2svn
% cvs2svn --fs-type=fsfs -s ~/svn /var/lib/cvs

うんうん考え込んだあと(マシンが遅いので)、コンバート完了。これを、ssh経由で職場のマシンからアクセスする。真面目に(といっても関係のありそうなところだけつまみ食いのように)マニュアルを読んでから:

% cd ~/tmp
% svn co svn+ssh://tsukuba/home/sho/svn/trunk/www/komainu

ずらずらずら〜とcheckoutされてきた。成功だ。スムーズすぎて怖い(←珍しくちゃんとマニュアルを読んだからだと思われ)。

Subversion(3)

よそのレポジトリを職場からGETできるようにするには、自宅サーバに本家のコピーを持たせちゃえばいいんだよな。そうすればsvn+sshで取れるわけで。でもcvsの-dオプションみたいに、commit先のレポジトリを無理やり変更することはできないみたい……? svn switchが使えるかと思ったけど、違うようだし。

結局、ximapdについては、

  • svn exportした本家の内容を自宅サーバのレポジトリにsvn add、svn ci
  • 本家の内容を反映するときは上のディレクトリにsvn export --forceで強制上書きしてからsvn ci

って感じにしてみたが、スマートではないよなぁ。まぁこれだと、少なくとも自分で書いて追加したpluginなんかは問題ない。ファイルの追加や削除があったときには少し困る(が自動化は可能か?)。ローカルパッチがどうなるかは……そのときになってから考えよう(汗)。