HowTo: Subversion Server / svnserve unter debian
Es wird die Einrichtung eines Subversion Servers und eines Repositories unter Debian behandelt.
Dieses HowTo setzt voraus, dass man sich mit TortoiseSVN oder einem anderen SVN-Client bereits auskennt.
Konfiguration von svnserve
Im Folgenden wird die Verwendung von svnserve über inetd ohne ssh beschrieben, da dies die einfachste Lösung ist.
Installation von svnserve
Zunächst wird svnserve mit aptitude oder apt-get installiert:
Update: das benötigte Paket heißt nicht mehr svnserve sondern subversion
1 | apt-get install subversion |
Anlegen der Pfade, Benutzer und Gruppen
Um dem Serverprozess nicht unnötig viele Rechte zu geben, werden ein User und eine Gruppe ‘svn’ benötigt, unter denen der Server gestartet wird und dem die Repositories gehören.
1 2 | useradd svn mkdir /pfad/zu/den/Repositories |
Konfiguration von inetd
1 2 3 4 5 | # man muss nicht vim benutzen... vim /etc/inetd.conf # einfügen in /etc/inetd.conf svn stream tcp nowait svn.svn /usr/bin/svnserve svnserve -i -r /pfad/zu/den/Repositories |
Das erste ‘svn’ gibt den Service an und muss in /etc/services definiert sein. Der Port für Subversion ist 3690. In der fünften Spalte wird der Benutzer und die Gruppe angegeben mit der das Programm in aus der sechsten Spalte gestartet werden soll. Die Parameter von svnserve:
1 2 3 | -i : startet svnserve im inetd Modus
-r : legt das Root Verzeichnis der Repositories fest. Ein Zugriff auf Dateien in höheren
Verzeichnisebenen ist somit nicht mehr möglich. |
Neustart von inetd
Damit inetd die Änderungen in /etc/inetd.conf übernimmt muss inetd neu gestartet werden
1 | /etc/init.d/openbsd-inetd restart |
Jetzt sollte svnserv laufen und Anfragen bearbeiten.
Falls man seine Firewall im paranoid-Modus “block all” muss man nun noch ein Ausnahme für svnserv eintragen. Sofern man an der Firewall nichts geändert hat muss man auch nichts zusätzlich für svnserv einstallen.
Repository anlegen
Anlegen der Repository-Datenbank
Zunächst wird für das Repository ein neuer Ordner angelegt.
Subversion speichert die Daten in einer speziellen Datenbank. Diese muss anschließend in diesem Ordner angelegt werden.
1 2 3 4 | mkdir /pfad/zu/den/Repositories/TestRepos svnadmin create /pfad/zu/den/Repositories/TestRepos chown -R svn:svn /pfad/zu/den/Repositories chmod -R 700 /pfad/zu/den/Repositories |
Überprüfung, ob die Datenbank angelegt wurde und alle Rechte stimmen:
1 2 3 4 5 6 7 8 | ls -al /pfad/zu/den/Repositories/TestRepos drwx------ 2 svn svn 4096 2009-04-01 21:38 conf drwx------ 2 svn svn 4096 2009-04-01 21:20 dav drwx------ 5 svn svn 4096 2009-04-02 10:36 db -rwx------ 1 svn svn 2 2009-04-01 21:20 format drwx------ 2 svn svn 4096 2009-04-01 21:20 hooks drwx------ 2 svn svn 4096 2009-04-01 21:20 locks -rwx------ 1 svn svn 229 2009-04-01 21:20 README.txt |
Konfiguration des Repositories
Nun müssen die Zugriffsrechte auf das Repository festgelegt werden
1 | vim /pfad/zu/den/Repositories/TestRepos/conf/svnserve.conf |
Die relevanten Einstellungen sind:
1 2 3 4 | [general] anon-access = [none, read, write] auth-access = [none, read, write] password-db = [Dateiname] |
In OpenSource Projekten ist es üblich “anon-access = read” zu verwenden, ich verwende für meine eigenen Entwicklungen allerdings
1 2 3 4 | [general] anon-access = none auth-access = write password-db = passwd |
Zuletzt müssen noch die berechtigen Benutzer eingestellt werden. Wie zu sehen ist das Format “Benutzername = PlainTextPasswort”
Bei der vorliegenden unverschlüsselten Variante empfiehlt es sich den Benutzern zufällig generierte Passwörter zuzuweisen. Die Benutzer können ihre Passwörter nicht selbst ändern.
1 2 3 4 | vim /pfad/zu/den/Repositories/TestRepos/conf/passwd [users] test = testpasswd |
Jetzt kann auf das Repository zugegriffen werden
Zugriff auf das Repository

Hier ein Beispiel (Windows mit TortoiseSVN):
Rechtsklick in einem Explorer-Fenster

Die Url des Repositories ist: svn://server.tld/TestRepos
TestRepos ist der relative Teil von /pfad/zu/den/Repositories/TestRepos bezüglich /pfad/zu/den/Repositories/
Statt server.tld kann auch die IP-Adresse verwendet werden

Hier ein Screenshot von meinem Test-Repository: (Mein Server heißt famserv)

Wichtiger Hinweis
Bei mir kam die Benutzer/Passwort Abfrage n-mal. Erst als ich den Speichern-Haken verwendet habe konnte ich auf das Repository zugreifen!
Bei Fragen / Verbesserungsvorschlägen einfach einen Kommentar hinterlassen
Weitere Informationen auf tortoisesvn.net (TortoiseSVN) und subversion.apache.org (Subversion)
Repository Konfiguration
svnbook.red-bean.com/…/svn.serverconfig.svnserve.html
svnbook.red-bean.com/…/svn.serverconfig.pathbasedauthz.html
Andere Artikel zum Thema Subversion
Update 1
Paketname und Urls aktualisiert
4 Kommentare
Andere Links zu diesem Artikel
-
Debian+ Subversion +svnserver | berge.zeitgeist.ws — 19. Juni 2010 @ 10:10
RSS Feed für Kommentare zu diesem Artikel. TrackBack URI

Von Oani, 31. Juli 2009 @ 10:01
Danke für die Anleitung, heute abend gleich mal ausprobieren
Von Skysurfer, 11. Januar 2010 @ 21:41
Tolle Anleitung! Ich habe den SVN-Server auf meiner kleinen nslu2-Kiste installiert. Debian hatte ich schon vorher drauf und nutze den nslu2 als Fileserver. Ich musste den SVN-Server aber mit “apt-get install subversion” installieren.
Von Gabriel, 16. März 2010 @ 18:01
Danke für das HowTo und danke an Skysurfer für den Hinweis mit dem Paketnamen.