Close

Préparer

La première étape de migration d'un projet utilisant SVN vers Git consiste à préparer l'ordinateur de la personne responsable de la migration. Durant cette phase, il vous faudra télécharger un script, installer un système de fichier sensible à la casse (si nécessaire), puis mapper les informations des auteurs de SVN vers Git.

Les étapes suivantes doivent être effectuées en local sur l'ordinateur de la personne responsable de la migration.


Télécharger le script de migration


Git dispose de la plupart des outils nécessaires à l'importation d'un dépôt SVN. Cependant, Atlassian a comblé quelques lacunes en créant un fichier JAR très pratique. Ce fichier fait partie intégrante du processus de migration. Veillez donc à télécharger svn-migration-scripts.jar à partir de votre compte Atlassian Bitbucket. En principe, vous l'avez sauvegardé dans votre répertoire de base. Avertissement : pour la migration SVN, vous avez besoin d'un système sensible à la casse, qui ne fonctionne pas sur NTFS. Nous suggérons une utilisation sur une machine Linux.

Après l'avoir téléchargé, vérifiez les scripts pour vous assurer que vous disposez de Java Runtime Environment, de Git, de Subversion et de l'utilitaire git-svn. Ouvrez une invite de commande et exécutez la commande suivante :

java -jar ~/svn-migration-scripts.jar verify

Un message d'erreur s'affiche dans la console si vous ne disposez pas des programmes nécessaires à la migration. Installez tout logiciel manquant avant de poursuivre.

Bases de données
Ressource connexe

Comment déplacer un dépôt Git complet

Logo Bitbucket
DÉCOUVRIR LA SOLUTION

Découvrir Git avec Bitbucket Cloud

Si vous recevez un message vous avertissant que la version ne peut être définie, exécutez export LANG=C (*nix) ou SET LANG=C (Windows) et réessayez.

Si vous effectuez la migration sur un ordinateur exécutant OS X, vous verrez également apparaître l'avertissement suivant :

You appear to be running on a case-insensitive file-system. This is unsupported, and can result in data loss.

Nous nous pencherons sur ce sujet dans la section suivante.

Monter une image disque sensible à la casse


La migration vers Git doit être effectuée avec un système de fichiers sensible à la casse pour éviter la corruption du dépôt. C'est un problème si vous effectuez la migration sur un ordinateur OS X, car le système de fichiers n'est pas sensible à la casse.

Si vous utilisez un autre système d'exploitation qu'OS X, il vous suffit de créer un répertoire sur votre machine locale, intitulé ~/GitMigration. C'est à cet emplacement que vous devez effectuer la conversion. Ensuite, passez directement à la section suivante.

Migration Git : monter l'image du disque

Si vous utilisez OS X, montez une image de disque sensible à la casse à l'aide du script create-disk-image contenu dans svn-migration-scripts.jar. Deux paramètres sont essentiels :

1. The size of the disk image to create in gigabytes. You can use any size you like, as long as it’s bigger than the SVN repository that you’re trying to migrate.

2. The name of the disk image. This guide uses GitMigration for this value.

Par exemple, la commande suivante crée une image de disque de 5 Go nommée GitMigration :

java -jar ~/svn-migration-scripts.jar create-disk-image 5 GitMigration

Comme l'image disque a été montée dans votre répertoire de base, un répertoire nommé ~/GitMigration devrait maintenant apparaître sur votre machine locale. Ce répertoire sert de système de fichiers virtuel sensible à la casse. Vous y stockerez le dépôt Git converti.

Extraire les informations de l'auteur


SVN enregistre uniquement le nom d'utilisateur de l'auteur de chaque révision. Git, en revanche, stocke le nom complet et l'adresse e-mail de l'auteur. Autrement dit, vous devez créer un fichier texte qui mappe les noms d'utilisateur SVN vers leur equivalent Git.

Migration Git : mapper des noms d'utilisateur SVN à des noms d'utilisateur Git

Exécutez les commandes suivantes pour générer automatiquement ce fichier texte :

cd ~/GitMigration 
java -jar ~/svn-migration-scripts.jar authors <svn_repo_uri> > authors.txt

Veillez à remplacer <svn_repo_uri> par l'URI du dépôt SVN que vous souhaitez migrer. Par exemple, si votre dépôt est stocké sur https://svn.example.com, exécutez la commande suivante :

java -jar ~/svn-migration-scripts.jar authors https://svn.example.com > authors.txt

Ceci crée un fichier texte nommé authors.txt qui contient le nom d'utilisateur de chaque auteur dans le référentiel SVN ainsi que le nom généré et l'adresse email. Ceci crée un fichier texte nommé authors.txt qui contient le nom d'utilisateur de chaque auteur dans le référentiel SVN ainsi que le nom généré et l'adresse email. Ceci crée un fichier texte nommé authors.txt qui contient le nom d'utilisateur de chaque auteur dans le référentiel SVN ainsi que le nom généré et l'adresse email. Cela devrait ressembler à quelque chose comme :

j.doe = j.doe <j.doe@mycompany.com> 
m.smith = m.smith <m.smith@mycompany.com>

Remplacez la portion à droite du signe égal par le nom complet et l'adresse email de l'utilisateur correspondant. Par exemple, vous pourriez changer les auteurs ci-dessus en :

j.doe = John Doe <john.doe@atlassian.com>
m.smith = Mary Smith <mary.smith@atlassian.com>

Résumé


Maintenant que vous disposez de vos scripts de migration, l'image disque (OS X uniquement), et des informations sur les auteurs, vous êtes prêts à importer votre historique SVN dans un nouveau dépôt Git. La prochaine étape explique comment fonctionne cette conversion.


Partager cet article
Thème suivant

Lectures recommandées

Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.

Des personnes qui collaborent à l'aide d'un mur rempli d'outils

Le blog Bitbucket

Illustration DevOps

Parcours de formation DevOps

Démos Des démos avec des partenaires d'Atlassian

Fonctionnement de Bitbucket Cloud avec Atlassian Open DevOps

Inscrivez-vous à notre newsletter DevOps

Thank you for signing up