Publié le: 2011-06-06

SVN Server

Subversion est un gestionnaire de versions de fichiers. Il permet à des développeurs, mais aussi des administrateurs réseaux & systèmes de garder une trace des modifications effectuées sur certains fichiers, ou l’ensemble d’un projet de développement, et ainsi de pouvoir revenir en arrière, observer les modifications ou encore créer une branche d’un projet.

Nous allons voir comment mettre en place un serveur subversion.

Installation

Installons tout d’abord le paquet subversion.

apt-get install subversion

Configuration

L’installation de subversion est simple, néanmoins la configuration du serveur doit être faite de A à Z. Nous allons tout d’abord créer un répertoire pour les repositories que vous voudriez héberger. Le dossier /var semble approprié.

mkdir /var/svn

La deuxième partie consiste à créer un service pour le serveur subversion. Créez le fichier /etc/init.d/subversion-server et mettez le contenu suivant à l’intérieur de celui-ci

#!/bin/sh
do_start () {
         echo "Start SVN server..."
         svnserve -d -r /var/svn
         echo "SVN Server started Successfuly"
}

do_stop () {
         echo "Killing SVN Server..."
         killall svnserve
         echo "SVN Server Stopped."
}

case "$1" in
   start)
         do_start
         ;;
   stop)
         do_stop
         ;;
   restart|reload|force-reload)
         echo "Error: argument '$1' not supported" >&2
         exit 3
         ;;
   *)
         echo "Usage: $0 start" >&2
         exit 3
         ;;
esac

Puis rendez le exécutable:

chmod ug+x /etc/init.d/subversion-server

Maintenant nous allons installer le service afin qu’il se lance au démarrage.

update-rc.d subversion-server defaults

Maintenant que notre service est prêt, attelons nous à la configuration de ce qu’il peut offrir. Créons tout d’abord un repo

svnadmin create /var/svn/repo

Puis éditez le fichier de configuration dans /var/svn/repo/conf/svnserve.conf

Pour désactiver les accès anonymes, éditez la ligne anon-access et positionnez la à none.

anon-access = none

Décommentez la ligne realm et mettez le nom de votre société par exemple, qui identifiera le SVN.

realm = UNIX Experience

Pour la gestion des utilisateurs, utilisez la ligne password-db, et mettez le chemin relatif du fichier de base de données, par exemple:

password-db = svn-pwd

Ce fichier se gère de façon très simple (et peu sécurisée…) de la facon suivante :

user1 = passworduser1
user2 = passworduser2

Redémarrez ensuite le service pour prendre la modification en compte.

service subversion-server restart

Pour accéder au repository, vous pouvez utiliser la commande suivante sur un client

svn co svn://votreserveur/repo

et entrez vos identifiants.

Vous pouvez également sécuriser la connexion en utilisant une connexion par tunnel SSH, implémentée dans SVN. Pour se faire, tapez ceci:

svn co svn+ssh://votreserver/var/svn/repo

et entrez vos identifiants SSH machine.

Conclusion

Vous maîtrisez désormais les bases d’un serveur subversion.

Il est également possible d’utiliser Apache comme service SVN over HTTP, avec mod_dav_svn.