Heim >häufiges Problem >Was ist der Unterschied zwischen SVN und CVS?
Unterschiede: 1. Die Versionsnummer von CVS basiert auf der automatisch steigenden Seriennummer der Datei, während die Versionsnummer von SVN auf der globalen automatisch steigenden Seriennummer basiert, nicht nur für Dateien, sondern auch für Verzeichnisse auf RCS-Dateien, während SVN auf einer relationalen Datenbank oder einer Reihe von Binärdateien basiert. 3. CVS erlaubt ein willkürliches Rollback, aber SVN erlaubt kein Rollback nach der Übermittlung. 4. SVN unterstützt das „Null-oder-Eins“-Transaktionsprinzip; CVS unterstützt dies nicht; 5. CVS unterstützt die lokale Dateiumbenennung nicht, während SVN dies unterstützt. 6. CVS verfügt über vier Berechtigungen, während SVN nur drei Berechtigungen hat.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Subversion Version 1.14, Dell G3-Computer.
CVS (Concurrent Versions System):
ist ein Parallelversionssystem für die Entwicklung von Quellcode. Es ist für verschiedene Plattformen verfügbar, darunter Linux, Unix und Windows NT/2000/XP usw. CVS ist kostenlos und Open Source und bietet Versionsverwaltung für Projekte.
Funktionseinführung:
1. Einheitliche Codeverwaltung, Speicherung des Verlaufs aller Codedateiänderungen. Durch die zentrale und einheitliche Verwaltung des Codes ist es einfach, neu hinzugefügte oder gelöschte Dateien anzuzeigen und alle Spuren von Codeänderungen zu verfolgen. Sie können nach Belieben jede frühere historische Version wiederherstellen. Und vermeiden Sie schwerwiegende Fehler, die durch unterschiedliche Versionen entstehen.
2. Die perfekte Konfliktlösungslösung kann Dateikonfliktprobleme einfach lösen, ohne dass andere Dateivergleichstools und manuelles Einfügen und Kopieren erforderlich sind.
3. Verwaltung von Codeberechtigungen. Für verschiedene Benutzer können unterschiedliche Berechtigungen festgelegt werden. Es können Passwörter, Nur-Lese-, Änderungs- und andere Berechtigungen für Zugriffsbenutzer festgelegt werden. Über Skripte im CVS-ROOT-Verzeichnis wird eine Schnittstelle für entsprechende Funktionserweiterungen bereitgestellt, die nicht nur eine feinkörnige Berechtigungssteuerung durchführen kann, sondern auch mehr personalisierte Funktionen.
4. Unterstützt praktische Versionsfreigabe- und Verzweigungsfunktionen.
SVN (Subversion):
Der vollständige Name von SVN ist Subversion, ein Versionskontrollsystem. SVN ist die Abkürzung für Subversion. Es handelt sich um ein Open-Source-Versionskontrollsystem, dessen Entwurfsziel darin besteht, CVS zu ersetzen. Viele Versionskontrolldienste im Internet sind von CVS auf Subversion migriert.
SVN ist ein zentralisiertes Dateiversionsverwaltungssystem.
Der Kern der zentralisierten Codeverwaltung ist der Server. Alle Entwickler müssen Code vom Server abrufen, bevor sie mit der Arbeit eines neuen Tages beginnen, ihn dann entwickeln und schließlich Konflikte lösen und einreichen. Alle Versionsinformationen werden auf dem Server abgelegt. Wenn Sie vom Server getrennt sind, können Entwickler grundsätzlich nicht arbeiten.
(SVN) Zentralisierter Verwaltungsworkflow:
Der Kern der zentralisierten Codeverwaltung ist der Server. Alle Entwickler müssen den Code vom Server abrufen, bevor sie mit der Arbeit eines neuen Tages beginnen, ihn dann entwickeln und schließlich Konflikte lösen . Alle Versionsinformationen werden auf dem Server abgelegt. Wenn Sie vom Server getrennt sind, können Entwickler grundsätzlich nicht arbeiten.
Der Verwaltungsprozess ist wie folgt:
Der Unterschied zwischen SVN und CVS
CVS | SVN | |
Über die Versionsnummer | Automatisch inkrementierende Seriennummer basierend auf der Datei. | Basierend auf globaler, sich selbst erhöhender Seriennummer, nicht nur für Dateien, sondern auch für Verzeichnisse usw. |
Speichertypformat | CVS ist ein Versionskontrollsystem, das auf RCS-Dateien basiert. Jede CVS-Datei ist nur eine normale Datei mit einigen zusätzlichen Informationen. Diese Dateien wiederholen einfach die lokale Dateibaumstruktur. Daher müssen Sie sich keine Sorgen über einen Datenverlust machen. Sie können die RCS-Datei bei Bedarf manuell ändern. | SVN basiert auf einer relationalen Datenbank (BerkleyDB) oder einer Reihe von Binärdateien (FS_FS). Dies löst einerseits viele Probleme (z. B. paralleles Lesen und Schreiben von gemeinsam genutzten Dateien) und fügt viele neue Funktionen hinzu (z. B. Transaktionsfunktionen der Laufzeit). Andererseits wird die Datenspeicherung jedoch undurchsichtig oder nicht mehr so benutzerfreundlich. Deshalb sind Softwaretools für Lager (Datenbanken) so wichtig geworden. |
Zugriffsgeschwindigkeit | ist relativ langsam; da es auf einer unidirektionalen (Server -> Client) differenzierten Dateiübertragung basiert | Insgesamt ist SVN aufgrund unterschiedlicher Architekturimplementierungen tatsächlich viel schneller als CVS; Bidirektionale differenzielle Dateiübertragung. Es überträgt nur sehr wenige Informationen über das Netzwerk und unterstützt mehr Funktionen im Offline-Modus. Aber es hat seinen Preis. Der Preis für die Geschwindigkeit ist der riesige Speicherplatz (vollständige Sicherung aller Arbeitsdateien). |
Metadaten | Erlaubt nur die Speicherung von Dateien | Ermöglicht einer Datei, alle benennbaren Attribute zu haben. Die Funktion ist sehr vollständig, aber ich weiß nicht, wofür sie verwendet wird. Der Dateityp |
SVN kümmert sich um alle Dateitypen und erfordert keine manuellen Vorgänge; da die Speicherung auf Binärdaten basiert Dateien müssen separat bearbeitet werden). | SVN erlaubt kein Rollback nach der Übermittlung. Wir empfehlen, am Ende die gute Version im Repository hinzuzufügen und die beschädigte Version zu überschreiben. Die beschädigte Version wird trotzdem in der Datenbank gespeichert. | |
Das „Null oder Eins“-Transaktionsprinzip in CVS ist überhaupt nicht implementiert. Wenn Sie mehrere Dateien einchecken (zum Server hinzufügen), kann es sein, dass einige davon abgeschlossen sind und andere nicht. Als Faustregel gilt: Korrigieren Sie diese manuell und checken Sie die verbleibenden Dateien (nicht alle Dateien) erneut ein. Diese Dateien werden dann in zwei Phasen eingecheckt. Bisher ist es jedoch noch zu keinem Data-Warehouse-Schaden durch das Fehlen dieser Funktion gekommen. | Unterstützt das Transaktionsprinzip „Null oder Eins“, was einen großen Vorteil von SVN darstellt. | |
CVS ist ein altes System. Zunächst bestand CVS nur aus einigen Skriptdateien, die RCS verwendeten. Später wurden diese Skripte in einer einzigen Anwendung zusammengefasst, die interne Struktur musste jedoch noch verbessert werden. Bis heute gibt es immer noch Leute, die versuchen, CVS von Grund auf neu zu schreiben, aber es ist ihnen nicht gelungen. Wir haben einmal versucht, den Client-Code für eine bessere Integration neu zu schreiben, aber es war erfolglos. Nun glauben wir nicht, dass CVS hinsichtlich der Funktionalität sehr weit kommen kann. | Subversion-Entwickler verbringen wirklich viel Zeit mit der internen Architektur. Wir wissen immer noch nicht, wie wahr diese Entscheidungen waren und so weiter. Eines ist jedoch sicher: Der Code ist gut skalierbar und es wird auch an der Verbesserung gearbeitet. | |
Unterstützt die Übermittlung lokaler Dateien nicht. | Beim Löschen können sowohl lokale Dateien als auch Bibliotheksdateien gelöscht werden.Ordner können nicht gelöscht werden | Unterstützt das Umbenennen und Senden von Dateien. Das System fordert Sie auf, alte Dateien zu löschen und neue Dateien zu erstellenDas Löschen lokaler Dateien und das Senden von Dateien in der Bibliothek werden ebenfalls gelöscht Laden Sie die entsprechenden Dateien hoch. Grausames Löschen? Ich kenne diese Methode derzeit nur ...)|
Zweige erstellen und Grundlinien | CVS erstellt Beim Verzweigen müssen alle verzweigten Dateien nacheinander bearbeitet werden. Daher sind die Kosten für die Einrichtung einer Verzweigung (hauptsächlich die für die Einrichtung einer Verzweigung erforderliche Zeit oder die verbrauchten Rechenressourcen) proportional zur Anzahl der beteiligten Dateien Je größer das Projekt, desto mehr Dateien sind vorhanden und desto höher sind die Kosten für die Einrichtung einer Baseline (Tag). | |
(Teilen von Lernvideos: | Basic Programming Video | )
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen SVN und CVS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!