2013-03-26 60 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>非常敏感。確保主路徑和從屬存儲庫的路徑相同。