SVN, GIT ou Mercurial, lequel choisir ?

Mars 2013

SVN, Git et Mercurial sont tous des outils de versionning qui servent à faire au moins 2 choses :

  • garder un historique de toutes les modifications du code source
  • pouvoir travailler à plusieurs sur un même projet, en fusionnant les modifications des différents développeurs (merge)

Pendant longtemps, Subversion (abrégé : SVN) était le plus utilisé. SVN est développé par la fondation Apache, tout comme le serveur HTTP du même nom, il s'agit d'une amélioration d'un programme plus ancien aujourd'hui obsolète : CVS.

Mais depuis quelques années, SVN perds du terrain au profit de 2 nouveaux outils concurrents : Git et Mercurial.

Alors il y a plusieurs raisons à cela. Il y a d'abord un aspect technique, car Git et Mercurial offrent une approche totalement différente de Subversion : Git et Mercurial ont une approche décentralisée, là ou SVN est centralisé.

Repository centralisé et décentralisé

SVN fonctionne selon un modèle client/serveur : le serveur SVN contient le repository, et les clients envoient le code au serveur SVN. Le repository est unique, tout le monde utilise le même, on appelle cela un système de versionning centralisé.

Git et Mercurial ont une autre philosophie, il n'y a pas de serveur ni de client, il n'y a qu'un seul programme unique. Chaque développeur dispose de son propre repository en local sur sa machine, et toute la subtilité de ce système est qu'on peut échanger des données entre les repositories. Cela s'appelle un système de versionning décentralisé.

On créé alors un repository de référence (le repository public) sur lequel tout le monde va publier ses modifications. Ce modèle offre de nombreux avantages : il permet de fusionner des branches (merge) beaucoup plus facilement, du coup on utilise les branches de manière plus intensive que sur SVN, cela permet même de gérer la mise en production (par exemple en utilisant le workflow gitflow).

La page du jour est quelle version d'excel choisir ?, bonne lecture.

Qu'est-ce qu'un repository ?

Le repository (aussi appelé le dépôt de code en français) est une sorte de base de données qui contient tout l'historique des modifications d'un ensemble de fichiers (que l'on qualifie de fichiers versionnés).

C'est une notion commune à tous les outils de versionning : SVN, Git, Mercurial, Perforce...

Comment choisir son outil de versionning ?

Pour faire le bon choix, il faut savoir de quoi vous avez besoin, voilà quelques pistes :

  1. Centralisé ou décentralisé
    C'est la première question que vous devez vous poser. La tendance actuelle tend clairement à l'abandon des systèmes de versionning centralisé, au profit des systèmes décentralisés. Mais ça n'est pas pour autant qu'il faut suivre le troupeau est faire pareil. Je vous conseille de lire ceci si vous comprenez bien l'anglais : Distributed Version Control is here to stay, baby.
  2. Interface graphique
    Tous ces outils s'utilisent en ligne de commande. Mais il existe des clients graphiques très bien conçus, selon l'outil et surtout selon votre système d'exploitation.
    TortoiseSVN est par exemple un excellent client SVN pour Windows, il permet de créer un repository en local (sans serveur, grâce à file:///) et de l'utiliser sans taper une seule ligne de commande.
    Pour GIT en revanche il n'y a pas de bon client gratuit avec interface graphique sous Windows (le principal est git GUI). Par contre sur Mac OS on en trouve beaucoup comme Tower, SmartGit ou SourceTree. Le site officiel répertorie les principaux clients GUI : http://git-scm.com/download/gui/win
    Par contre pour Mercurial il y a TortoiseHG (aussi appelé hg workbench) qui est tout aussi pratique que TortoiseSVN, ça peut-être un critère de choix qui peut vous conduire à utiliser Mercurial plutôt que GIT si vous voulez un VCS décentralisé. Voilà un excellent tutoriel pour apprendre Mercurial : hg init.
  3. La communauté
    Il existe de nombreux services sur internet qui permettent d'héberger des projets personnel ou professionnel. Le plus célèbre d'entre eux est Github qui a pris le pas sur SourceForge.net. Mais il y a aussi Bitbucket (Altassian), Codeplex (Microsoft), Google Code, ou encore Assembla.
    Certains de ces sites comme github ne gèrent qu'un VCS, donc si vous avez l'intention de partager un projet sur Github, vous devrez choisir Git.

Découvrez ce tutoriel photoshop : dessiner un pirate à lire tout de suite !

4 commentaires :
commentaire n°2519 par MathieuC
MathieuC dimanche 17 mars 2013, 19:48
commentaire n°2747 par angela
angela vendredi 14 février 2014, 11:48
merci cet artcile est intéressant mais j'ai une question par rapport à l'utilisation de GitHub pour un projet professionnel est ce que c'est un bon choix ?
commentaire n°2750 par Galdon
Galdon mardi 18 février 2014, 14:26
Oui c'est très pratique, on l'utilise dans mon entreprise (et pour de grands comptes), par contre il faut utiliser des repository privé (donc payant).

Après, il y a quand même un risque de confidentialité à partir du moment où le repo est hébergé par un tiers comme github...
commentaire n°3377 par bla
bla mardi 30 août 2016, 02:39
juste l'article est intéressant mais la fusé a la con qui distrait le regard a chaque fois qu'on bouge l’ascenseur, c'est juste fatigant et super chiant pour les gents qui essai de lire
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré