我一直在尝试设置Apache来访问subversion存储库,以便:
SVNParentPath
指向包含存储库的文件夹。SVNMasterURI
透明地代理对主服务器的提交。我最初的尝试是这样的:
<Location "/collection">
DAV svn
SVNParentPath /path/to/collection
SVNMasterURI http://master/collection
SVNListParentPath on
AuthzForceUsernameCase Lower
AuthzSVNAccessFile /path/to/access-file
</Location>
使用此配置,透明代理将按预期提交工作。但是,当我尝试浏览http://svn-server/collection/
时,我得到403 Forbidden
,错误日志包含The URI does not contain the name of a repository.
。
Trailing slashes似乎非常重要,所以在尝试Location
,SVNParentPath
和SVNMasterURI
上的所有尾随斜线组合后,我发现:
SVNListParentPath
工作,Location
必须有一个斜杠。SVNMasterURI
工作,Location
必须不有一个尾部斜杠。所有这些都在Ubuntu 12.04,Apache 2.2.22,mod_dav_svn 1.6.17dfsg-3ubuntu3上。
我的问题是:
有没有办法同时使用SVNListParentPath
和SVNMasterURI
?
答案 0 :(得分:2)
如果这是您的选项,请将Subversion和mod_dav_svn升级到版本1.8.10或更高版本。同时修复了“尾随斜杠错误”,SVNListParentPath与<location /collection>
一起正常工作。
我可以确认,SVNMasterURI对<location>
非常敏感。确保master和slave存储库中的路径相同。