Die Entscheidung framen
"Welches VCS sollten wir verwenden?" hat selten eine richtige Antwort.
Workload-Beschrankungen
- Hauptsachlich Textcode, haufiges Branching → Git.
- Hauptsachlich binarer Inhalt, exklusive Locks essenziell → Perforce.
- Gemischt, mit sauber trennbarem Code und Assets → beide betreiben.
- Zentralisierte Kontrolle mit einfachem Branching → SVN bleibt akzeptabel.
Team-Beschrankungen
- Verteilt, oft offline → verteiltes VCS (Git, Mercurial).
- Single-Site, immer online → beide Modelle funktionieren.
- Gemischte Ingenieure und Nicht-Ingenieure → freundlichere UX zahlt.
- Open-Source-Mitwirkende → Git, ohne Frage.
Okosystem-Beschrankungen
- CI/CD-Modernitat → Git uberwaltigend.
- Spielengine / DCC-Tooling → oft Perforce, mit Git fur Code.
- Existierende Infrastruktur → Kontinuitat hat realen Wert.
Compliance-Beschrankungen
- Per-Path-Zugriffskontrolle → Perforce oder SVN.
- Server-seitiges Audit von Lese-Operationen → zentralisierte Systeme.
- Signierte Commits und Supply-Chain-Attestation → Git mit sigstore-Klasse-Tooling.
Kostenbeschrankungen
- Bootstrap ohne Budget → Git auf GitHub Free Tier, GitLab CE oder Gitea.
- Finanzierte Enterprise mit Binar-Bedurfnissen → Perforce rechtfertigt sich.
- Mittelgrosses SaaS-Team → bezahlte GitHub- oder GitLab-Stufe.
Entscheidungsbaum
1. Is most of your content unmergeable binary?
Yes → Perforce. Stop.
No → continue.
2. Do you need per-path access control?
Yes → SVN, Perforce, or Git with significant tooling investment.
No → continue.
3. Do contributors work offline or distributed?
Yes → Git (or Mercurial). Continue.
No → either model is fine.
4. Do you need GitHub-style ecosystem?
Yes → Git. Stop.
No → consider Mercurial for UX, SVN for centralisation.
5. Default → Git.
Beispielszenarien
- Web-SaaS-Startup, 5 Ingenieure → Git auf GitHub oder GitLab.
- Spielestudio, 200 Personen → Perforce fur Assets, Git fur Code.
- Regierungsagentur → selbst-gehosteter GitLab oder Perforce.
- Open-Source-Bibliothek → Git auf GitHub.
- Internes Unternehmenstooling → Git ist immer noch die Antwort.
- Hardware-Designfirma → Perforce; moglicherweise Git fur eingebettete Firmware.
Migrationspfade
# SVN to Git
git svn clone --stdlayout --authors-file=authors.txt <url>
# Mercurial to Git
~/fast-export/hg-fast-export.sh -r <hg-repo>
# Perforce to Git
git p4 clone //depot/main@all my-git-repo
Analyse-Paralyse vermeiden
Wenn Sie sich nicht entscheiden konnen, ist die Antwort Git.
Die Wahl uberprufen
Alle zwei Jahre neu bewerten.