3

我有一个 SVN 服务器在带有 Apache dav-svn 模块的 Ubuntu 服务器上运行,可以通过 http 访问它。

我有几个客户的项目,所以我在 /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

我该怎么做?我应该改变创建存储库的方式吗?

感谢您的回答。

4

1 回答 1

0

I would recommend not using SVN's ACL and instead use Apache/HTTP Auth to manage the URL space with Location rules and simple Allow and Deny

于 2013-03-11T20:29:28.900 回答