====== 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