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

La différence architecturale

Subversion est centralisé : un serveur tient le dépôt canonique; les clients tiennent des copies de travail. Sans le serveur, vous pouvez éditer des fichiers mais pas commit, log, branch ou merge.

Git est distribué : chaque clone est un dépôt complet.

Ce que "distribué" permet

  • Commits offline.
  • Expérimentation locale.
  • Récupération de désastre.
  • Workflows multi-master.
  • Découplage du code d'un fournisseur.

Ce que la centralisation permet

  • Source unique de vérité.
  • Contrôle d'accès par chemin.
  • Numéros de révision séquentiels.
  • Verrouillage.

Comparaison pratique

# Offline en Git
git commit -m "WIP"
git log
git diff HEAD~5
git checkout -b experiment

# Mêmes opérations en SVN, offline :
svn commit       # erreur
svn log          # erreur
svn diff -r 100   # erreur

Travail mobile et remote

La décennie entre les apogées de SVN et Git a vu la montée du développement mobile, des trajets en train, des conférences, et plus récemment le travail à distance global.

Récupération de désastre

# Git : récupérer le repo central depuis un clone
git clone --mirror /path/to/laptop/clone backup.git
cd backup.git
git remote add origin git@new-host:repo.git
git push --mirror origin

# SVN : nécessite un dumpfile côté serveur
svnadmin dump /var/svn/repo > repo.dump

Mises en garde avec distribué

  • Distribué crée une question de coordination — quel clone est canonique ?
  • Les forks peuvent diverger silencieusement.
  • L'audit nécessite une infrastructure explicite.

Hybride

Des outils comme git-svn font le pont entre les deux.