これを最初から行っていた場合、この 2 つの別個のリポジトリを作成していたでしょう。残念ながら、私はそこにあるもので何とかしなければなりません。
リポジトリは次のようになります。
/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
ただし、すべての開発者がディレクトリを表示できるわけではありません。代わりに、LDAP グループのユーザーのみcabal
がアクセスできるようにしたいと考えています。
そして、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