Par Anonyme (non vérifié) , 29 avril 2026

Deux philosophies

Subversion (SVN), sorti en 2000, est un système de contrôle de version centralisé. Le dépôt vit sur un serveur; les clients font checkout, commit au serveur, et update depuis lui. Git, sorti en 2005, est distribué.

Modèles mentaux

Le modèle mental de SVN est l'armoire à dossiers : un endroit partagé. Le modèle de Git est plus comme l'email : chaque participant a l'historique complet.

Ce que SVN a réussi

  • Simple à expliquer.
  • Contrôle d'accès granulaire au niveau répertoire.
  • Verrouillage de fichiers pour les binaires non mergeables.
  • Numéros de révision linéaires et monotones.
  • Stable pour de très grands dépôts à contenu mixte.

Ce que Git a réussi

  • Branches et merges bon marché et rapides.
  • Historique local complet.
  • Modèle distribué résiste aux pannes serveur.
  • Adressage par contenu SHA détecte la corruption.
  • L'écosystème est vaste.

Commandes quotidiennes comparées

# SVN
svn checkout https://svn.example.com/repo
svn update
svn add file.txt
svn commit -m "Add file"
svn log

# Git
git clone https://git.example.com/repo.git
git pull
git add file.txt
git commit -m "Add file"
git push
git log

Là où les philosophies mordent

Dans SVN, "commit" signifie publier à tous immédiatement. Dans Git, "commit" est local; "push" publie.

Branching

# Branche SVN
svn copy https://svn.example.com/repo/trunk \
         https://svn.example.com/repo/branches/feature -m "Branch"

# Branche Git
git checkout -b feature

Pourquoi Git a gagné des parts de marché

Trois facteurs : effets de réseau de GitHub depuis 2008; la dominance de Linux; et la montée du cloud et du développement à distance.

Quand SVN reste un choix sensé

  • Grands dépôts binaires où merger est impossible.
  • Environnements contrôlés avec accès strict par répertoire.
  • Pipelines de tooling établis.
  • Équipes mono-site qui ne travaillent jamais offline.