如果我从头开始这样做,我会创建这两个独立的存储库。不幸的是,我不得不使用那里的东西。
我们的存储库如下所示:
/trunk
/tags
/branches
/secret/trunk
/secret/tags
/secret/branches
我的 SVN 配置设置如下:
<Location /gorp>
DAV svn
SVNPath /mnt/svn/repositories/gorp
AuthType basic
AuthName "Vegicorp Repostitory"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPUrl "ldap://ldap.vegicorp.net:389/DC=vegicorp,DC=NET?sAMAccountName" NONE
AuthLDAPBindDN "CN=ldap-read,,OU=Users,OU=vegicorp,DC=vegicorp,DC=net"
AuthLDAPBindPassword swordfish
Require ldap-group CN=Development,OU=Groups,OU=vegicorp,DC=vegicorp,DC=net
AuthzSVNAccessFile /opt/CollabNet_Subversion/repos_path_access/gorp
</Location>
这很好用。LDAP 组中的所有用户Development
都可以访问我们的存储库。但是,并非所有开发人员都应该能够看到该secret
目录。相反,我只希望cabal
LDAP 组中的用户能够访问它。
而且,我gorp
在上述repos_path_access
访问目录下的文件如下所示:
[/]
* = r
[/trunk]
* = rw
[/branches]
* = rw
[/tags]
* = rw
[/secret]
dvadar = rw
cpalpatine = rw
glucas = rw
* =
到目前为止,一切都很好。我的cabal
组用户 、dvadar
和cpalpatine
可以glucas
访问/secret
我的存储库中的目录,其他人甚至都看不到它。然而,随着人来人往,我不得不手动更改这个基于路径的访问文件。我想做的是让我的基于路径的访问权限让每个人都cabal
可以访问并为其他人隐藏它:
[/]
* = r
[/trunk]
* = rw
[/branches]
* = rw
[/tags]
* = rw
[/secret]
@cabal = rw
* =
这不起作用。相反,我在日志中看到了这一点:
Tue Sep 03 11:30:50 2013] [error] [client 10.55.9.217] \
Failed to load the AuthzSVNAccessFile: An authz rule refers to group '@cabal'
在我的其他开发人员不看到此目录的情况下,让我的cabal
组访问的最佳方式是什么?secret