SVNをApache+mod_dav_svn.so で動かしていてはまったので、メモ。
SVNのリポジトリは、ApacheのDocumentRootに置くとリポジトリのルートディレクトリに接続できなくなるみたい。
<h3> 状況</h3>
リポジトリURL: http://svn.eumyang.net/repo で接続しようとしている。
実際のディレクトリ: /home/svn/repo
/trunk
/branches
/tags
という状況で以下のようにapacheのconfを作成して、
<VirtualHost *:80>
DocumentRoot /home/svn/
ServerName svn.eumyang.net
<Location />
DAV svn
SVNParentPath /home/svn
</Location>
</VirtualHost>
リポジトリURLにアクセスしようとすると
Repository moved permanently to “http://svn.eumyang.net/repo”
となってしまう。
下位フォルダのhttp://svn.eumyang.net/repo/trunk/ やhttp://svn.eumyang.net/repo/branches/ には接続できるが、
trunkからbranchesにブランチを切ろうとしても
Repository moved permanently to “http://svn.eumyang.net/repo”
のエラーでハマる。
いろいろと調べてみるとDocumentRoot内には、リポジトリを置けないらしい。
まぁ、SVN専用のVirtualhostなので、以下のようにドキュメントルートをコメントアウト
<VirtualHost *:80>
# DocumentRoot /home/svn/
ServerName svn.eumyang.net
<Location />
DAV svn
SVNParentPath /home/svn
</Location>
</VirtualHost>
Apacheを再起動したら普通に接続できて、ブランチも切れるようになった。
会社でも、結構SVNつかってきたけど、ずっとドキュメントルート書いてなかったのかなぁ。
これまではまらなかったの不思議でした。