可以组合`SVNListParentPath`和`SVNMasterURI`?

时间:2013-03-26 09:42:00

标签: svn mod-dav-svn

我一直在尝试设置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似乎非常重要,所以在尝试LocationSVNParentPathSVNMasterURI上的所有尾随斜线组合后,我发现:

  • SVNListParentPath工作,Location必须有一个斜杠。
  • SVNMasterURI工作,Location必须有一个尾部斜杠。

所有这些都在Ubuntu 12.04,Apache 2.2.22,mod_dav_svn 1.6.17dfsg-3ubuntu3上。

我的问题是:

有没有办法同时使用SVNListParentPathSVNMasterURI

1 个答案:

答案 0 :(得分:2)

如果这是您的选项,请将Subversion和mod_dav_svn升级到版本1.8.10或更高版本。同时修复了“尾随斜杠错误”,SVNListParentPath与<location /collection>一起正常工作。

我可以确认,SVNMasterURI对<location>非常敏感。确保master和slave存储库中的路径相同。