-= LiflForge =-

Version 7 (modified by tracmin, 11 years ago) (diff)

Migration depuis un dépôt CVS

Il est possible de transférer un dépôt CVS hébergé par le LIFL vers un dépot SVN de LiflForge avec conservation de l'historique des modifications. Les différences de concepts entre ces 2 systèmes rendent cependant impossible une migration à l'identique :

  • CVS gère un numéro de version par fichier. Lors d'un commit, le numéro de version de chaque fichier modifié est incrémenté. Le numéro de version des fichiers non modifiés n'est pas incrémenté. Le message de log est associé à chacun des fichiers modifiés.
  • SVN regroupe au sein d'une même révision l'ensemble des modifications apportées (notion de Changeset). Lors d'un commit, le numéro de révision de l'ensemble du dépôt est modifié. Le message de log est associé au changeset.

Il existe aussi une grande différence au niveau de la gestion des tags et des branches, mais son impact sur la migration est moins important.

Lors d'une migration de CVS vers SVN, il est donc nécessaire de retrouver les fichiers qui ont été modifiés ensemble (c'est-à-dire lors d'un même commit) afin de les regrouper au sein d'un même changeset SVN (i.e. au sein d'une même révision).

Parmi les outils que nous avons testé, cvs2svn semble être celui qui réussi le mieux cette migration. Cet outil nécessite cependant d'avoir un accés direct aux répertoires contenant les dépots CVS et SVN. Pour des migrations simples (à l'identique), vous pouvez en faire la demande aux administrateurs système du LIFL. Pour des migrations plus complexes, nous vous fournirons un dump CVS à partir duquel vous créerez un dump SVN que nous chargerons ensuite sur LiflForge.

Utilisation de cvs2svn

cvs2svn possédant de nombreuses options (convertion partielle, , veuillez consulter la documentation de cvs2svn afin de définir le type de migration que vous désirez effectuer.

Example d'utilisation simple :

  • placer le dépot CVS dans un répertoire 'cvs_repos'
  • choisir le module CVS à convertir (appelé ici 'cvs_module')
  • commande à utiliser : cvs2svn —dumpfile=./svn_repos.dump —fallback-encoding=latin_1 ./cvs_repos/cvs_module