Dada una configuración típica de Subversion / Apache usando SVNParentPath, con repositorios alojados de /svn/esta manera:
<Location /svn>
DAV svn
SVNParentPath /srv/source/svn/repos
SVNReposName "Subversion Repository"
AuthzSVNAccessFile /srv/source/svn/authz
Satisfy Any
AuthType Basic
AuthBasicProvider file
AuthName "Subversion Repository"
AuthUserFile /srv/source/svn/htpasswd
Require valid-user
</Location>
¿Hay alguna forma de anular esta configuración para repositorios específicos sin tener que alojarlos en una ruta diferente? Es decir, ¿hay alguna forma de agregar un Locationbloque como este ...
<Location /svn/my_special_repo>
SVNPath /srv/source/svn/repos/my_special_repo
AuthzSVNAccessFile /srv/source/svn/repos/my_special_repo/conf/authz
</Location>
... y tiene que anular la configuración proporcionada en el
Locationbloque para /svn? Mis intentos de hacer esto con la configuración anterior se han encontrado con errores extraños e inútiles en el registro de errores de Apache, como:
[Wed Feb 02 11:28:35 2011] [error] [client 10.10.209.120]
(20014)Internal error: Can't open file '/srv/source/svn/repos/svn/format':
No such file or directory
Todo esto parece ser la forma de mod_dav_svn de decirme que no puedo hacer lo que estoy tratando de hacer. Estoy abierto a soluciones o alternativas!
EDITAR : Bueno, puedo ver que esta pregunta ha generado mucha emoción entre los lectores. Para el registro, lo que puedo terminar haciendo es generar configuraciones por repositorio para todos nuestros repositorios existentes, y luego abandonar la SVNParentPathconfiguración basada. La configuración de Apache por repo es mínima, especialmente usando algo como mod_macro ; La parte difícil será dividir el archivo global de autenticación. Si ha hecho esto antes, se agradecen los consejos.

Respuestas:
Odio ver mi propia pregunta languideciendo allí en la lista de preguntas sin respuesta, así que esto es lo que hicimos:
En nuestra configuración de servidor principal, tenemos:
Adoptamos lo siguiente
mod_macropara replicar este comportamiento para nuevos repositorios:El
RewriteRulepermite la configuración de repositorio para anular la<Location /svn/>en la configuración principal que de otro modo que coincida con la petición.Con esto en su lugar, resulta relativamente fácil adoptar la configuración de autenticación y autorización por repositorio (en lugar del
htpasswdarchivo global utilizado aquí).fuente