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.