In den letzten Jahren habe ich mit verschiedenen Versionskontrollsystemen gearbeitet. Für mich war einer der grundlegenden Unterschiede zwischen ihnen, ob sie Dateien einzeln versionieren (jede Datei hat eine eigene Versionsnummer und einen eigenen Verlauf) oder das Repository als Ganzes (ein "Commit" oder eine Version stellt eine Momentaufnahme des gesamten Repository dar). .
Einige "Per-File" -Versionskontrollsysteme:
- CVS
- Klarer Fall
- Visual SourceSafe
Einige Versionskontrollsysteme für das gesamte Repository:
- SVN
- Git
- Mercurial
Meiner Erfahrung nach haben die Versionskontrollsysteme pro Datei nur zu Problemen geführt und erfordern viel mehr Konfiguration und Wartung, um sie korrekt zu verwenden (z. B. "Konfigurationsspezifikationen" in ClearCase). Ich hatte viele Fälle, in denen ein Mitarbeiter eine nicht zusammenhängende Datei änderte und eine idealerweise isolierte Entwicklungslinie durchbrach.
Was sind die Vorteile dieser Dateiversionskontrollsysteme? Welche Probleme haben Versionskontrollsysteme mit "gesamtem Repository", die Dateiversionskontrollsysteme nicht haben?