Subversion ist eine Open-Source-Software zur zentralen Versionsverwaltung von Dateien und Verzeichnissen. In der Regel kommt diese Technik in Programmierumgebungen zum Einsatz, bei denen mehrere Entwickler an einem oder mehreren Programmen arbeiten. Allerdings kann man Subversion z.B. auch für Backup-Zwecke benutzen. In dieser Anleitung wird erklärt, wie man einen Subversion-Server unter Ubuntu einrichtet (getestet an Ubuntu 9.04).
Die Installation ist schnell gemacht. Man muss lediglich den Befehl
sudo aptitude install subversion
ausführen und schon wird alles nötige für einen Subversion-Server installiert.
Nun erstellst den Ordner /var/svn, in dem später die Subversion-Repositories angelegt werden
sudo mkdir /var/svn
Danach wechselst du mit dem Befehl
cd /var/svn
in das soeben angelegte Verzeichnis.
Kommen wir zum Einrichten von Repositories. In diesem Beispiel lege ich das Repository test an. Sinnvollerweise sollte ein produktives Repositorie aber einen aussagekräftigen Namen haben. Zunächst legst du das Repository mit dem Befehl
sudo svnadmin create test
an. Nun muss geregelt werden, wer auf das Repository Zugriff haben soll. Dazu editierst du nun die Datei /var/svn/test/conf/svnserve.conf:
sudo nano /var/svn/test/conf/svnserve.conf
Im oberen Teil der Konfiguration findest du die Zeilen
# anon-access = read
# auth-access = write
Zunächst entfernen wir die Kommentierung, entfernen also die Raute-Zeichen (#). Der Eintrag anon-access regelt den Zugriff für Personen, die ohne Benutzername und Passwort auf das Repository zugreifen wollen. Der Eintrag auth-access hingegen regelt den Zugriff für authentifizierte Personen. Ich empfehle hier die folgende Kombination einzutragen:
anon-access = none
auth-access = write
Als Zugriffsrechte stehen die Schlüsselwörter none (kein Zugriff), read (lesender Zugriff) und write (lesender und schreibender Zugriff) zur Verfügung. Für den privaten bzw. nicht professionellen Einsatz benötigt man keine komplexen Authentifizierungs-Methoden, deshalb nutzen wir hier die Datei passwd für die Subversion-Authentifizierung. Dazu muss zunächst die Kommentierung der Zeile
# password-db = passwd
entfernt werden, indem man das Raute-Zeichen (#) am Anfang der Zeile entfernt. Speichere die Änderungen nun ab. Die berechtigten Benutzer kann man nun in der Datei /var/svn/test/conf/passwd einrichten. Öffne die Datei dazu wieder mit nano:
sudo nano /var/svn/test/conf
In der Datei steht schon beschrieben, wie man Benutzer anlegen muss. Zunächst lösche die beiden auskommentierten Benutzer aus der Konfiguration. Dann kannst du deine individuellen Benutzer anlegen. Dazu musst du pro Benutzer eine Zeile hinzufügen, die wie folgt aufgebaut ist
<Benutzername> = <Passwort>
Speichere die Änderungen nun ab.
Unter Ubuntu muss man noch ein bisschen nachhelfen, damit beim Systemstart auch der Subversion-Dienst mitgestartet wird. Dazu habe ich ein Script geschrieben, welches eine Methode zum Starten, eine Methode zum Stoppen und eine Methode zum Neustarten des Subversion-Servers bereitstellt. Öffne dazu nun die Datei /etc/init.d/subversion mit einem Editor:
sudo nano /etc/init.d/subversion
In diese Datei kopierst du nun folgenden Text:
#!/bin/bash
case "$1" in
start)
svnserve -d -r /var/svn
;;
stop)
killall svnserve
;;
restart)
$0 stop
sleep 3
$0 start
;;
esac
Speichere die Änderungen. Damit man das Script auch ausführen kann, muss folgender Befehl ausgeführt werden:
sudo chmod +x /etc/init.d/subversion
Nun muss nurnoch das Script in den Systemstart aufgenommen werden. Das erfolgt mit dem Befehl
sudo update-rc.d subversion defaults
Der Server wird nun automatisch beim Systemstart mitgestartet. Du hast ebenfalls die Möglichkeit, den Server manuell zu Steuern. Mit dem Befehl
/etc/init.d/subversion start
kannst du den Server nun starten. Mit dem Befehl
/etc/init.d/subversion stop
stopp man den Server. Einen Neustart des Servers erreicht man mit Hilfe des Befehls
/etc/init.d/subversion restart
Der Server ist nun fertig installiert und eingerichtet. Du kannst so viele Repositories anlegen, wie du willst. Um die Repositories nutzen zu können, benötigst du ein entsprechendes Programm, wie z.B. TortoiseSVN unter Windows. Auch Programmierumgebungen wie z.B. Eclipse bieten Möglichkeiten, um die Quellcodes mit dem Repository abzugleichen. Um Zugriff auf das hier angelegte test-Repository zu bekommen gibt man beim Client die URL
svn://<Host>/test
an. <Host> muss hierbei durch die IP-Adresse oder den Hostname des Servers, auf dem Subversion läuft, ersetzt werden.