====== 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 ===== http://www.yolinux.com/TUTORIALS/Subversion.html ==== Changer la localisation d'un copie de travail ==== svn switch --relocate svn://old_repo/trunk file:///new_repo/trunk