Contrôle de version

Comprendre le contrôle de version

En premier lieu, pourquoi avez-vous besoin d’un système de gestion de version ?
C’est une question à laquelle je n’étais pas préparé à répondre il y a quelques années lorsque le CEO d’une scale up me l’a posée. Je n’étais pas préparée car je pensais que c’était devenu un classique dans les entreprises spécialisé dans le développement information. Il s’agissait d’une erreur de ma part, ne jamais sous-estimé la résistance au changement et ne jamais « supposer ». En l’occurrence après vérification, les développeurs utilisaient bien un système de gestion de contrôle, Subversion, 2ème erreur qui a été de poser des questions techniques aux mauvaises personnes.

Définition du contrôle de version

La gestion de version est un système qui traque et enregistre l’historique des changements que peuvent apporter les différents membres d’une équipe ou le développeur seul sur un projet. C’est pourquoi on parle de système de gestion de version (en anglais Version Control System, VCS). Au fur et à mesure que le projet évolue, les équipes peuvent lancer des tests, corriger des bugs et modifier le code en sachant que toutes les versions peuvent être récupérées à tout moment. Croyez-moi, pour les « newbies » c’est vraiment rassurant de pouvoir compter sur le VCS.

Les différents systèmes de gestion de versions

Le problème majeur des équipes de développeur est de trouver comment collaborer, le développeur code dans un premier temps en local et doivent ensuite trouver un moyen de partager leur travail de façon efficace et sécurisé. Pour remédier à cette problématique deux système de gestion de versions ont été élaboré, l’un ayant quasiment remplacer l’autre : le système de gestion de version centralisés et le système de gestion de version distribués.

Le système de gestion de version centralisés

Le système de gestion de version centralisés (en anglais Centralized Version Control System, CVCS) sont conçus autour d’un serveur central, ou dépôt central) qui contient tous les fichiers du projet. Ce système apportait une réelle amélioration au processus de développement collaboratif, puisque chacun pouvait savoir ce que les autres développeurs étaient en train de faire sur le projet (enfin dans une certaine mesure). Cette version est devenue un standard pour la gestion de version, néanmoins la méthode comportait aussi de nombreux défauts, dont l’un des plus évidents qui est que si jamais le serveur est corrompu vous perdez votre projet.

Le système de gestion de version distribués

Le système de gestion de version distribués (en anglais Distributed Version Control Systems, DVCS), permet de gérer les projets grâce aux informations dans une structure de données (data sctructure) appelé un dépôt (repository). C’est le système le plus utilisé par les développeurs car il permet non seulement de collaborer en pouvant extraire la dernière version d’un fichier, mais aussi dupliquer tout le dépôt. Chaque extraction devient alors une sauvegarde. En outre, la plupart de ces systèmes permettent non seulement de collaborer mais aussi de mettre en place de différentes chaînes de traitement qui ne seraient pas réalisable avec les systèmes centralisés, comme les modèles hiérarchiques. Cela permet aussi à aux équipes de pouvoir travailler de façon asynchrone (utile pour les équipes internationales) et surtout pour avancer sur le projet de façon transparente et de rester alignés pendant tout le process.

Quelle version choisir ?

Il existe de nombreuses systèmes de contrôle de version disponibles, mais le plus connu est Git, et c’est d’ailleurs celui que j’aurais tendance à vous recommander.
Vous vous demander quelle version est utilisée par la plupart des développeurs? Comme d’habitude, Stackoverflow à la réponse

  • Git 87.2% 87.2%
  • Subversion 16.1% 16.1%
  • Team Foundation Version Control 10.9% 10.9%
  • Zip file back-ups 7.9% 7.9%
  • Copying and pasting files to network shares 7.9% 7.9%
  • I don’t use version control 4.8% 4.8%
  • Mercurial 3.6% 3.6%

Dans la même thématique

Pierre Personnaz – CEO & digital nomad

Pierre Personnaz – CEO & digital nomad

Pierre Personnaz CEO et digital nomadA la rencontre de Pierre PersonnazThe Hunt est une série d’articles consacré à la recherche d’emploi et à tout ce qui a trait à la...

Sandrine Favier

Sandrine Favier

Auteur et créatrice de Deer Media

Hello, Hola, Guten Tag,
Je suis Sandrine Favier, Chief Digital Officer & Martech. Je partage ici mes plans et conseils voyages et lifestyle ✈️