Was wir mit Performance meinen
"Performance" in der Versionskontrolle ist multidimensional.
Clone versus Checkout
# SVN: fast for first checkout, slow for history queries
svn checkout https://svn.example.com/repo trunk
# Git: slower clone, instant history thereafter
git clone https://git.example.com/repo.git
Lokale Operationen
git log --since='1 month'
svn log --limit 100
Branch-Operationen
Git ist typischerweise 10-100x schneller fur Branch-Switching.
Working-Tree-Grosse
SVN kann Unterverzeichnisse gunstig auschecken.
Repository-Grosse im Massstab
Git speichert die volle Historie lokal. SVN serviert nur das, was der Client anfordert.
Konkurrierende Writer
SVN serialisiert Commits am Server.
Netzwerk-Bandbreite
Git pusht nur Deltas. SVN sendet die geanderten Dateien fur jeden Commit.
Speicher auf dem Server
Git's Pack-Files verwenden aggressive Delta-Kompression.
Das tagliche Verdikt
Fur ein typisches 100k-LOC-Projekt fuhlen sich Git-Operationen sofort an und SVN-Operationen trage.
Wo SVN weiter skaliert
- Massive Monorepos binaren Inhalts.
- Read-heavy Zugriff.
- Begrenzte Bandbreite zu Clients.