Subversion und Websvn einrichten

Subversion- und Apache-Paket installieren

sudo apt-get update
sudo apt-get install subversion
sudo apt-get install libapache2-svn 

Repository und 2 Testprojekte anlegen

mkdir /var/svn-repos/
svnadmin create --fs-type fsfs /var/svn-repos/project_zen
svnadmin create --fs-type fsfs /var/svn-repos/project_wombat

Subversion-Gruppe erstellen

sudo groupadd subversion

Benutzer zur Gruppe hinzufügen

sudo addgroup svnuser subversion

Rechte für Repository vergeben:

sudo chown -R www-data:subversion /var/svn-repos/*
sudo chmod -R 770 /var/svn-repos/* 

SSH-Schlüssel erstellen:

mkdir ~/.ssh/
cd ~/.ssh/
ssh-keygen -t dsa
cat ~/.ssh/id_dsa.pub | ssh svnuser@192.168.x.x "cat - >> ~/.ssh/authorized_keys"

svnuser Benutzer einloggen und SSH-Keys erstellen:

mkdir ~/.ssh/
cd ~/.ssh/
ssh-keygen -t dsa
cat ~/.ssh/id_dsa.pub | ssh svnuser@192.168.x.x "cat - >> ~/.ssh/authorized_keys"

Wieder als User mit root-Rechten einloggen:

ssh-agent in der subshell öffnen (Hintergründe und Quelle: http://die-klapsmuehle.org/2007/03/07/das-kleine-ssh-tutorial-teil-2-ssh-agent-starten/)

ssh-agent /bin/bash

Als svnuser Benutzer einloggen:

ssh svnuser@192.168.x.x

SVN Testen:

mkdir ~/TEMP/
echo "testing svn" > ~/TEMP/testing.txt
svn import -m "importing test over ssh+svn" ~/TEMP/ svn+ssh://192.168.x.x/var/svn-repos/project_zen/trunk
svn co svn+ssh://192.168.x.x/var/svn-repos/project_zen/trunk testcheckout 

SVN-Repository überprüfen ob die Testdatei eingecheckt wurde:

svnlook tree /var/svn-repos/project_zen/ 

Das Ergebnis sollte folgendermaßen aussehen:

svnuser@192.168.x.x:~$ svnlook tree /var/svn-repos/project_zen/
/
 trunk/
  testing.txt

WebDAV einrichten

Apache-Module aktivieren (falls nicht schon geschehen)

sudo a2enmod dav
sudo a2enmod dav_svn 

Zugriffsschutz erstellen:

htpasswd /etc/apache2/dav_svn.passwd svnuser
# Weitere Nutzer hinzufügen
htpasswd /etc/apache2/dav_svn.passwd svnuser2

DAV-Konfiguration anpassen:

sudo cp /etc/apache2/mods-available/dav_svn.conf /etc/apache2/mods-available/dav_svn.conf-backup
sudo vi /etc/apache2/mods-available/dav_svn.conf

Mit folgenden Inhalt:

DAV svn
SVNPath /var/svn-repos/project_zen
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL

DAV svn
SVNPath /var/svn-repos/project_wombat
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL

Danach einmal Testen

/etc/init.d/apache2 restart
svn import -m "testing over https" https://192.168.x.x/svn_wombat ~/TEMP/ 

Websvn installieren (Bei der Konfiguration einfach mit ENTER alles bestätigen)

apt-get install enscript
apt-get install websvn