Da Anonimo (non verificato) , 29 Aprile 2026

La differenza architetturale

Subversion e centralizzato; Git e distribuito.

Cosa abilita "distribuito"

  • Commit offline.
  • Sperimentazione locale.
  • Disaster recovery.
  • Workflow multi-master.
  • Disaccoppiamento del codice da un vendor.

Cosa abilita la centralizzazione

  • Singola fonte di verita.
  • Access control per percorso.
  • Numeri di revisione sequenziali.
  • Locking.

Confronto pratico

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

# Same operations in SVN, offline:
svn commit       # error: cannot connect to server
svn log          # error: cannot connect to server
svn diff -r 100   # error: cannot connect to server (for arbitrary revs)

Lavoro mobile e remoto

La decade tra il primato di SVN e Git ha visto l'ascesa dello sviluppo mobile, dei pendolarismi in treno, conferenze e (piu recentemente) lavoro remoto globale.

Disaster recovery

# Git: recover central repo from a 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: requires server-side dumpfile
svnadmin dump /var/svn/repo > repo.dump

Avvertenze con distribuito

  • Il distribuito crea una domanda di coordinamento.
  • I fork possono divergere silenziosamente.
  • Auditing e access control richiedono infrastruttura esplicita.

Ibrido

Strumenti come git-svn fanno da bridge tra i due.