Subversion1.7をソースからコンパイルしてインストールする方法
openldap-develをインストール
sudo yum install openldap-devel
openldap-develを入れずにsubversionをmakeすると、下記のようなエラーが出ます。
/usr/bin/ld: skipping incompatible /usr/lib/libldap.so when searching for -lldap
/usr/bin/ld: skipping incompatible /usr/lib/libldap.a when searching for -lldap
/usr/bin/ld: cannot find -lldap
collect2: ld returned 1 exit status
make: *** [subversion/libsvn_subr/libsvn_subr-1.la] Error 1
CentOS5.3でSubversion1.7.5をconfigure & makeしたらエラーが出ました
neonをコンパイル&インストール
最新のneonをインストールしておきましょう。http://www.webdav.org/neon/
wget http://www.webdav.org/neon/neon-0.29.6.tar.gz
tar xvfz neon-0.29.6.tar.gz
cd neon-0.29.6
./configure --with-ssl
make
sudo make install
これを入れないと、httpプロトコルでの通信ができないです。subversion1.7とsqlite 3071200のソースコードを取得
wget http://www.sqlite.org/sqlite-amalgamation-3071200.zip
wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/subversion/subversion-1.7.5.tar.gz
tar xvfz subversion-1.7.5.tar.gz
unzip sqlite-amalgamation-3071200.zip
ダウンロードして解凍したら、sqliteをsubversionディレクトリの中に移動します。
mv sqlite-amalgamation-3071200 subversion-1.7.5/sqlite-amalgamation
subversion1.7.5をコンパイル&インストール
やっと準備完了です。cd subversion-1.7.5
./configure --with-neon --with-ssl
make
makeが成功したら、生成されたバイナリをたたいてバージョンを確認します。
$ subversion/svn/svn --version
svn, version 1.7.5 (r1336830)
compiled May 20 2012, 07:29:05
Copyright (C) 2012 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
バージョンが1.7.5、そしてra_neonモジュールがちゃんと組み込まれています!動作確認します。
$ subversion/svn/svn log https://path/to/repo/trunk --limit 10
これでログがちゃんと表示されたらOKです。ではインストール!
sudo make install
デフォルトでは/usr/local/bin/svnにインストールされます。
/usr/local/bin/svn --version
/usr/local/bin/svn log https://path/to/repo/trunk --limit 10
しばらく触ってみて、問題なければyumのsvnをアンインストールしましょう。
sudo yum remove subversion
感想
svnコマンドの動作がめちゃ速くなりました。svn 1.6では妙なもっさり感がありましたが、svn1.7は本当にきびきび動きます。
特に、svn stの結果が一瞬で表示されるのがありがたいです。
これで開発がサクサク進むこと間違いなし!
注意点
svn 1.7.5で、svn switchのバグに遭遇しました。svn: E235000: In file 'subversion/libsvn_wc/update_editor.c' line 1583:
assertion failed (action == svn_wc_conflict_action_edit ||
action == svn_wc_conflict_action_delete || action == svn_wc_conflict_action_replace)
このバグのようです。http://subversion.tigris.org/issues/show_bug.cgi?id=4160
回避策がわかったので記事を書きました。
Solution to "svn: E235000: In file 'subversion/libsvn_wc/update_editor.c' line 1583: assertion failed"