VCS
| 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