Suas preocupações derivam da visualização da configuração do Apache como código; não é. Você vai ficar louco se pensar a partir dessa perspectiva.
Não há estrutura lógica, apenas algumas construções condicionais rudimentares em certos comandos individuais, e próximo a nenhuma manipulação de variáveis. Todas as coisas que permitem que uma linguagem de programação permita que você evite a duplicação de código e melhore o fluxo da lógica simplesmente não estão presentes, por design; é apenas um arquivo de configuração, afinal de contas - alguns argumentariam que é muito flexível (e, portanto, muito fácil transformar uma configuração em uma grande bagunça sem sentido) como é.
Dito isso, você pode reduzir muito a configuração que você tem lá, aplicando apenas algumas de suas diretivas a um pai desse caminho de URL; supondo que você possa aplicar essas diretivas com segurança a /
e que essas diretivas se aplicam a todos os repositórios do sistema:
<Location "/">
DAV svn
AuthBasicProvider ldap
AuthzLDAPAuthoritative Off
AuthLDAPURL "ldap://.../DC=...,DC=com?sAMAccountName?sub?(objectClass=*)" none
AuthLDAPBindDN "CN=Subversion,OU=Subversion,DC=...,DC=com"
AuthLDAPBindPassword "..."
AuthType Basic
AuthName "Use your sAMAccountName to connect. If you're unsure, write to [email protected]."
</Location>
<Location "/SampleRepository1">
SVNPath H:/Repositories/SampleDirectory1
require ldap-group CN=Subversion OpenSource Contributors,OU=Subversion,DC=...,DC=com
require ldap-group CN=Subversion Administrators,OU=Subversion,DC=...,DC=com
</Location>
<Location "/SampleRepository2">
SVNPath H:/Repositories/SampleDirectory2
require ldap-group CN=Subversion Administrators,OU=Subversion,DC=...,DC=com
</Location>
Todos os blocos <Location>
que correspondem a uma solicitação aplicarão suas diretivas a ela (na ordem em que o arquivo os inclui), o que significa que você pode dividir muito da configuração comum em um caminho pai aplicável.