次に、SubversionWebDAV経由で公開するとき、またはまりそうだなと思うのでメモしておこう。

WebDAV経由で公開する設定を終えてホットした後に、チェックアウトでもしてみるかと試してみると、

fuzzybsd@mame:~/temp$ svn co http://svn.example.com.com/amodule/
認証領域: <http://svn.example.com:80> SVN WebDAV Authentication
'fuzzybsd' のパスワード: 
svn: PROPFIND リクエスト (相手: '/amodule') が失敗しました
svn: PROPFIND (URL: '/amodule'): 301 Moved Permanently (http://svn.example.com)

とまぁ、この様なエラーがでて何もできない。なぜだ。設定は完璧だと思っていたのに。。*1

301 Moved Permanently

とりあえず、上記のキーワードでググったところ、公開:, Apache + Subversion, , , , , , , , , , , - 忘れたときに備えた記録(2005-03-17)さんのところでバッチリ解決することができた。

結論だけ書いておくと、DocumentRootとDAVを設定するLocationの実際のパスが同じだとダメだということ。潔く、DocumentoRootを設定しなければ問題なしとなる。

最後に、DAVの設定を一式載せておこう。

<VirtualHost *>
    ServerName svn.example.com
    
    # これだとエラーになるので注意しよう。
    #DocumentRoot /home/svn/repositories

    <Location />
	DAV svn
	SVNParentPath /home/svn/repositories
	AuthzSVNAccessFile /home/svn/authz.access
	AuthType Basic
	AuthName "SVN WebDAV Authentication"
	AuthUserFile /home/svn/.htpasswd
	Require valid-user
    </Location>

    ErrorLog /var/log/apache2/svn.example.com.error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/svn.example.com.access.log combined
    ServerSignature On

</VirtualHost>

*1:ちなみに、このWebDAVの設定を終える前に、あろうことかapacheの設定をスペルミスしており、これで1時間、見事にはまってしまったあとだったので、なおさらショックだった。