なんとなく Object のメソッドを眺めていたら、 tap なんてメソッドが追加されてた。 ChangeLog によると [ruby-talk:224013] が理由とあるな。
Sat Nov 18 23:39:20 2006 Yukihiro Matsumoto <matz@ruby-lang.org> * object.c (rb_obj_tap): a new method. [ruby-talk:224013]
メソッドチェーンの途中の値を p したいときに使ったりするのか。ふーん。
(19:12)
cvsup の Subversion 版が欲しいなあと思ってたんだけど、 svnsync というのがそれか。でも 1.4 以上にしかないのねえ。 めんどくさいな。 かといって家の全マシンで ruby-lang.org から svn co するのもアレな感じだし……。
しょうがない、サーバの /usr/local に svn 1.4 を入れて、 svnsync だけそっち使うか。
……いや待て、Subversion って rpath 使ってんだっけ。
tukumo:~ % ldd /usr/local/pkg/subversion-1.3.2/bin/svn | head -n1 libsvn_client-1.so.0 => /usr/local/pkg/subversion-1.3.2/lib/libsvn_client-1.so.0 (0x00002aaaaabc3000)
共存できるのか。そんならこれで行くかな。
(19:32)
svn 1.4.2 を /usr/local/pkg/subversion-1.4.2 以下に入れようと 試みたが、想像よりも大変だった。
まず、apr, apr-util, neon が Subversion に入らなくなっててしくじる。 それぞれチェックアウトしてきてソースツリーのトップに置き、 ./autogen.sh で configure を作る。
次に、libtool がインストールされてなかった。 まあこれは sudo aptitude install libtool で終わり。
次。明示的に --enable-shared を付けないと neon のリンクで 「neon のオブジェクトファイルが PIC じゃねえよゴルァ」と怒られた。 共有ライブラリから neon にリンクしてるのに、 neon はスタティックリンクな感じでコンパイルされてるからダメなわけだ。
次。ようやくインストールできた svn 1.4 の svnadmin help を実行してみると、 なぜか古い (/usr/lib にある) libsvn_fs_base.so をロードしてしくじる。 1.4.2 の libsvn_fs_base.so はコンパイルされていなかった。 新しい bdb をインストールしてないせいかな。 この状況はちょっと回避策が思いつかなかったけど、 問題が起こるのは svnadmin help とかの特殊な場合だけみたいなので、 さっくり無視することにする。
次。ミラー先のレポジトリをうっかり新しい (1.4.2 の) svnadmin で作ったら 古い svn でアクセスできなくて作り直し。
で、ようやく svnsync までたどりつく。
~ % svnadmin create --fs-type=fsfs /var/svn/ruby ~ % echo '#!/bin/sh' > /var/svn/ruby/hooks/pre-revprop-change ~ % echo 'exit 0' >> /var/svn/ruby/hooks/pre-revprop-change ~ % chmod 755 /var/svn/ruby/hooks/pre-revprop-change ~ % svnsync init file:///var/svn/ruby http://svn.ruby-lang.org/repos/ruby ~ % svnsync sync file:///var/svn/ruby
svnsync init でレポジトリの順番を逆にしてしまってしばらく悩んだ。
いまシンクロしてるけど、さすがにリビジョンが 10000 以上あると時間かかるねこりゃ。 まだ 3000 くらい。
(22:02)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.