Subversion und Websvn einrichten
Subversion der sogenannte Urvater der Versionskontrolle. Um die Versionen im Browser bequem zu betrachten installieren wir auch gleich Websvn mit dazu.
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