Moin Moin,
mal wieder was zu svn. Es geht darum wie ich einen svn Server - ich nenn das mal so - mit Apache2 einrichte. Der Witz dabei ist, dass der Apache2 so konfiguriert wird, dass wir sehr einfach per http Schnittstelle auf das Repository zugreifen können. Also Abfahrt.
1. svn installieren
Wie immer betrachte ich die Installation unter einem Debian Linux als User root. Die Installation ist denkbar einfach, wobei wir zum einen svn und zum anderen die Erweiterung für den Apache2 installieren müssen:
root@server: aptitude install subversion libapache2-svn
2. Modul dav_svn aktivieren
Jetzt aktivieren wir das Apache2 Modul dav_svn. Dazu wechseln wir in das Modul Verzeichnis des Apache und aktivieren es mit dem Apache Programm a2enmod:
root@server: cd /etc/apache2/mods-available/ root@server:/etc/apache2/mods-available# a2enmod dav_svn
3. Das Modul dav_svn konfigurieren
Nachdem alles installiert und aktiviert ist, geht’s jetzt an die Konfiguration. Dazu bearbeiten wir die Datei dav_svn.conf.
root@server: cd /etc/apache2/mods-enabled/ root@server:/etc/apache2/mods-enabled# vi dav_svn.conf
Der Inhalt der Datei sieht prinzipiell so aus. Ich lasse alle Kommentar weg und schreibe eigen dazu:
<Location /svn> # muss auskommentiert werden, damit das Repository aktiviert wird DAV svn # wir wollen mehrere Repositorys verwalten SVNParentPath /var/lib/svn # Die Authentifizierung erfolgt über die Datei dav_svn.passwd AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd # Wir wollen über mod_authz_svn die Rechte für den Zugriff auf die Repositorys steuern AuthzSVNAccessFile /etc/apache2/dav_svn.authz # Um die Repositorys auschecken zu können, muss ein gültiger User existieren Require valid-user </Location>
Ich habe in einem früheren Post schon erklärt, wie man mod_authz_svn einrichtet. Den Post findest Du hier.
Wenn wir alles erledigt haben starten wir den Webserver neu.
4. Einen User anlegen
Einen user legen wir an, indem wir diesen mit dem Program htpasswd in die Datei dav_svn.passwd eintragen. Dazu wechseln wir zuerst ins entsprechende Verzeichnis:
root@server: cd /etc/apache2/ <em>wenn die Datei noch nicht existiert</em> root@server:/etc/apache2/htpasswd -c dav_svn.passwd root@server:/etc/apache2# htpasswd dav_svn.passwd [user]
-> Dann zweimal Passwort eingeben
5. Ein Repository erstellen
So, alles eingestellt. Jetzt erstellen wir ein Repository. Dazu wechseln wir in das Verzeichnis, in welchem die Repository’s liegen sollen und nutzen das Program svnadmin wiederum als User root:
root@server: cd /var/lib/svn root@server:/var/lib/svn# svnadmin create repositroy_neu
Damit haben wir ein Repository namens repository_neu erstellt. Aber Achtung. Damit das Repository über das web betrachtet werden kann, müssen wir die Rechte ändern. Ich gehe davon aus, dass der Apache2 User und die Group www-data heisst:
root@server:/var/lib/svn# chown -R www-data repository_neu/
Testen wir das Ganze und geben wir die URL des Repository’s im Browser ein:
http://www.server.de/svn/repository_neu
Wir müssen eine http Authentifizerung machen. Und danach sehen wir so was wie das hier:
Damit haben wir’s auch schon geschafft.
6. Ein Projekt auschecken
Hier noch ganz kurz, wie man ein svn Repository auf der Shell auscheckt:
user@server: cd /tmp user@server:/tmp/ svn co htp://www.server.de/svn/repository_neu -username [user] Anmeldebereich: http://www.server.de:80 Subversion Repository Passwort für »[user]«: ********* Ausgecheckt, Revision 0. user@root:/tmp/
Für Hilfe zu svn einfach svn help oder svn help [Befehl] eingeben.
Dann viel Spass
Andreas