2013-03-26 82 views
3

我一直在试图设置Apache访问Subversion版本库这样的:可能合并`SVNListParentPath`和`SVNMasterURI`?

  • 利用存放收藏的,即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在同一时间的方法吗?

+0

你有没有这个运气?我有相同的用例,对解决方案/解决方法非常感兴趣。 – spikeheap 2013-07-29 14:42:32

+1

恐怕不是,我的解决方法是添加一个简单的脚本,在浏览到“http:// svn-server/collection /”时执行存储库列表呈现。 – 2013-07-30 05:23:05

回答

2

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

我可以证实,SVNMasterURI对<location>非常敏感。确保主路径和从属存储库的路径相同。