Subversionのインストール

自宅用のSubversionをインストールしたので、そのメモ。
クライアントからはWebDAVで接続できるようにします。

Subversionのインストール

aptを使ってさくっとインストール。

apt-get subversion

次にリポジトリをsvnadminを使って作成。
ついでに基本的なフォルダも追加しておきます。

svnadmin create /home/svn/repos
svn mkdir -m 'setup trunk' file:///home/svn/repos/trunk
svn mkdir -m 'setup branches' file:///home/svn/repos/branches
svn mkdir -m 'setup tags' file:///home/svn/repos/tags

うまくできたかリポジトリを確認

svn list svn://localhost
branches/
tags/
trunk/

OK。大丈夫みたいですね。

Apache2のインストールとWebDAVの設定

WebDAVを使いたいので、Apache2とlibapache2-svnをインストールします。
DebianではApache2にいくつかパッケージが用意されているのですが、ここでは安定度の高いapache2-mpm-preforkを使います。

apt-get install apache2-mpm-prefork
apt-get install libapache2-svn

apacheの実行ユーザがリポジトリを操作できるように権限を変更
セキュリティ的にこれが良いのか悪いのか?ですが、単純に設定。

chown -R www-data:www-data /home/svn/repos

次にWebDAVでアクセスできるように/etc/apache2/conf.d/svnを作成。

<Location /svn/repos>
  DAV svn
  SVNPath /home/svn/repos
  SVNAutoversioning on
  AuthName "SVN Repository"
  AuthUserFile "/etc/apache2/davpasswd"
  AuthType Basic
  Require valid-user
</Location>

指定したパスワードファイルも作成しておきます。

htpasswd -c /etc/apache2/davpasswd {ユーザ名}

最後に、Apache2をリロード。

/etc/init.d/apache2 force-reload

WebDAV経由でリポジトリにアクセスできるか確認。

svn list http://localhost/svn/repos
認証領域: <http://localhost:80> SVN Repository
'{ユーザ名}' のパスワード:
branches/
tags/
trunk/

OK!

ところで、始めは認証を使わないように設定したのですが、そうすると次のようなエラーがでてimportができませんでした(参照はできました)

svn: MKACTIVITY request failed on '/svn/repos/!svn/act/000001073a330825'

apacheのエラーログ/var/log/apache2/error.logを見てみると、認証タイプを設定していないのが問題のようでした。認証を使わないと誰でもコミットできるようになると思ってたのですが違ったみたいですね。

configuration error:  couldn't perform authentication. 
       AuthType not set!: /svn/repos/!svn/act/0000010732bf201f