eclipseからSubversionのリポジトリに接続(subclipse)

LinuxへのSubversionのインストールが終了したので、クライアント(Windows eclipse)からsvn接続してみる。

サーバ(Subversion)環境

  • バージョン:1.6.2
  • リポジトリルート:/home/svn
  • テストリポジトリ:/home/svn/test

クライアント(Eclipse)環境

  • バージョン:3.4.2

  1. subclipseのインストール
    ヘルプ>ソフトウェア更新>使用可能なソフトウェア に以下のサイトを追加。
    http://subclipse.tigris.org/update_1.6.x
  2. リポジトリ・ロケーションの作成
    svn://xxx.xxx.xxx.xxx(サーバのIP)/test

    エラーが出た。
    Unsupported FS format
    svn: Expected FS format ‘2’; found format ‘4’


ちょっと調べたけどよく分からん。
FS(ファイルシステム?)のバージョンが違うって感じのエラーかな・・・。

サーバ側でリポジトリを作成する時に以下のようにしたところ繋がった。
svnadmin create /home/svn/test –pre-1.5-compatible


※)たぶんデフォルトだと–pre-1.6-compatibleだと思う
subclipseが1.6.2に対応していないのかな・・・。
でも一応1.6.xのサイトからダウンロードしてるのになぁ・・・。


まぁ仕方ないから1.5のフォーマットで良いことにしよう。
どうせ仕事で自分がSubversionサーバの管理者になることは無いだろうし。

linuxへのSubversionのインストール

subversionのインストール
# wget http://subversion.tigris.org/downloads/subversion-1.6.2.tar.gz
# tar zxvf subversion-1.6.2.tar.gz
# cd subversion-1.6.2
# ./configure –with-apr=/usr/local/apache2 –with-apr-util=/usr/local/apache2 –with-apxs=/usr/local/apache2/bin/apxs –with-ssl
ここでエラー発生
–ここから
configure: Configuring Subversion 1.6.2
configure: creating config.nice
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for g++… g++
checking whether we are using the GNU C++ compiler… yes
checking whether g++ accepts -g… yes
checking how to run the C preprocessor… gcc -E
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking target system type… i686-pc-linux-gnu
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking whether ln -s works… yes
checking for a BSD-compatible install… /usr/bin/install -c
configure: Apache Portable Runtime (APR) library configuration
checking for APR… yes
checking APR version… 1.3.3
configure: Apache Portable Runtime Utility (APRUTIL) library configuration
checking for APR-util… yes
checking APR-UTIL version… 1.3.4
checking for pkg-config… /usr/bin/pkg-config
configure: checking neon library
checking for neon-config… no
An appropriate version of neon could not be found, so libsvn_ra_neon
will not be built. If you want to build libsvn_ra_neon, please either
install neon 0.28.4 on this system
or
get neon 0.28.4 from:
http://www.webdav.org/neon/neon-0.28.4.tar.gz
unpack the archive using tar/gunzip and rename the resulting
directory from ./neon-0.28.4/ to ./neon/
no suitable neon found
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
configure: looking for apr_memcache as part of apr-util
checking apr_memcache.h usability… yes
checking apr_memcache.h presence… yes
checking for apr_memcache.h… yes
checking for apr_memcache_create in -laprutil-1… yes
checking for Apache module support via DSO through APXS… found at /usr/local/apache2/bin/apxs
checking httpd version… recent enough
checking whether Apache version is compatible with APR version… yes
configure: checking sqlite library
amalgamation not found at /usr/local/src/subversion-1.6.2/sqlite-amalgamation/sqlite3.c
checking sqlite3.h usability… yes
checking sqlite3.h presence… yes
checking for sqlite3.h… yes
checking sqlite library version (via header)… unsupported SQLite version
checking sqlite library version (via pkg-config)… none or unsupported 3.3
no
An appropriate version of sqlite could not be found. We recommmend
3.6.13, but require at least 3.4.0.
Please either install a newer sqlite on this system
or
get the sqlite 3.6.13 amalgamation from:
http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz
unpack the archive using tar/gunzip and copy sqlite3.c from the
resulting directory to:
/usr/local/src/subversion-1.6.2/sqlite-amalgamation/sqlite3.c
This file also ships as part of the subversion-deps distribution.
configure: error: Subversion requires SQLite
–ここまで
依存するファイルのダウンロード
# cd /usr/local/src
# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.2.tar.gz
# tar zxvf subversion-deps-1.6.2.tar.gz
# ./configure –with-apr=/usr/local/apache2 –with-apr-util=/usr/local/apache2 –with-apxs=/usr/local/apache2/bin/apxs –with-ssl
★トラックバック:http://ueblog.natural-wave.com/2009/03/30/subversion-install/
今度は成功。makeする
# make
なげぇ・・・
# make install
で、インストール終了らしい。
★設定いろいろ
1.svnグループ・svnユーザの作成
2.リポジトリを格納するディレクトリを作成
/home/svn
3.xinetdの設定
  /etc/xinetd.d/svnserve
service svnserve
{
disable = no
socket_type = stream
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /home/svn
log_on_failure += USERID
}
4./etc/servicesの編集
  svnserve 3690/tcp # Subversion
  svnserve 3690/udp # Subversion
  ※)すでにsvnがある場合は上記に書き換える
5.サービスに登録
  chkconfig –add svnserve
6.xinetdの再起動
  service xinetd restart
7.リポジトリの作成
  svnadmin create /home/svn/test
8.svnserve.confの設定
  /home/svn/test/conf/svnserve.conf
anon-access = none # Anonymous(匿名)ユーザ
auth-access = write # 認証済みユーザ
password-db = passwd # パスワードファイル名
9.パスワードの設定
  /home/svn/test/conf/passwd
harry = harryssecret
  ※)アクセス権を変更しておく
    chmod 600 passwd
    chown svn:svn passwd
10.ディレクトリの作成
  svn mkdir -m ‘setup trunk’ file:///home/svn/test/trunk
  svn mkdir -m ‘setup trunk’ file:///home/svn/test/tags
  svn mkdir -m ‘setup trunk’ file:///home/svn/test/branches

Subversionをインストールした後のApacheの挙動

linux(CentOS)にSubversionをインストールした後、Apacheが起動しなくなっていることに気づいた。
こんなエラーがでる。
httpd: Syntax error on line 54 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider
そういやSubversionってhttpでやり取りできるんだっけ。
取りあえずWEBベースでバージョン管理を行う気はないので、httpd.confから該当箇所をコメントアウトすることで対処することにした。
#LoadModule dav_svn_module modules/mod_dav_svn.so
#LoadModule authz_svn_module modules/mod_authz_svn.so
SubversionとApacheの連携を保持したままこの問題を解決する為には、以下のサイトを見ると良いかも。
といっても詳しく読んでないのでこれで直るかは未検証。
http://www.battlefield.jp/modules/xeblog/?action_xeblog_details=1&blog_id=14