Sunday, June 10th, 2012

Gérer les branches avec Mercurial

En passant de SVN à Mercurial et également car l’équipe de développement a triplé en l’espace de quelques semaines, nous avions envie d’instaurer un nouveau modèle pour gérer les nombreux développements en cours.

Nous nous sommes inspiré de l’excellent article de Vincent Driessen “A successful Git branching model” qui présente un modèle avec Git, mais qui peut également s’appliquer à Mercurial. Et voici le résultat :

  • La branche Master suit les développements en cours, c’est la branche de base pour les nouveaux devs.
  • Les branches Dev sont les développements en cours.
  • Les branches Hot Fixes sont de rapides corrections de bugs.
  • Les branches release sont les branches en cours de recette.
  • La branche prod est bien sur la version stable du site.

Ce système permet bien sûr d’effectuer plusieurs développements en parallèle, mais également plusieurs recettes.

Workflow

  • Chaque développeur travaille sur sa propre branche.
  • Une fois le développement terminé, il est une première fois recetté par le développeur.
  • Il est ensuite mergé dans la branche Master pour une recette plus poussée sur le développement concerné.
  • Après validation, la branche master est mergée avec la branche release pour une recette de non-régression du site complet en préproduction. La branche master peut également contenir d’autres développements.
  • Une fois le test de non-régression passé, la branche release est mergée avec la branche prod.

Note
Il est important de conserver un train de livraison constant afin de ne pas faire vieillir certaines branches de développement qui seront par la suite difficiles à intégrer dans le master (nombreux conflits).

La vision côté développeur

Leave a comment

You must be logged in to post a comment.

About me

Welcome to my space! With over 20 years of solid project management experiences, I developed both management and technical skills. I learnt how to coordinate teams integrating the marketing, technical and administrative aspects of a project. View my resume.