O tema comum nos problemas que você está tendo é que suas seções [/repoA]
e [/repoB]
não estão fazendo nada, certo? Há uma razão para isso.
Os caminhos que você está autorizando são não relativos ao local do arquivo de acesso authz; eles são relativos ao repositório SVN que está controlando o controle de acesso.
Então, sua seção [/]
? Concede acesso a ambos os /svn/repoA/
e /svn/repoB/
; ele não concede acesso a /svn/
. Da mesma forma, sua seção [/repoA]
concede acesso a /svn/repoA/repoA
e /svn/repoB/repoA
; uma regra para [/trunk]
concederá acesso a ambos /svn/repoA/trunk
e /svn/repoB/trunk
.
Você definiu SVNPath
diretivas para cada um de seus repositórios, mas está apontando para os mesmos arquivos de autorização para cada um - portanto, cada repositório tem regras de acesso idênticas. Há uma sintaxe para definir diferentes autorizações para diferentes repositórios, mas isso é para quando você está usando SVNParentPath
.
Então, duas opções:
-
Mude para o
SVNParentPath /var/www/svn
em vez de definir cada repositório em sua configuração do Apache, e mude o seu arquivo authz para ter permissões direcionadas a repo:[/] * = userA = r [repoA:/] * = userA = rw [repoB:/] * = userB = rw
-
Use diferentes arquivos authz para cada repositório, tendo em mente que os caminhos para os quais o acesso está sendo concedido é relativo à raiz do repositório.