Migrer de SVN vers Git


Publié par
Alexandre ALQUIER

18 mars 2013

Pourquoi se tourner vers Git ?

Une migration est couteuse en terme de temps, d’argent, en formation et pourtant nombre de projet Open Source et d’entreprise on franchit le pas.
Certainement pas par plaisir, mais plutôt parce qu’ils ont compris qu’ils pouvaient être encore plus efficace, améliorer leur QA et donc au final gagné du temps.

Mais pourquoi puisque Subversion fonctionne très bien ?

On pourrait comparer la même situation avec une équipe qui n’utilise pas d’outil de versioning et qui se contente de noter soigneusement les numéros de versions des fichiers en faisant attention à ne pas modifier le même fichier en même temps. Tant que l’on ne connait pas un outil de versioning, on ne se rend pas compte du temps perdu.

Quelques exemples du monde Git

  • La vraie force de Git se trouve dans la flexibilité et particulièrement dans la gestion des branches. Git apporte son petit lot de révolutions à ce niveau. Commiter en local, merger, créer de nouvelle branche, gérer les forks… tout cela se fait avec une grande souplesse dans Git alors que du coté SVN, cela demande plus de réflexion et de travail. Exemple d’un branching modèle avec Git.
  • Git ne possède qu’un seul répertoire .git par dépôt, à la racine. Dans le cas SVN la situation peut se révéler couteuse en temps si on oublie de supprimer un .svn lors d’une manipulation des répertoires.
  • Contrairement à SVN, Git ne surveille pas les fichiers, mais leur contenu. Cela permet de faire des choses qui auraient été impossibles autrement, comme savoir qu’une fonction a été déplacée d’un fichier à un autre.

Franchir le pas

Le switch est assez facile à réaliser et il existe plusieurs outils pour cela et même nativement dans Git : « git svn » qui peut conserver l’historique des commits et les auteurs. Citons aussi SubGit qui permet d’utiliser SVN et Git en même temps.

Les outils Atlassian

  • Stash : grâce a cet outil, l’administration d’un dépôt Git est rendu simple, rapide et possède une pleine intégration avec JIRA (commit<>issue).
  • SourceTree : un client Git GUI pour OSX agréable à utiliser.
  • Bitbucket : hébergement Git à la manière de GitHub, mais qui autorise 1 dépôt privé gratuit.

En savoir plus sur Git : http://atlassian.com/git/