4 Nov 2009

svn over http

Author: Heiko | Filed under: Linux

Manchmal ist es nicht gewünscht auf oder gar möglich svn über ssh zu betreiben.
Für diesen Fall kann man svn-Repositories auch über das http/s-Protokoll ein und auschecken. Der Nachteil ist die Übertragungsgeschwindigkeit,
da der http-Header immer etwas an Performance raubt. Dies macht sich allerdings bei kleineren bis mittleren Repogrößen nicht bemerkbar.
Also erstes legt man auf dem Host die Apache-Konfiguration an

myhost:~>vim /etc/apache2/sites-available/svn

<VirtualHost *:80>
  ServerName svn.mydomain.com
  <Location /myproject>
   DAV svn
   SVNPath /var/svn/myproject
   AuthUserFile /etc/apache2/htpasswd
   AuthName SVN-Repos
   AuthType basic
   Require user myuser
  </Location>
  ErrorLog /var/log/apache2/svn.error.log
  CustomLog /var/log/apache2/svn.access.log combined
</VirtualHost>

Nun muss als nächstes die Seite und das benötigte Modul DAV aktivieren mit

myhost:~>a2ensite svn
myhost:~>a2enmod dav

Nun muss noch der Benutzer für das Repo mit einem entsprechenden Passwort angelegt werden

myhost:~>htpasswd -c /etc/apache2/htpasswd myuser

Achtung!!!
htpasswd -c erzeugt eine neue htpasswd-Datei. Wenn eine solche Datei schon existiert, sollte die Option -c weggelassen werden.

Als nächstes muss das SVN-Repo noch angelegt und mit den korrekten Rechten versehen werden.

myhost:~>mkdir /var/svn/myproject
myhost:~>svnadmin create /var/svn/myproject
myhost:~>chmod 770 -R /var/svn/myproject
myhost:~>chgrp www-data -R /var/svn/myproject

Nun kann wie gewohnt mit
svn co http://svn.mydomain.com/myproject
ausgecheckt werden. Es wird nach einem Benutzernamen und Passwort selbständig gefragt. Aber man kann dies auch direkt mit übergeben.

Tags: , , ,

Leave a Reply