Les logiciels de gestion de version décentralisés

La gestion de version

Petit rappel...

"La gestion de versions (en anglais version control ou revision control) est une activité qui consiste à maintenir l'ensemble des versions ou révisions d'un logiciel ou autre document" -- Source Wikipedia

Elle permet de revenir en arrière en cas de mauvaise manipulation ou de perte d'informations. Si la gestion de version de Papy ressemblait à un ensemble de fichiers renommés à la main par le propriétaire :

Elle a depuis quelques années bien évoluée et se fait de manière quasi-automatisée. Les outils d'aujourd'hui permettent de travailler à plusieurs sur le même projet, c'est-à-dire de modifier en même temps le même fichier sans se marcher sur les pieds.

Un bon logiciel de gestion de version offre les fonctionnalités suivantes :

Le modèle classique

Les logiciels de gestion de version classique comme CVS et SVN fonctionnent selon un modèle centralisé. Dans ce modèle, plusieurs développeurs travaillant sur le même projet récupèrent les fichiers depuis un dépôt central (checkout). Pour se synchroniser entre eux, les développeurs vont envoyés toutes leur modifications sur ce même dépôt (commit).

La représentation de l'historique du projet se fait de manière linéaire. Il s'agit d'une séquence de révisions (commit) qui se suivent les unes après les autres. Ceci implique qu'il existe un serveur commun qui garde en mémoire le numéro de la prochaine révision.

Ce modèle fonctionne correctement depuis quelques années mais des critiques ont été exprimées par les développeurs travaillant, pour la plupart, sur des projets open-source. Ces reproches ont mis en évidences de nouveaux besoins. Faisons un tour d'horizon de ces reproches.

Les critiques du modèle centralisé >>>