lundi 10 janvier 2011

Migration de SVN vers Mercurial : Partie 2 Méthode Simple, Déconnexion de Subversion

Avant de commencer, une prochaine partie vous expliquera comment réaliser la migration sans perdre vos informations SVN. Pour les autres vous pouvez continuer avec cet article :

Pour se déconnecter de Subversion, la méthode consiste à supprimer les informations de version que l'on peut trouver dans les sous dossiers de chaque répertoire. Cette méthode assez simpliste permet de recommencer avec des bases saines pour reprendre le travail sans se trimballer tout l'ancien historique.

Suppression des dossiers .svn

L'idée est de commencer par une sauvegarde avant d'attaquer cette étape.
Votre sauvegarde terminée, nous allons voir trois façon de faire pour supprimer les fichiers.

Depuis l'explorateur Windows


Pour supprimer facilement tous les sous-dossiers depuis l'explorateur il faut se placer dans le dossier du projet, initialiser une recherche ( soit par la touche F3, par la combinaison CTRL+F, ou le bouton rechercher en haut de la fenêtre).
Nous recherchons les dossiers .svn, c'est donc ce que l'on va inscrire dans le nom recherché. Ces fichiers sont cachés alors il faut étendre la région "Options avancées" et cocher "Rechercher dans les fichiers et les dossiers cachés" comme on peut le voir dans l'image ci-contre.








En ligne de commande sous Windows

Le principe reste le même, supprimer les métadonnées par contre ici le fonctionnement est légèrement plus simple, mais pas à comprendre hélas.
Le script que je vais livrer, va rechercher les dossiers .svn dans tous les dossiers et tous les sous-dossiers à partir de l'endroit où il est executé.
for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *svn') do (
rd /s /q "%%i"
)
Il suffit de copier ce code dans un fichier .bat ou .cmd et l'exécuter dans le dossier à déconnecter.

En ligne de commande sous Linux

Ici le principe est toujours le même mais la syntaxe change.
Le code suivant effectue une recherche récursive dans le dossier courant de tous les dossiers ayant pour nom .svn. Le résultat de cette recherche sert d'argument à la suppression, ce code est executable directement en ligne de commande ou dans un fichier bash.
rm -rf `find . -type d -name .svn`


Déconnexion en utilisant des logiciels tiers

En utilisant TortoiseSVN

Si vous êtes sous Windows, TortoiseSVN est un incontournable pour la gestion de vos sources SVN, il a une fonction très pratique pour déconnecter un projet SVN et ainsi ne récupérer que les sources. TortoiseSVN s'intègre dans le menu contextuel de votre explorateur. En faisant un clic-droit sur le dossier de votre projet, on peut apercevoir un petit TortoiseSVN en dessous des options SVN Commit et SVN Update. En allant dans le sous-menu de TortoiseSVN, l'option "Export...",ou "Exporter..." pour ceux qui ont traduit leur application en Français, apparaît et vous laisse ainsi la possibilité d'exporter vos sources dans un autre dossier de votre choix.
Exemple d'export d'un dossier pour ne récupérer que les fichiers sources

Pour les utilisateurs d’Eclipse et du Plugin Subclipse

La déconnexion suit le même principe dans Eclipse, en faisant un clic-droit sur le projet puis en sélectionnant le sous-menu "Team" ou "Equipe", une entrée appelée Disconnect située généralement en dernière position.
Attention toutefois car cette action, contrairement à l'export, ne copie pas de fichiers dans un autre dossier mais supprime les métadonnées.