Due filosofie
Subversion (SVN), rilasciato nel 2000, e un sistema di controllo versione centralizzato. Git, rilasciato nel 2005, e distribuito.
Modelli mentali
Il modello mentale di SVN e l'archivio: un posto condiviso. Il modello di Git e piu come l'email.
Cosa SVN ha fatto bene
- Semplice da spiegare.
- Access control granulare.
- File locking per binari non mergeabili.
- Numeri di revisione lineari.
- Stabile per repository molto grandi.
Cosa Git ha fatto bene
- Branch e merge economici.
- Storia locale completa.
- Modello distribuito.
- Content addressing basato su SHA.
- Ecosistema vasto.
Comandi quotidiani a confronto
# 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
Branching
# SVN branch
svn copy https://svn.example.com/repo/trunk \
https://svn.example.com/repo/branches/feature -m "Branch"
# Git branch
git checkout -b feature
Perche Git ha vinto quote di mercato
Tre fattori: gli effetti di rete di GitHub dal 2008, la dominanza di Linux e la scelta del kernel di Git, e l'ascesa del cloud.
Quando SVN rimane sensato
- Grandi repository binari.
- Ambienti strettamente controllati.
- Pipeline tooling consolidate.
Coesistenza
Strumenti come git-svn consentono ai team di usare Git localmente contro un server SVN.