Was ist SVN ?
SVN bedeutet Subversion und gleicht Dokumente, Programme, Quellcodes uvm. nach ihren Versionen ab.
Wo wird Subversion (SVN) benutzt ?
Es wird sehr häufig in der Industrie aber auch bei Privatleuten eingesetzt, hier allerdings vermehrt von Informatikern in der Entwicklungsbranche.
Wie wird SVN eingebunden ?
SVN ist ein Modul / Plugin, welches in einen Webbrowser, wie Apache eingebunden wird. Unter Linux Debian heisst das Modul libapache2-svn. Dazu muss Subversion installiert sein, das Paket sollte Subversion heissen.
Konfiguration
Nach der Installation des Moduls sind in dem Verzeichnis /etc/mod-available 2 neue Dateien. Die eine dav_svn.conf und die andere dav_svn.load. Die .load Datei wird zum Laden des Moduls benötigt und .conf Datei sagt schon der Name, zum Konfigurieren. Allerdings müssen beide noch "enabled" werden.
Dies geschieht unter Linux mithilfe eines symbolischen Links.
cd /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/dav_svn.conf
ln -s /etc/apache2/mods-available/dav_svn.load
Module
Am Ende müssen folgende Module (neben den Standards) geladen sein.
dav_fs (load + conf)
dav.load
dav_lock.load
dav_svn (load + conf)
Spezielle Module, die geladen werden können, die nicht nur Apache verbessern.
alias.load
cache.load
file_cache.load
rewrite.load
ssl (load + conf)
WebSVN
Danach wird das Tool WebSVN installiert.
aptitude install websvn
Nach der Installation kommen Konfigurationsfenster wo die "Depots" sein sollen.
Anmerkung: In den Depots sind Daten für SVN gespeichert.
Der Standardpfad ist /var/lib/svn/. Dieser kann natürlich erweitert werden, z. B. in /var/lib/svn/depots (Allerdings sollten die Ordner existieren).
Bei einem Backup können bereits angelegte "Depots" einfach wieder in den bereits erstellten Ordner hineinkopiert werden. Es sollte nur dieselbe Konfiguration sein oder sie sollte zumindest angepasst werden.
Depots anlegen
Ein neues "Depots" anlegen
svncreate depot1
Das Depot "depot1" wird nun in /var/lib/svn oder einem anderen angeben Pfad gespeichert.
svn help
Mit diesem Befehl bekommt man alle nötigen Kommandos geliefert, falls nicht dann geht man auf die Homepage subversion.tigris.org
Konfigurationsbeispiele
Beispiel der dav_svn.conf Datei
<Location /svn/test>
# Uncomment this to enable the repository
DAV svn
# Set this to the path to your repository
SVNParentPath /var/lib/svn/test
# The following allows for basic http authentication. Basic
# authentication should not be considered secure for any
# particularly rigorous definiton of secure
# to create a passwd file
# # rm -f /etc/apache2/dav_svn.passwd
# # htpasswd2 -c /etc/apache2/dav_svn.passwd dwhedon
# New Password:
# Re-Type new Password:
# Adding password for user dwhedon
# #
# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn_test.passwd
Require valid-user
# Uncomment the following line to enable Authz Authentication
# AuthzSVNAccessFile /etc/apache2/dav_svn.authz
# The following 3 lines allow anonymous read, but make
# committers authenticate themselves
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# Require valid-user
# </LimitExcept>
</Location>
Beispiel fuer svn_web_conf.inc Datei (websvn)
<?php
// please edit /etc/websvn/config.inc
// or use dpkg-reconfigure websvn
$config->parentPath("/var/lib/svn/test/depot1");
$config->parentPath("/var/lib/svn/test/depot2");
$config->parentPath("/var/lib/svn/test/depot3");
$config->addRepository("depot1", "/var/lib/svn/test/depot1");
$config->addRepository("depot2", "/var/lib/svn/test/depot2");
$config->addRepository("depot3", "/var/lib/svn/test/depot3");
$config->setEnscriptPath("/usr/bin");
$config->setSedPath("/bin");
$config->useEnscript();
?>
Beispiel Apache Config unter /etc/websvn
# Configuration for websvn using php4
Alias /websvn /usr/share/websvn
<Directory /usr/share/websvn>
DirectoryIndex index.php
Options FollowSymLinks
Order allow,deny
Allow from all
<IfModule mod_php4.c>
php_flag magic_qotes_gpc Off
php_flag track_vars On
</IfModule>
</Directory>
Beispiel .HTACCESS Datei in /var/lib/svn/test
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn_test.passwd
Require valid-user
|