Subversion ( SVN) und das Concurrent Versions System (CVS) sind zwei der bekanntesten und am weitesten verbreitete Version Control Systems für die Verwaltung der Hunderte von Dokumenten , die in der typischen Programmierung Projekt vorhanden verwendet . Sowohl in ihren eigenen Weg , damit ein ganzes Team von Programmierern , auf die gleichen Dateien arbeiten, während die Minimierung der Zeit und Mühe es braucht, um die Änderungen zusammenzuführen , aber sie sind sehr verschieden , wie sie funktionieren. Storage Format
CVS speichert alle Dateien im Projekt in einer Verzweigung Reihe von Ordnern auf dem Dateisystem . Auf der anderen Seite , speichert SVN seine Dateien in einer Datenbank : entweder BerkleyDB oder FSFS . Dies macht CVS langsamer als SVN , aber es macht es auch so , dass CVS -Dateien können in einer Katastrophe mit nur gewöhnliche Datei -Manager-Werkzeuge wie der Windows Explorer oder der Bash-Shell aufgerufen werden. SVN -Datenbanken können beschädigt werden, und spezielle Werkzeuge erforderlich sind , um Dateien abzurufen aus dem Repository , wenn dies geschieht .
Transaktionen
CVS speichert Projekte auf Datei -by- Datei-Basis . Dies macht das System etwas einfacher , da der Programmierer kann ein-und auschecken einzelne Dateien , aber es hat eine unangenehme Nebenwirkung . Programmierer neigen nicht dazu, Änderungen an nur einer Datei machen . Vielmehr erfordern Änderungen an einer Datei kleinen Modifikationen für andere. Mit CVS , ist es möglich, dass ein Netzwerk-Problem einige der geänderten Dateien auf dem Repository aktualisiert werden dazu führen , möglicherweise brechen die Build-und was eine große Verwirrung in der Mannschaft , wenn das Problem nicht abgefangen wird sofort . SVN SVN Dateien als Projekt-und das, indem es eine " Transaktion "-Konzept : Entweder werden alle Änderungen erfolgreich an den Server übermittelt , oder gar nichts verpflichtet
Dateitypen
.
CVS wurde entwickelt, um sich nur mit Klartext-Daten ( wie normalerweise im Quellcode gefunden) . Allerdings , es ist ein Programm, das selten Programmierung nicht enthalten zumindest einige Nicht-Text- Daten, wie beispielsweise grafische Symbole , benutzerdefinierte Mauszeiger und Logos. CVS kann geändert werden, um mit Nicht-Text- Daten umgehen , aber SVN unterstützt alle Dateitypen direkt ohne weitere Änderungen oder Anpassungen .
Branchen
CVS , jede Datei erhält automatisch eine eigene Versionsnummer zugewiesen. Wenn das Projekt geprüft wird, wird die neueste Version der einzelnen Dateien für den Programmierer zur Verfügung gestellt. In SVN , hat das gesamte Projekt eine Version . Obwohl nie Dateien unnötig auf dem Server ( um Platz zu sparen ) dupliziert , ist die Schnittstelle , die dem Benutzer , dass jeder je begehen zum Server hergestellt ist sofort zugänglich , die ihnen von Versionsnummer , ohne angeben zu bauen Daten oder Tag-Nummern .