SVN via Apache


Subversion als Revisionssystem ist ja zwischenzeitlich ein alter Hut, da besteht dank zB. git kein Zweifel. Dennoch müssen auch die Anwender ein neues Revisionssystem annehmen – dies ist leider im Tagesgeschäft problematisch, denn was man kennt, mag man auch.
Ich stelle hier kurz die Herangehensweise zusammen, um SVN Repositorys über den Apache2 erreichbar zu machen.

1. apache2, libapache2-svn, subversion und websvn installieren
Websvn Hinweis:

Hinweis zu den Zugriffsrechten
Wegen einer Limitierung des Datenbankformats benötigt das
’svnlook‘-Kommando Lese-/Schreibzugriff auf das Depot (um Sperren u.ä.
zu erstellen). Sie müssen dem Benutzer, unter dem Ihr Webserver läuft,
Lese-/Schreibzugriff auf alle Ihre Depots geben.

Dieses Problem kann umgangen werden, indem SVN-Depots mit der Option
–fs-type=fsfs erstellt werden. Vorhandene Datenbank-Depots können mit
den svnadmin dump/load-Kommandos in das FSFS-Format konvertiert werden.

Darauf wird später noch eingegangen.
Nachfolgend definiere ich den Stammpfad /daten/svn und gebe sonst keine weiteren Pfade an!!

2. Anlegen der Repositorys
Im Beispiel verwende ich /daten/svn als Stammpfad, das heisst in diesem Ordner werden die einzelnen Projekte angelegt.

sudo mkdir -p /daten/svn/test1
sudo svnadmin create /daten/svn/test1
chown -R www-data.www-data /daten/svn/test1

Da das Repository an www-data übergeben wurde, muss der obige Hinweis von WebSVN nicht beachtet werden.

3. Zugriffssteuerung
Eine Authentifizierung über htaccess realisiert genügt den Ansprüchen des Zugriffsschutzes.
In /daten/svn generiert man mittels htpasswd (die entsprechenden Optionen sind überschaubar, daher nicht aufgeführt) eine Datei namens .svn-dav-passwd, in welcher die Benutzer aufgenommen werden.

5. Apache Config
In diesem Beispiel lege ich einen eigenen VHost für den SVN an, der ServerName lautet hier svn.net.home
Zudem soll die WebSVN Oberfläche ebenfalls nur mittels Authentifizierung erreichbar sein.
Innerhalb vom Directory Direktiv der /etc/apache2/conf.d/websvn fügt man folgende Zeilen ein:

# only authenticated should access
Require valid-user

#how to authenticate a user
AuthType Basic
AuthName „MySVN“
AuthUserFile /daten/svn/.svn-dav-passwd

Unter /etc/apache2/sites-available erstellt man eine svn.net.home.conf mit folgendem Inhalt:

ServerName svn.net.home

DAV svn
SVNParentPath /daten/svn
SVNListParentPath On
# für WebDAV Gebrauch mit dem Windows-Arbeitsplatz
SVNAutoversioning On
# only authenticated should access
Require valid-user
#how to authenticate a user
AuthType Basic
AuthName „MySVN“
AuthUserFile /daten/svn/.svn-dav-passwd

CustomLog /var/log/apache2/access_svn.log „%t %u %{SVN-ACTION}e“ env=SVN-ACTION
ErrorLog /var/log/apache2/error_svn.log

Diesen Host muss man nun noch aktivieren, ein

a2enmod svn.net.home.conf

und

apache2ctl restart

und schon sind die SVN Repositorys wie definiert erreichbar.

Viel Spass beim Commiten!

  1. Bisher keine Kommentare.
(wird nicht veröffentlicht)