Qu'est-ce que le contrôle de version ?

Les systèmes de contrôle de version (VCS), également appelés systèmes de gestion du code source (SCM), vous permettent de suivre toutes les modifications apportées à votre base de code.

En conservant vos fichiers dans un système de contrôle de version, vous pouvez consulter chaque modification, ajout ou suppression, mais aussi en connaître la date et l'auteur·e.

Vous pouvez également revenir à un état antérieur et comparer les modifications apportées aux fichiers au fil du temps. Le contrôle de version est un outil indispensable au développement de logiciels modernes. Non seulement il donne à chacun une visibilité sur les modifications, mais il permet à plusieurs personnes de travailler sur les mêmes fichiers et de fusionner leurs mises à jour, ce qui facilite la gestion des versions, publiées ou non.

Les systèmes de contrôle de version (VCS) se présentent principalement sous deux formes : distribués et centralisés. Dans un système centralisé, tous les fichiers sont stockés sur un serveur central et les utilisateurs et utilisatrices « extraient » une copie locale des fichiers, qu'elles et ils synchronisent ensuite avec la source centrale de vérité.

Toutefois, le principal inconvénient de cette approche est que le serveur central constitue un point de défaillance unique. En revanche, il existe plusieurs copies des fichiers dans un système de contrôle de version distribué et, par conséquent, plusieurs sources de vérité.

Quel que soit le système utilisé, les étapes de base consistent à mettre à jour votre copie locale des fichiers sources, à travailler sur les modifications localement, puis à partager ces modifications avec d'autres sous la forme d'un commit.

Placer tous les fichiers nécessaires à la génération de votre application dans un dépôt de contrôle de version unique accessible à tous constitue la première étape vers la mise en œuvre de l'intégration continue et la création d'un pipeline CI/CD.

Cela permet à chacun de partager régulièrement ses modifications, ce qui déclenche le processus de build et de test automatisé pour fournir un retour rapide sur ces modifications.

Lorsque des problèmes surviennent (que ce soit en test ou en production), vous pouvez identifier les commits qui ont introduit le problème et utiliser l'historique des révisions pour comprendre exactement ce qui a changé.