Convertir un depôt SVN en un depôt git

De wikiRcln
Aller à : navigation, rechercher

Il s'agit de convertir votre répertoire local sous svn en un répertoire local sous git (un dépôt local) avec une copie dans un de vos dépôts git du labo.

Étape 0: Préconditions sur votre machine de travail :

  • Svn, git et ruby installées.
  • Accès sudo.

Préconditions dans l'intranet du LIPN : avoir un dépôt Git.

Étape 1: Installation de svn2git

Svn2git est l'outil qui permet la conversion de copies locales svn en dépôts git. Voici la commande d'installation sur Ubuntu:

$ sudo apt-get install git-core git-svn ruby rubygems.
$ sudo gem install svn2git

(sur Mac, tous les prérequis étaient installés --> première ligne inutile)

Étape 2: Conversion du repértoire SVN

Ouvrir un terminal et se positionner dans le répertoire à convertir

$ cd Annotator_svn/
$ svn2git https://www-lipn.univ-paris13.fr/svn/fanas/Outils/Annotator/ --username UTILISATEUR_LIPN --verbose

Ce programme va convertir tout l'historique de votre répertoire local au format git. Comme une bonne partie de l'historique est sur le dépôt svn, il faudra sans doute plusieurs accès. Chaque fois que le programme vous demande:

Authentication realm:

vous devez tapez votre mot de passe LIPN (il peut être demandé à plusieurs reprises).

Pour convertir seulement une branche (qui se trouve être la version active, et non fusionable à Trunk):

$ svn2git https://www-lipn.univ-paris13.fr/svn/fanas/Outils/tore/branches  --no-minimize-url --trunk NOM_DE_LA_BRANCHE --nobranches --notags 
                                  --username UTILISATEUR_LIPN --verbose

Étape 3: Rajout du dépot au gitlab du LIPN

Maintenant, le contrôle de version est installé en local, il faut lier le dépôt local à un de vos dépôts du LIPN. Il faut préalablement avoir créé un depôt git (example: MON_DEPOT) sur le gitlab du labo à partir de la ligne de commandes (vous pouvez aussi utiliser l'interface graphique de l'intranet pour la première ligne) :

$ git remote add origin git@git.lipn.univ-paris13.fr:MON_DEPOT.git 
# lie les deux dépôts. Le nom local du dépôt distant est origin.

$ git add *                                                                                         
# tous les fichiers locaux sont mis sous git

$ git commit -m "premier commit: conversion de mon dépôt SVN"    
# Ils sont copiés dans le dépôt local

$ git push -u origin master                                                                
# réplique le dépôt local (master) sur le distant (origin)

Étape 4: Vérifier que les fichiers ont été téléchargés

Allez vérifier sur https://git.lipn.univ-paris13.fr/MON_DEPOT si les fichiers ont été bien téléchargés.