Lors d’un changement de serveur, il peut être nécessaire de transférer également le contenu du dépot subversion vers le nouveau serveur. Nous allons montrer ici comment déplacer notre dépôt domaine.tld vers le nouveau serveur créé ici.
Avant toute chose, si vous avez installé le serveur svn comme indiqué sur ce site, il est préférable de couper l’accès afin de ne pas se retrouver avec des commits oubliés lors de la sauvegarde. Pour ce faire, on désactive le virtualhost Apache dédié :
sudo a2dissite svn sudo /etc/init.d/apache2 reload
Sauvegarde du serveur original
Nous allons tout d’abord faire une sauvegarde du serveur source dans un fichier de dump "domaine.tld.dump" de notre répertoire home :
cd ~ mkdir -p domaine.tld-svn sudo svnadmin dump /var/svn/domaine.tld > domaine.tld-svn/domaine.tld.dmp
Dans ce fichier seront sauvegardées chaque révision du serveur subversion.
Il est également nécessaire de sauvegarder le contenu de votre instance trac (Wiki, tickets etc...) par la commande :
sudo trac-admin /var/trac/domaine.tld hotcopy domaine.tld-svn/domaine.tld.trac
Cette sauvegarde est une simple copie du répertoire de l’instance.
Il est dorénavant nécessaire de copier ces fichiers sur le nouveau serveur, sur lequel vous avez bien entendu un accès ssh. Nous allons utiliser la commande scp pour ce faire :
sudo scp -r -p domaine.tld-svn/ user_distant@serveur_distant:domaine.tld-svn/
Quelques explications sur cette commande, on copie de manière sécurisée à travers le protocole ssh (en utilisant scp) le répertoire "domaine.tld-svn" sur le serveur dont l’adresse est "serveur_distant" (nous aurions pu utiliser ici une IP) et l’utilisateur dont on a les identifiants est "user_distant", puis on écrit ce répertoire récursivement (option "p") en gardant les attributs de fichiers (droits et dates de modification : option "p") dans le répertoire home en le nommant "domaine.tld-svn" (correspond à la partie de la commande ":domaine.tld-svn/", nous aurions pu utiliser un chemin relatif depuis ce répertoire home, ou un répertoire absolu également si l’utilisateur utilisé le permet).
Ainsi, après connexion sur le nouveau serveur, en listant le contenu de son répertoire home, l’utilisateur "user_distant" devrait avoir accès à ce répertoire et les fichiers qu’il contient.
Restauration sur le nouveau serveur
Sur le nouveau serveur, nous allons créer le même serveur que sur le précédent. On refera donc les étapes de création du dépôt et celle de configuration apache à l’identique.
On devrait alors avoir notre dépôt "domaine.tld" disponible mais vide. On importe donc ensuite le contenu de notre sauvegarde par la commande :
#On se replace dans notre home puisque le fichier de sauvegarde y a été copié cd ~ #Puis on importe son contenu sudo svnadmin load /var/svn/domaine.tld/ < domaine.tld-svn/domaine.tld.dmp #Puis on redonne les bons droits chown -Rvf www-data:www-data /var/svn/domaine.tld/
On devrait ainsi voir s’ajouter chaque ancien commit à notre nouveau dépot.
On réinstalle une instance trac également similaire à celle de l’ancien serveur. Puis on recopie les anciennes données :
#On copie le contenu du répertoire récursivement à la place de celui créé lors de l'initialisation de l'instance cp -Rvf domaine.tld-svn/domaine.tld.trac/* /var/trac/domaine.tld/ #Puis on redonne les bons droits chown -Rvf www-data:www-data /var/trac/domaine.tld #Enfin, on upgrade et resynchronise trac avec le dépot trac-admin /var/trac/domaine.tld upgrade trac-admin /var/trac/domaine.tld wiki upgrade trac-admin /var/trac/domaine.tld/ repository resync '*'
Vous pouvez également récupérer ensuite les anciens fichiers d’autorisations en les recopiant ou les déplaçant vers leurs emplacements respectifs sur le nouveau serveur. Ces fichiers sont (dans notre cas) :
/var/svn/domaine.tld/conf/authz /var/svn/domaine.tld/conf/passwd
Il en va de même de tout autre fichier de configuration modifié.
On devrait dorénavant avoir retrouvé un environnement de versionning similaire à celui de l’ancien serveur.
# Le 3 octobre 2011 à 21:32, par marcimat En réponse à : Déplacer un serveur svn sur un autre serveur
À partir de trac 0.12 la commande resync est déplacée et s’utilise par exemple comme suit :
trac-admin /var/trac/arscenic.org/ repository resync '*'
Par ailleurs, si on migre d’un trac 0.11 à 0.12, il y a une procédure de migration à suivre, détaillée ici : http://trac.edgewall.org/wiki/TracUpgrade
Ce qui m’a fait faire l’équivalent, après la copie de mes anciens répertoires trac à leur nouveaux emplacement, de :
Télécharger
Répondre à ce message
# Le 26 avril 2012 à 19:45, par Quentin Drouet En réponse à : Déplacer un serveur svn sur un autre serveur
Désolé je n’avais pas vu ce message et j’ai dû justement faire la manip aujourd’hui... la documentation est mise à jour
Merci
Répondre à ce message
# Le 20 juillet 2012 à 09:53 En réponse à : Déplacer un serveur svn sur un autre serveur
Hey,
I’ve a question really simple. My /var partition is full and i want to move the /var/svn folder to the /home partition.
How can i do that. I’ve tried
"mv /var/svn /home/svn" and next to setup the apache configuration to point the new folder, but it doesnt work. How can I do ?
Hope readding from u soon,
Gabriel
My email to answer : gabriel@wetrust.fr
Répondre à ce message
# Le 20 juillet 2012 à 10:10 En réponse à : Déplacer un serveur svn sur un autre serveur
Pardon, j’ai écris le mail en anglais... Si vous pouviez me répondre en fr ... :))))))
gabriel@wetrust.fr
gab_jad86@hotmail.com
skype : Gabriel JADEAU (seto_o)
Merci beaucoup, ca me bloque vraiment ...
Répondre à ce message