VCS

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Gestion de versions de code source
Sigle VCS — Version Control System
Deux familles Centralisé (SVN, Perforce) · Distribué (Git, Mercurial)
Voir aussi Git, SVN, Mercurial

Un VCS (Version Control System, ou logiciel de gestion de versions) permet de stocker un ensemble de fichiers en conservant la chronologie de toutes les modifications effectuées : qui a changé quoi, quand et pourquoi. C'est la brique de base de tout projet de développement, qu'il soit collaboratif ou solo, pour tracer l'historique, revenir en arrière et travailler à plusieurs sans écraser le travail des autres.

Deux grandes architectures

Systèmes centralisés (SVN/Subversion, Perforce, CVS)

Un serveur central détient le dépôt de référence ; les postes de travail n'ont qu'une copie de travail. Les versions sont gérées comme une suite de deltas (différences) par fichier. Simple à appréhender, mais dépendant du serveur central (pas d'historique complet en local).

Systèmes distribués (Git, Mercurial, Bazaar)

Chaque clone contient l'intégralité de l'historique. Git raisonne en instantanés (snapshots) de l'arborescence à chaque commit plutôt qu'en deltas de fichiers, ce qui rend les opérations locales (log, diff, branches) très rapides et permet de travailler hors ligne.

En pratique

  • Git — le standard actuel, distribué
  • SVN — centralisé, encore présent sur des bases historiques
  • Mercurial — distribué, alternative à Git
  • Perforce — centralisé, courant dans le jeu vidéo et les gros binaires
  • Bazaar — distribué, historiquement lié à Canonical

Voir aussi