Repository erstellen

Das Repository anlegen

Unter

 /var/repos/svn
ein neues Repository-Verzeichnis erstellen, z.B.
 mkdir siarp

Dann mit svnadmin die Struktur erstellen:

 svnadmin create /var/repos/svn/siarp

Jetzt muss Apache Besitzer der Daten werden:

 chown -R www-data.www-data /var/repos/svn/siarp

Repository im Apache exportieren

In der /etc/apache2/sites-available/dienste.siarp.de-SSL eine neue Location definieren (sofern der Zugriff auf https beschränkt wird):

 <Location /svn/siarp>
   DAV svn
   SVNPath /var/repos/svn/siarp
 </Location>
  • Im (öffnenden) Location-Tag wird der Pfad angegeben, unter dem das Repository erreichbar sein soll. Hier würde man es also unter siarp.de/svn/siarp finden. Der Pfad sollte zwecks Übersichtlichkeit immer unterhalb des virtuellen Subversion-Ordners svn sein.
  • SVNPath ist der Pfad zum Repository. Alternativ kann auch SVNParentPath verwendet werden. Bei diesem Parameter gelten die Optionen für den Zugriff auf mehrere Repositories im angegebenen Verzeichnis.

Weitere Optionen

  • Besseres Aussehen bei Browser-Zugriff
 SVNIndexXSLT "/subversion-xslt/svnindex.xsl"
  • Zugriffsbeschränkung
 AuthType Basic
 AuthName "siarp.de repository"
 AuthUserFile /var/repos/svn/svn-auth-file
 Require user martin tilman
  • Alternativ: Feingranulare Zugriffsbeschränkung
 AuthType Basic
 AuthName "siarp.de repository"
 AuthUserFile /var/repos/svn/svn-auth-file
 <Limit GET PROPFIND OPTIONS REPORT>
   Require user martin tilman
 </Limit>
 <Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
   Require user martin
 </Limit>
  • Beschränkung auf SSL-Zugriff
 SSLRequireSSL

Ein Beispiel

Auf dieses Repository kann tilman lesend, martin lesend und schreibend zugreifen. Es ist nur über SSL erreichbar.

 # siarp Subversion-Anhang
 <Location /svn/siarp>
   DAV svn
   SVNPath /var/repos/svn/siarp
   SVNIndexXSLT "/subversion-xslt/svnindex.xsl"
   AuthType Basic
   AuthName "siarp.de repository"
   AuthUserFile /var/repos/svn/svn-auth-file
   <Limit GET PROPFIND OPTIONS REPORT>
     Require user martin tilman
   </Limit>
   <Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
     Require user martin
   </Limit>
   SSLRequireSSL
 </Location>