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.
Leave a Reply