Installation d’un serveur Subversion (SVN) sur Linux

Ayant réinstaller un serveur Subversion chez moi dernièrement, je vais vous partager la marche à suivre.

Mais tout d’abord, ça sert à quoi ?

Subversion, SVN de son petit nom est un gestionnaire de versions de projet. Il permet à tous les développeurs du projet de toujours avoir la dernière version, sans toutefois écraser le travail précédent du collègue. En effet, même si vous travaillez tous les 2 sur le même fichier, lors du dernier commit (qui consiste à enregistrer les modifications locales dans le dépôt SVN créant ainsi une nouvelle version), si SVN n’arrive pas à fusionner les 2 fichiers, il se mettra en conflit, obligeant le développeur à intervenir.

Passons aux choses sérieuses et à vos claviers dans un terminal…

L’installation de subversion est très simple :

$ apt-get install subversion

Nous allons créer le dossier /var/svn, dans lequel nous placerons tous les dépôts SVN de vos projets.

$ mkdir /var/svn

Afin de démarrer le service SVN, nous allons créer le script du service.

$ nano /etc/init.d/svnserve

Puis placer ce script qui permettra au système de démarrer le service SVN à chaque démarrage du serveur. La commande importante dans ce script est « svnserve -d -r /var/svn », qui démarre le service en deamon et qui indique la racine de vos dépôts.

#!/bin/sh

do_start () {
svnserve -d -r /var/svn --pid-file /var/run/svnserve.pid
}
do_stop () {
start-stop-daemon --stop --quiet --pidfile /var/run/svnserve.pid
}
case "$1" in
start)
do_start
;;
stop)
do_stop
exit $?
;;
restart)
do_stop
sleep 1s
do_start
;;
reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
*)
echo "Usage: $0 start|stop|restart" >&2
exit 3
;;
esac

Et ensuite d’indiquer au système de prendre en considération le script au démarrage.

$ chmod +x /etc/init.d/svnserve
$ update-rc.d svnserve defaults

Maintenant, nous allons créer votre premier dépôt SVN, cela se passe également dans un terminal.

$ svnadmin create /var/svn/votre_projet

Il vous faut configurer les droits d’accès à votre dépôt…

$ nano /var/svn/votre_projet/conf/svnserve.conf

Le fichier doit contenir :

[general]
anon-access = none
auth-access = write
password-db = passwd
realm = Nom de votre projet

…et de configurer les utilisateurs.

$ nano /var/svn/votre_projet/conf/passwd

Le fichier doit contenir :

[users]
dev1 = pass1
dev2 = pass2

Vous voilà avec SVN installé et paramétré, il ne vous reste plus qu’à faire chauffer votre clavier et de pisser des lignes de code 😉

Il est à noté que SVN propose de nombreuses autres possibilités, notamment sur la gestion des droits, mais aussi la possibilité de faire des commits hooks (des scripts pré et post commit).

Bon courage dans votre projet.

Comments are closed.