Subversion: SVN Repository-Server mit Apache2

Ein Freund fragte mich kürzlich, ob ich ihm einen SVN-Server aufsetzen könne. Ich habe selbst von SVN keine Ahnung und habe auch nicht vor mich einzulesen, da ich mit git ganz fit bin. Das ist also nur eine kleine Gedankenstütze für mich.

Voraussetzungen

  • funktionierender Apache2 auf einem Linuxsystem (hier: Debian)

Zielsetzung

Ziel soll es sein, dass ein Freund sich per SSH auf meinem Server einloggen kann und dann per „svnadmin“ die Repositories erstellt. Danach kann er über den Apache-VHost svn.misterunknown.de auf diese Repos zugreifen und diese verändern. Es gibt allerlei externe Programme, die mit dem Server kommunizieren können, beispielsweise TortoiseSVN.

Vorgehen

Als erstes hab ich die SVN-Erweiterung von Apache installiert.

apt-get install libapache2-svn

Anschließend kann man sich die (auskommentierte) Default-Konfiguration mal angucken (im Apache 2.4 heißt die Datei /etc/apache2/mods-available/dav_svn.conf). Ich dort allerdings alles auskommentiert gelassen und einen frischen VHost aufgesetzt:

<VirtualHost *:44 ServerName svn.misterunknown.de ServerAdmin webmaster@misterunknown.de SSLEngine On # man sollte Verschlüsselung benutzen ... <Location /> DAV svn SVNParentPath /data/svn SVNListParentPath on AuthType Basic # Authentifizierung einrichten ... <LimitExcept GET PROPFIND OPTIONS REPORT> Require group svn </LimitExcept> </Location> DocumentRoot /data/svn <Directory /data/svn> Require all granted AllowOverride None </Directory> ... # normales Error- und Access-Log definieren CustomLog /var/log/apache2/vhosts/svn.misterunknown.de-svn.log "%t %u %{SVN-ACTION}e" env=SVN-ACTION </VirtualHost> weiterlesen