Migration de CVS vers SubVersion
Par dlalleme, vendredi 1 septembre 2006 à 17:34 :: SME server :: #16 :: rss
Pour tous ceux qui font du développement et qui gèrent le "versionning" de leur application et qui, en plus, ont le bonheur d'utiliser une distribution SME SERVER; voici une petite explication sur ce qu'il faut faire ....
Le contexte est le suivant :
- Le référenciel CVS est sur un serveur installé avec SME 6.0 et appelé sme6.
- Le référentiel SVN (SubVersion) est sur un autre serveur installé avec SME 7.0 (puisque CVS n'est pas dans cette version) appelé sme7.
- Deux modules (projets) sont référencés dans CVS => projetA et projetB.
- L'application TortoiseSVN sera utilisée au lieu de TortoiseCVS.
- La condition finale est que l'on puisse utiliser les mêmes outils qu'auparavent dans le même contexte; donc même arborescence de travail.
La migration doit reprendre l'historique et les différentes versions de tous les fichiers dans mes modules. Pour cela il faut utiliser un outil appelé cvs2svn. Vous le trouverez à l'adresse suivante cvs2svn.
Toutes les opérations ont été effectuées dans le répertoire /tmp/migcvs, créé pour cette migration, sur le serveur sme7 en tant que root.
Aller dans le répertoire /tmp et télécharger la dernière version de cvs2svn, la décompresser et exécuter la commande make install.
Avant d'utiliser l'outil de migration, il faut deux préalables :
1.L'installation et la configuration de Subversion sur le serveur sme7.
Le plus simple pour faire cette installation il suffit d'aller sur le site de Landry à l'adresse suivante HOWTO configure a SubVersion service on SME Server et de se laisser guider.
2.L'installation de RCS utile pour faire la migration
Si cette application n'est pas installée sur votre serveur; la migration sera impossible. Effectuer les commandes suivantes afin de l'installer
$wget http://centos.osmirror.nl/4.3/os/i386/CentOS/RPMS/rcs-5.7-26.i386.rpm
$rpm -ivh rcs-5.7-26.i386.rpm
Voilà , vous pouvez effectuer maintenant la migration proprement dite ....
La solution utilisée est basée sur la FAQ sur le site de cvs2svn, FAQ cvs2svn, dont voici un petit résumé en français ....
- Il faut d'abord s'assurer que les modules CVS sont à jour et verrouillés. La migration s'effectuera bien entendu avec une copie de vos modules que l'on stockera dans le répertoire /tmp/migcvs/oldcvsrepo.
- La migration s'effectuera module par module sous la forme de fichier dump.
On y va !!!
#Copie des modules CVS dans un répertoire temporaire
#Ceci est absoluement nécessaire, ne pas utiliser le référentiel (module) de production
$ cd /tmp/migcvs
$ mkdir newcvsrepo
$ mkdir newcvsrepo/CVSROOT # utilisé par cvs2svn
$ cp -r /tmp/migcvs/oldcvsrepo/projetA newcvsrepo # Le module projetA est, bien entendu, issu du serveur sme6 avant la copie
# Création du fichier dump contenant les référentiel CVS
$ mkdir svndump; cd svndump
$ cvs2svn --dump-only /tmp/migcvs/newcvsrepo/projetA
Ensuite il suffit de charger le fichier dump dans le référentiel Subversion de la manière suivante :
# Créer le répertoire pour le projet
$ svn mkdir file:///home/svn/projetA -m "Ajout répertoire pour projetA."
# Utilisation de "svnadmin load" pour charger le dumpfile.
$ cd /tmp/migcvs/svndump
$ svnadmin --parent-dir projetA load /home/svn < cvs2svn-dump
L'opération peut maintenant être effectuée pour le projetB. Les répertoires n'ont plus besoin d'être créés et assurez-vous de vider les répertoires avant de recommencer !
Vos référentiels sont maintenant prêts à être utilisés à l'aide de tout outil gérant SubVersion.
Pour l'utilisation de TortoiseSVN, j'utilise le protocole svn:/ après avoir lancé le démon svnserver. Pour cela, il faut au préalable configurer correctement les fichiers situés dans le répertoire /home/svn/conf.
Plusieurs documents, d'ailleurs très bons, existent en français en version PDF. Vous les trouverez facilement en cherchant avec un moteur de recherche en utilisant les mots-clefs "tortoisesvn pdf".
BONNE UTILISATION !
Commentaires
1. Le mardi 5 décembre 2006 à 12:00, par zadmalck
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.