Por repository AuthzSVNAccessFile regla de apache con un solo file de configuration de apache u otra solución de script de shell

Estoy escribiendo un set de enlaces svn para permitir la administración remota del repository SVN, tal como lo hace gitolite con GIT.

Creé el script que genera AuthzSVNAccessFile para cada repository que tengo, ahora necesito decirle a Apache que busque cada uno de ellos dependiendo del repository.

No puedo tener un file de configuration de Apache para cada repository, ya que necesitaría reiniciar el server apache.

Sé que puedo usar un solo AuthzSVNAccessFile para administrar múltiples repositorys, pero el script que crea el file lleva time (necesita descubrir la ruta completa de todos los directorys dentro del repository) y haría que la confirmación tarde demasiado.

Traté de usar mod_rewrite, pero no funcionó, tal vez lo usé mal.

Básicamente, necesito una regla en mi file de configuration de Apache que lea un file diferente según la URL solicitada, ¿es posible? ¿Cómo?

O necesito un script capaz de reescribir un bloque de un file. Estoy usando sed para replace las cadenas que tengo en mi plantilla, pero no sé cómo usarlo para replace varias líneas.

Gracias por tu time

No tengo idea de por qué estás tratando de usar mod_rewrite a less que no haya entendido bien tu pregunta. Pero parece que está utilizando SVNParentPath y tiene problemas para encontrar la manera de configurar las configuraciones de authentication para todos los repositorys.

Tienes unas cuantas opciones.

Use un file authz

En realidad, puede generar un único file authz y especificar a qué repositorys se aplican las reglas. La syntax es de la forma [repos-name:path] (como puede encontrar en la sección de Autorización basada en ruta del Libro de Subversion ). Una desventaja de esto es que si tienes muchos repositorys y muchos paths con reglas, puede ralentizar las cosas. Lo cual parece que te has encontrado. Una cosa que puede ayudar a mitigar esto es usar la siguiente configuration

 SVNPathAuthz short_circuit 

SVNPathAuthz controla cómo se autorizan las requestes de routes distintas del URI cuando se necesita acceder a otras routes además del URI de la request (por ejemplo, log, commit, etc.). El comportamiento pnetworkingeterminado es emitir una sub-request. Esto genera una nueva request GET en httpd y la envía a través de toda la infraestructura de autorización para httpd. Sin embargo, en casi todos los casos esto no es necesario ya que la única configuration de autorización que puede variar con la ruta bajo la location que se usa para servir a SVN es la configuration mod_authz_svn. short_circuit, le dice a Subversion que evite todo esto y simplemente envíe la información de autorización directamente a mod_authz_svn, que proporciona la respuesta que limita directamente el retraso.

Puede que aún no sea suficiente, así que hay un par de alternativas, pero necesitará al less 1.7 para usarlas.

AuthzSVNReposRelativeAccessFile

Subversion 1.7 agregó una nueva directiva de configuration que le permite especificar una ruta relativa al subdirectory conf del repository. Por ejemplo, si tiene un repository llamado foo, puede colocar el file authz en / ruta / a / foo / conf / authz y luego establecer el siguiente valor de configuration:

 AuthzSVNReposRelativeAccessFile authz 

La directiva anterior a 1.7 que se utilizó AuthzSVNAccessFile fue relativa a la ruta raíz del server.

En repository Authz *

Subversion 1.8 le permite almacenar el file authz en el repository mismo . Entonces, por ejemplo, si usted cometió el file en el repository en un directory llamado conf como el file authz, entonces lo haría:

 AuthzSVNAccessFile ^/authz 

La ^ / syntax se reemplaza con la ruta completa al repository.

Probablemente desee leer los detalles en las notas de la versión vinculada de 1.8 si decide usar esto.