2012-09-20 112 views
3

我有一臺運行在Ubuntu服務器上的SVN服務器,使用Apache dav-svn模塊通過http訪問它。SVN。具有相同名稱的ACL不同存儲庫

我有幾個客戶的項目,所以我必須創建在/ var上樹結構/ SVN

/var/svn/client_1 
/var/svn/client_1/project_1 
/var/svn/client_1/project_2 
... 
/var/svn/client_2 
/var/svn/client_2/project_1 
/var/svn/client_2/project_2 

每一個項目都是一個新的存儲庫,當我需要創建一個新的項目,我做以下

在客戶端文件夾中創建一個新的存儲庫

svnadmin的創建在/ var/SVN/client_X/project_Y

所以在這個時刻,我可以通過訪問創建於dav_svn_conf

<Location /client_X> 
    DAV svn 
    SVNParentPath /var/svn/client_X 

    AuthType Basic 
    AuthName "Subversion Repository" 
    AuthUserFile /etc/apache2/dav_svn.passwd 
    Require valid-user 
    AuthzSVNAccessFile /etc/apache2/svn-acl.txt 
</Location> 

一個新的條目: https://my_svn_server.com/client_x/project_y

在/etc/apache2/svn-acl.txt文件,我有完全控制所有知識庫

[/] 
my_user=rw 

現在我想讓客戶端訪問他擁有的項目,但我做不到。如果我使用的存儲庫的名字,他有機會到其他客戶端

的所有存儲庫
[project_1:/] 
client_user=rw 

他可以訪問到的Client_1/PROJECT_1和client_2的/ PROJECT_1

我想做到以下幾點:

[client_1:/] 
client_user=rw 

我該怎麼辦?我應該改變創建存儲庫的方式嗎?

感謝您的答案。

回答

0

我建議不使用SVN的ACL,而是使用Apache/HTTP驗證與Location規則和簡單AllowDeny

管理URL空間