Système de gestion des versions

Un système de gestion des versions ou version control system (VCS) en anglais, permet de stocker un historique de toutes les modifications faites sur un projet en conservant la chronologie. Il permet de retrouver les versions précédentes d’un projet. Le système d’arborescence d’un VCS permet de gérer les conflits entre les utilisateurs : chaque utilisateur travaille sur sa partie du projet dans sa branche et une fois la version finale décidée, le VCS permet la fusion des branches pour créer un seul et unique projet principal.

 

Un tel système permet donc de suivre l’évolution d’un projet, de garder l’historique des versions, de revenir à une version précédente et de réparer ses erreurs.

Il existe deux systèmes de versioning : Gestion de versions centralisé CVCS et Gestion de versions décentralisé DVCS.

 

Système de gestion de versions centralisé

Dans un CVSC, un serveur unique central contient les différentes versions du projet. Toutes les données sont concentrées dans ce système central. Un tel système présente de nombreux inconvénients : les données sont dans un serveur à distance et pour les gros projets, une modification peut être lente. Si le serveur a un problème et perd ses données, le projet est perdu.

 

Système de gestion de versions décentralisé

Dans un DVSC, la gestion du projet est distribuée, c’est à dire que chaque utilisateur possède sa propre copie du projet. Les modifications sont effectuées en local avant l’envoie sur le serveur, ce qui augmente considérablement les performances. Si le serveur a un problème et perd ses données, chaque utilisateur possède une version du projet, ce qui permet de le restaurer.