Eu odeio ver minha própria pergunta definhando na lista de perguntas não respondidas, então aqui está o que fizemos:
-
Na nossa configuração principal do servidor, temos:
<Location /svn/> SVNParentPath /srv/source/svn/repos </Location>
-
Adotamos o seguinte
mod_macro
para replicar esse comportamento para novos repositórios:<Macro LegacySubversionRepo $name> # Override SVNParentPath block in main vhost config. RewriteRule ^/svn/$name /repo/$name [PT] <Location /repo/$name> Order deny,allow Allow from all Use LdapAuth \ "$name svn repository" \ /srv/source/svn/htpasswd DAV svn SVNPath /srv/source/svn/repos/$name AuthzSVNAccessFile /srv/source/svn/authz SVNAutoversioning On Satisfy Any </Location> </Macro>
O
RewriteRule
permite que a configuração do repositório substitua o<Location /svn/>
na configuração principal que, de outra forma, corresponderia à solicitação.
Com isso, torna-se relativamente fácil adotar a configuração de autorização e autenticação por repositório (em vez do arquivo global htpasswd
usado aqui).