2009-05-18 18 views

Antwort

7

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.

Für eine Erklärung, wie Git funktioniert, siehe here.

0

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.