Bei einer typischen Subversion / Apache-Konfiguration mit SVNParentPath mit folgenden Repositorys /svn/
:
<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>
Gibt es eine Möglichkeit, diese Konfiguration für bestimmte Repositorys zu überschreiben, ohne sie auf einem anderen Pfad hosten zu müssen? Das heißt, gibt es eine Möglichkeit, einen Location
Block wie diesen hinzuzufügen ...
<Location /svn/my_special_repo>
SVNPath /srv/source/svn/repos/my_special_repo
AuthzSVNAccessFile /srv/source/svn/repos/my_special_repo/conf/authz
</Location>
... und hat es die im Block angegebene Konfiguration für
überschrieben ? Meine Versuche, dies mit der obigen Konfiguration zu tun, sind auf seltsame und nicht hilfreiche Fehler im Apache-Fehlerprotokoll gestoßen, wie z.Location
/svn
[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
All dies scheint mod_dav_svns Art zu sein, mir zu sagen, dass ich nicht tun kann, was ich versuche zu tun. Ich bin offen für Lösungen oder Alternativen!
EDIT : Nun, ich kann sehen, dass diese Frage bei der Leserschaft viel Aufregung ausgelöst hat. Für den Datensatz kann ich am Ende Konfigurationen pro Repository für alle vorhandenen Repositorys generieren und dann die SVNParentPath
basierte Konfiguration aufgeben . Die Apache-Konfiguration pro Repo ist minimal, insbesondere bei Verwendung von mod_macro . Der schwierige Teil wird darin bestehen, die globale Authz-Datei aufzuteilen. Wenn Sie dies bereits getan haben, sind Tipps willkommen.
Antworten:
Ich hasse es, meine eigene Frage dort in der Liste der unbeantworteten Fragen zu sehen. Deshalb haben wir Folgendes getan:
In unserer Hauptserverkonfiguration haben wir:
Wir haben Folgendes übernommen,
mod_macro
um dieses Verhalten für neue Repositorys zu replizieren:Dadurch
RewriteRule
kann die Repository-Konfiguration die<Location /svn/>
in der Hauptkonfiguration überschreiben , die sonst der Anforderung entsprechen würde.Mit dieser Funktion ist es relativ einfach, die Authentifizierungs- und Autorisierungskonfiguration pro Repository (anstelle der
htpasswd
hier verwendeten globalen Datei) zu übernehmen.quelle