Gestionnaires de sources décentralisé

Voici un petit billet pour parler des outils de gestion de source, car j’ai voulu résumer tout ça dans un seul endroit.

Si j’ai beaucoup travaillé avec Subversion (SVN) depuis de nombreuses années, j’en ai aussi payé les frais, et j’ai adopté aujourd’hui les gestionnaires de sources décentralisés.
SVN reste un très bon choix, et impose de bonnes pratiques sans imposer sa façon de travailler.
Mais j’ai souvent souffert des problèmes suivants:

  • Merges compliqués, peut-être résolu avec SVN 1.5 et TortoiseSVN 1.5, mais ça reste difficile par moment
  • Lenteur, que ce soit en Updatant/Commitant, ou avec l’utilisation de TortoiseSVN
  • "Rename" compliqué, puisqu’il faut faire un "Move" avec SVN et pas avec le FileSystem ou dans l’IDE

Trop facile les branches avec Tortoise! ;)

C’est pour ces raisons que je suis fan de GIT ou Mercurial (HG), avec une préférence pour ce dernier. J’avais commencé à utilisé GIT, mais un ami m’a dit qu’il trouvait Mercurial plus facile: après avoir fait l’essaie, je confirme!

Si j’ai opté pour SVN à l’époque, c’est sans doute grâce à l’outillage qui est autour:

Ce fut aussi sans doute parce que SVN s’intégrait bien avec d’autres outils, comme les bugs-trackers (Track ou Redmine).

Si j’opte pour GIT ou Mercurial, c’est pour les mêmes raisons: les outils existent!
Pour GIT:

Pour Mercurial:

La puissance de GIT et Mercurial c’est aussi de pouvoir convertir un repository SVN rapidement, ou même l’utiliser comme "main branch". A ce niveau, j’ai eu une meilleure expérience avec Mercurial.

Mais ce n’est pas tout, si GIT/HG explose en puissance, c’est qu’ils offrent un repository "officiel" gratuit!
Petite anecdote: je voulais faire de la place sur mon disque dur plein à craqué, et en faisant le ménage je suis tombé sur un dossier contenant des backups de mes sources de mes projets perso. Ce fut un beau moment de nostalgie, j’en reviens pas d’avoir fait un "simulateur de vie en 3D en Java" ou un projet avec "Eclipse RCP" ou encore un "framework RCP en .Net"…
Il ne fallait absolument pas perdre tout ça, il me fallait le mettre sur un SVN. A l’époque, j’avais des repos SVN locaux, mais pour ne rien perdre en cas de crash, je me suis dit que je vais tout backuper sur le plus gros disque du monde: Internet.
J’ai trouvé Assembla à l’époque, qui inclut le bug-tracker Trac. J’aurai pu choisir Google Code, mais je n’y ai pas pensé. Quand à CodePlex ce n’était que du TFS à l’époque, mais maintenant il y a un pont SVN.

Avec la découverte de GIT, j’ai aussi découvert GitHub et ça a changé ma vie: Wiki light, bug-tracker light, interface Web très soigné, et très simple d’utilisation (très facile à créer plusieurs repos). Gitorious est aussi un très bon choix, mais j’ai l’impression qu’il n’a pas connu le même succès.

Et c’est avec joie que j’ai découvert que Mercurial possède aussi son repository "officiel" tout comme GitHub: BitBucket. Les 2 sont très comparables, on dirait presque des clones.

J’ai une petite pensé pour Bazaar qui est aussi un gestionnaire de sources décentralisé, qui est très utilisé dans le monde Linux (produit de Canonical donc très utilisé par Ubuntu) mais qui n’a pas séduit la communauté des développeurs (manque d’outils? trop complexe? c’est la vie?) pour ceux qui veulent quand même le tester, TortoiseBZR existe.

Amusez-vous bien sur GIT ou Mercurial, apprenez à maitriser l’outil, car c’est grâce à vos connaissance que vous les verrez apparaitre dans vos entreprise.

Suivre

Recevez les nouvelles publications par mail.