Wie funktioniert die Versionskontrolle normalerweise? speichert es Diff-Dateien als eine Spur mit Hashes, um die Spur zu validieren?Wie funktioniert die Versionskontrolle?
Antwort
Verschiedene VCS verwenden unterschiedliche Ansätze. CVS erstellt zum Beispiel für jede Datei, die Sie festschreiben, eine Datei auf dem Server. Dies ist im Wesentlichen eine Datei im RCS-Format; CVS ist nur ein Wrapper um RCS, der die RCS-Befehle über viele Dateien in einem Verzeichnisbaum ausführt (RCS kann nur mit einzelnen Dateien arbeiten).
Die RCS-Datei enthält eine Liste der Änderungen (Versionsnummer, Checkin-Nachricht und wie viel geändert wurde). Danach kommt eine Kopie der aktuellen HEAD-Version. Der Rest der Dateien sind die Unterschiede zwischen den Versionen (long explanation).
Auf diese Weise kann CVS schnell die HEAD-Version (die am häufigsten angefordert wird) zurückgeben und es kann die anderen Versionen berechnen.
CVS führt keine Validierung durch; Wenn eine Ihrer Dateien beschädigt wird, benötigen Sie eine Sicherungskopie. Da CVS auf RCS basiert, kann es keine Verzeichnisse versionieren oder Renames nachverfolgen. CVS und RCS verwenden den Standardbefehl diff(1)
, um die Diffs zu erstellen.
Subversion (SVN) funktioniert ähnlich, aber fügt Versionsverwaltung von Verzeichnissen und Umbenennen. Darüber hinaus verwendet SVN einen besseren Diff-Algorithmus (xdelta), der ein kleineres Repository zur Verfügung stellt.
Auschecken Eric Sinks blog series on version control.
Auch Joel Spolsky schrieb Hg Init: a Mercurial tutorial, die mich schließlich "bekommen", worum es bei der verteilten Quellcodeverwaltung geht.
Es gibt mehr als eine Art und Weise die Haut eine Katze ...
Darcs ist sehr unterschiedlich und IMHO intuitiver als andere SCMs auch verteilt. Es gibt eine ausgezeichnete Anleitung für Anfänger, wie es funktioniert: Understanding Darcs.
- 1. ORM oder Datenbank, die wie Versionskontrolle funktioniert und verfolgt Geschichte
- 2. Portable Versionskontrolle?
- 3. Versionskontrolle im Vergleich zur traditionellen Versionskontrolle
- 4. Wie implementiert man die Versionskontrolle für die Webentwicklung am besten?
- 5. Wie weit gehen Sie Versionskontrolle?
- 6. Wie deaktivierst du die Versionskontrolle in Android Studio?
- 7. Verschlüsselte Versionskontrolle
- 8. iTunesConnect Versionskontrolle
- 9. Yocto Versionskontrolle
- 10. Speichern TFS Build-Pipeline in die Versionskontrolle
- 11. Versionskontrolle für Anfänger
- 12. Die Datei ist nicht unter Versionskontrolle
- 13. Wie kann ich die Versionskontrolle in phpstorm deaktivieren?
- 14. Versionskontrolle: Tags nachträglich erstellen
- 15. Versionskontrolle und Website-Verzweigung
- 16. Versionskontrolle für Word-Dokumente
- 17. Versionskontrolle für Shell-Skripte
- 18. Entfernen IntelliJ Project Versionskontrolle
- 19. Versionskontrolle von MDF-Dateien
- 20. Versionskontrolle für Grafiken
- 21. Embedding Versionskontrolle in App
- 22. Versionskontrolle für VBA-Datei
- 23. MySQL Versionskontrolle - Subversion
- 24. tfs Datenbankgröße - Versionskontrolle
- 25. Versionskontrolle für große Dateien
- 26. Workflow mit Versionskontrolle kompilieren
- 27. Versionskontrolle "in den Wolken"
- 28. Versionskontrolle und Visual Studio Lösungen
- 29. Versionskontrolle und testgetriebene Entwicklung
- 30. Refactoring Schön mit Versionskontrolle