Aller au contenu
Développement medium
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

Historique du contrôle de version : de RCS à Git

8 min de lecture

Git est un système de contrôle de version distribué. Mais pour comprendre ce que “distribué” signifie (et pourquoi c’est un avantage), il faut connaître ses prédécesseurs. Ce guide retrace l’évolution en trois générations — locale, centralisée, distribuée — pour que vous compreniez les choix de conception de Git.

  • Les 3 générations de systèmes de contrôle de version
  • Pourquoi chaque génération a corrigé les limites de la précédente
  • Pourquoi Git a gagné face à Subversion, CVS et Mercurial

Le contrôle de version (VCS — Version Control System) est un système qui enregistre les modifications apportées à un ensemble de fichiers au fil du temps. Il permet de :

  • Revenir à une version précédente d’un fichier ou du projet entier
  • Comparer les modifications entre deux versions
  • Savoir qui a modifié quoi et quand
  • Travailler à plusieurs sur le même projet sans se marcher dessus

Les premiers outils de versioning fonctionnaient sur un seul ordinateur. Le plus connu est RCS (Revision Control System, 1982).

Le principe : RCS stocke les différences (patches) entre chaque version dans un fichier spécial sur votre disque. Pour reconstituer une version, il rejoue les patches les uns après les autres.

AvantageLimite
Simple à utiliserUn seul développeur à la fois
Pas de réseau nécessaireAucune sauvegarde distante
Rapide (tout est local)Pas de collaboration possible

Le problème fondamental : impossible de travailler à plusieurs. Si votre disque dur lâche, tout l’historique est perdu.

Pour permettre la collaboration, les VCS centralisés placent l’historique sur un serveur unique. Les développeurs récupèrent la dernière version, travaillent, puis renvoient leurs modifications au serveur.

Les outils emblématiques de cette génération :

  • CVS (Concurrent Versions System, 1990)
  • Subversion / SVN (2000) — successeur de CVS
  • Perforce (1995) — commercial, encore utilisé dans le jeu vidéo
AvantageLimite
Collaboration possibleServeur = point unique de panne
Administration centraliséePas de travail hors-ligne
Permissions par dossierOpérations lentes (réseau requis)
Développeur A Serveur SVN Développeur B
│ │ │
├── svn checkout ──────────▶│ │
│ │◀──── svn checkout ───────┤
│ (travaille) │ (travaille) │
├── svn commit ────────────▶│ │
│ │◀──── svn commit ─────────┤
│ │ (conflit possible !) │

Le point clé : chaque opération passe par le réseau. Sans connexion au serveur, pas de commit, pas d’historique, pas de diff.

Les VCS distribués résolvent le problème du serveur central en donnant à chaque développeur une copie complète de l’historique. Pas seulement la dernière version — tout l’historique depuis le début du projet.

Les outils de cette génération :

  • Git (2005) — créé par Linus Torvalds pour Linux
  • Mercurial (2005) — similaire à Git, syntaxe plus simple
  • Bazaar (2005) — soutenu par Canonical (Ubuntu)
AvantageDétail
Travail hors-ligne completChaque copie contient tout l’historique
Pas de point unique de panneSi un serveur tombe, n’importe quel clone peut le restaurer
Opérations ultra-rapidescommit, log, diff, branch — tout est local
Branches légèresCréer une branche ne coûte presque rien
Workflows flexiblesCentralisé, fork, dictator, pull-request… tout est possible

Git a été créé en 2005 par Linus Torvalds pour gérer le code source du noyau Linux, après un conflit de licence avec BitKeeper (un VCS propriétaire). Les objectifs de conception étaient clairs :

  • Vitesse : les opérations courantes doivent être instantanées
  • Intégrité : chaque fichier est vérifié par un hash SHA
  • Support des branches : créer et fusionner des branches doit être simple et rapide
  • Distribution : chaque développeur a une copie complète

En 2026, Git domine très largement le marché. Selon le Stack Overflow Developer Survey, plus de 95 % des développeurs utilisent Git. Mercurial et Bazaar sont devenus marginaux.

CritèreLocal (RCS)Centralisé (SVN)Distribué (Git)
CollaborationNonOuiOui
Travail hors-ligneOuiNonOui
Point unique de panneOui (disque local)Oui (serveur)Non
Vitesse des opérationsRapideLent (réseau)Rapide (local)
BranchesInexistantLourdes (copie complète)Légères (pointeur)
Intégrité des donnéesNonNonSHA sur chaque objet
QuestionRéponse
Mon entreprise utilise encore SVN, que faire ?Git peut importer un historique SVN avec git svn clone. La migration est bien documentée.
Mercurial est-il mort ?Quasiment. Facebook l’utilisait mais a migré vers un fork interne. Le développement est au ralenti.
Git et GitHub, c’est la même chose ?Non. Git est l’outil en ligne de commande. GitHub est une plateforme web qui héberge des dépôts Git.
  • Le contrôle de version enregistre l’évolution de vos fichiers dans le temps
  • Les VCS locaux (RCS) ne permettent pas la collaboration
  • Les VCS centralisés (SVN) dépendent d’un serveur unique
  • Les VCS distribués (Git) donnent à chaque développeur une copie complète — rapide, résilient, flexible
  • Git domine le marché depuis 2010+ grâce à sa vitesse, ses branches légères et son modèle distribué

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn