Table des matières
SVN
Migration d'un dépôt vers un nouveau serveur
Etape 1 : dump de l'existant
sur l'ancien serveur
svnadmin dump path_to_repo > svn_repo_scilab
Etape 2 : Création du dépôt
sur le nouveau serveur
svnadmin create char_lpc2103
Etape 3 : Chargement du fichier dump
svnadmin load /share/MD0_DATA/svn/scilab/ < /share/MD0_DATA/homes/admin/svn_repo_scilab
Relocalisation d'une copie de travail
svn relocate TO-URL
Installation
Serveur SVN seul
Tout d'abord, créez un dépôt (nous considèrerons le repertoire projet1). sudo -u svn svnadmin create /home/svn/projet1 Création des utilisateurs SVN
Vous pouvez ensuite éditer les fichiers de configuration (pour choisir mot de passe et autres) dans le répertoire créé (nous considèrerons le dépôt projet1). Dans le répertoire /home/svn/projet1/conf/ il faut éditer le fichier svnserve.conf avec au minimum :
[general] # Les utilisateurs non auth : none/read/write anon-access = none # Les utilisateurs auth : none/read/write auth-access = write # le fichier de password password-db = passwd # Cette option spécifie l'authentification du référentiel. # Si deux repo ont les mêmes référentiels d'authentification, # ils devraient avoir le même mot de passe de base de données, et vice versa. # Le domaine par défaut est le référentiel uuid. realm = projet1
il faut éditer le fichier passwd pour qu'il ressemble à :
[users] # nom = mot de passe joeuser = joepassword jayrandom = randomjay
Lancer le serveur
Pour lancer le serveur, il suffit d'exécuter : sudo svnserve -d -r /home/svn Il est possible (et conseillé) d'automatiser le lancement de SVN afin de ne pas avoir à taper cette commande à chaque démarrage de la machine. Voir plus bas. Le port par défaut écouté par svnserve est 3690. Accès
Le dépôt créé est désormais accessible, via les commandes SVN de base, à l'adresse :
svn://mon_serveur/projet1
Automatiser le lancement de SVN
Jusqu'ici, le serveur SVN est lancé avec votre utilisateur. Ce qui implique que le serveur a les mêmes droits que vous. Il est donc recommandé de créer un utilisateur pour lancer le serveur et le définir comme propriétaire du dépôt (nous prendrons ici l'utilisateur svn) :
sudo addgroup svn --system sudo adduser svn --system --home /home/svn --no-create-home --ingroup svn sudo chown -R svn: /home/svn
Si un nouveau repos est créé alors nous conseillons d'utiliser plutôt la commande :
sudo -u svn svnadmin create /home/svn/votre_repos
Maintenant que nous avons un utilisateur spécifique, pour exécuter SVN au démarrage, il faut créer un script exécutable /etc/init.d/svnserve contenant le code :
#!/bin/sh set -e if [ -x /usr/bin/svnserve ] ; then HAVE_SVNSERVE=1 else echo "Svnserve not installed." exit 0 fi . /lib/lsb/init-functions case "$1" in start) log_action_begin_msg "Starting SVN server" /sbin/start-stop-daemon --start --chuid svn:svn --exec /usr/bin/svnserve -- -d -r /home/svn log_action_end_msg $? ;; stop) log_action_begin_msg "Stopping SVN server" /sbin/start-stop-daemon --stop --exec /usr/bin/svnserve log_action_end_msg $? ;; force-reload|restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/svnserve {start|stop|restart|force-reload}" exit 1 ;; esac exit 0
ne pas oublier de rendre exécutable le script :
sudo chmod +x /etc/init.d/svnserve
Vous pouvez alors respectivement le démarrer, redémarrer et arrêter à l'aide des commandes suivantes :
sudo /etc/init.d/svnserve start sudo /etc/init.d/svnserve restart sudo /etc/init.d/svnserve stop
Pour ajouter le serveur SVN au démarrage de la machine :
sudo update-rc.d svnserve defaults
Note : les LSBize initScript ont changé de format; vous pouvez avoir un message d'avertissement en retour.
Utilisation
Changer la localisation d'un copie de travail
svn switch --relocate svn://old_repo/trunk file:///new_repo/trunk
