Was sind die Vorteile von SVN über CVS?

stimmen
56

Meine Firma ist mit CVS als unsere de-facto-Standard für die Quellcodeverwaltung. Allerdings habe ich eine Menge Leute sagen gehört, dass SVN ist besser.

Ich weiß, SVN ist neuer, aber anders als das, ich bin nicht vertraut mit all seinen Vorteilen.

Was ich suche ist ein guter und prägnanter Vergleich der beiden Systeme und stellt fest, keine Vorteile oder Nachteile des einzelnen in einer Java / Eclipse-Entwicklungsumgebung.

Veröffentlicht am 04/08/2008 um 15:06
quelle vom benutzer
In anderen Sprachen...                            


12 antworten

stimmen
54

CVS verfolgt einzige Änderung an einer Datei-für-Datei-Basis, während SVN insgesamt als neue Überarbeitung begehen verfolgt, was bedeutet, dass es einfacher ist, die Geschichte Ihres Projektes zu folgen. Fügen Sie die Tatsache, dass all moderne Source-Control-Software, das Konzept der Revision verwenden, so dass es viel einfacher zu wandern aus dem SVN ist, als es von CVS ist.

Es gibt auch das Atomproblem commit. Während ich es nur einmal begegnete, ist es möglich, dass zwei Menschen zusammen in CVS zu begehen miteinander in Konflikt geraten können, einige Daten zu verlieren und Ihre Kunden in einem inkonsistenten Zustand versetzt. Wenn frühzeitig erkannt, sind diese Probleme nicht, weil wichtige Daten immer noch irgendwo da draußen sind, aber es kann ein Schmerz in einer stressigen Umgebung sein.

Und schließlich, nicht viele Werkzeuge sind mehr um CVS entwickelt. Während die neuen und glänzende neue Tools wie Git oder Mercurial definitiv Tools fehlen noch, hat SVN eine ziemlich große Anwendungsbasis auf jedem System.

EDIT 2015 : Im Ernst, diese Antwort ist 7 Jahre alt geworden . Vergessen Sie SVN, gehen verwenden Git wie jeder andere auch!

Beantwortet am 04/08/2008 um 15:17
quelle vom benutzer

stimmen
18

Einer der vielen Vergleiche:

http://wiki.scummvm.org/index.php/CVS_vs_SVN

Nun ist dies sehr spezifisch für dieses Projekt, aber eine Menge Sachen apllies im Allgemeinen.

Pro Subversion:

  • Unterstützung für versioniert Umbenennungen / bewegt (nicht mit CVS): Fingolfin, Ender
  • Unterstützt Verzeichnisse nativ: Es ist möglich, sie zu entfernen, und sie sind versioniert: Fingolfin, Ender
  • Dateieigenschaften sind versioniert; nicht mehr „Ausführungs-Bit“ Hölle: Fingolfin
  • Insgesamt Revisionsnummer macht Build-Versionierung und Regressionstests viel einfacher: Ender, Fingolfins
  • Atomic verpflichtet: Fingolfin
  • Intuitive (verzeichnisbasierte) Verzweigen und Markieren: Fingolfin
  • Einfachere Hook-Scripts (pre / post begehen, usw.): SumthinWicked (Ich benutze es für Doxygen nach Commits)
  • Verhindert das versehentliche Begehung Konflikte in Dateien: Salzige-Pferd, Fingolfins
  • Unterstützung für benutzerdefinierte ‚diff‘ Befehl: Fingolfin
  • Offline diffs, und sie sind sofort: sev
Beantwortet am 04/08/2008 um 15:09
quelle vom benutzer

stimmen
14

SVN hat drei Hauptvorteile gegenüber CVS

  • es ist schneller
  • unterstützt die Versionierung von Binärdateien
  • und fügt Transaktions commit (alles oder nichts)
Beantwortet am 04/08/2008 um 15:35
quelle vom benutzer

stimmen
7

Das Subversion Buch hat einen Anhang , die wichtige Unterschiede von CVS Details, die Sie Ihre Entscheidung treffen kann helfen. Die beiden Ansätze sind mehr oder weniger die gleiche Idee , aber SVN wurde speziell so in CVS zu beheben langjährige Fehler ausgelegt, zumindest theoretisch, SVN wird immer die bessere Wahl sein.

Beantwortet am 04/08/2008 um 15:14
quelle vom benutzer

stimmen
4

Eine Sache, nicht zu übersehen ist Ökosystem. Ich arbeite in einem CVSNT Geschäft, und ich war immer mehr Open-Source-Tools unterstützen SubVersion standardmäßig zu finden.

Beantwortet am 18/08/2008 um 18:22
quelle vom benutzer

stimmen
2

Als jemand, der das Umschalten zwischen CVS und SVN in der Mitte ist (zunächst wir alle unsere Projekte mit cvs2svn geschaltet und dann beschlossen, dass wir nur mit svn an neuen Projekten übergehen würde), sind hier einige der Probleme, die wir hatten.

  • Zusammenführen und Verzweigung sind sehr unterschiedlich, und wenn Sie häufig verzweigen und zusammenführen, es sei denn, Sie haben SVN 1.5 auf Ihrem Server laufen müssen wissen, wann Sie verzweigtem (dies ist nicht ganz klar in den Tortoise SVN-Dialoge). Michael sagt die Verzweigung und Zusammenführung intuitiv, ich würde behaupten, dass nach der Verwendung von CVS für 10 Jahre, ist es nicht.
  • Wenn Ihr den SVN-Server unter Linux ausgeführt werden, kann es schwierig sein, Ihre SA zu erhalten, SVN 1.5, zu bewegen, wie die Standard-1.4x installieren
  • Konflikte Merging ist nicht annähernd so einfach oder so klar (zumindest für mich und meine Mitarbeiter) in TortoiseSVN, wie es in TortoiseCVS ist. Der drei Scheiben Ansatz nimmt etwas gewöhnungsbedürftig und die WinMerge (mein bevorzugtes Merge-Tool) nicht über ein Dreifenster merge tun.
  • Achtung: Viele der Online - Tutorials und Zeitschriftenartikel ich natürlich verzweigen nicht gelesen haben und zusammenführen, sollten Sie Ihre Haupt - Repository als einrichten https://svn.yoursvnserver.com/repos/YourProject/Trunk und Zweige auf https: / /svn.yoursvnserver.com/repos/YourProject/Branches/BranchX . Sie können bis reinigen , wenn Sie Ihre repos an der falschen Stelle starten, aber es führt zu Verwirrung.
Beantwortet am 04/09/2008 um 18:44
quelle vom benutzer

stimmen
2

Ich werde zweiten Eridius' Vorschlag von Git, aber ich würde es zu dem anderen DRCS erweitern (Distributed Revision Control System) wie Mercurial und Bazaar .

Diese Produkte sind ziemlich neu und die Höhe der Werkzeuge und die Integration mit ihnen scheint niedrig zur Zeit (basierend auf meiner ersten Forschung). Ich würde sagen, dass sie da draußen am besten geeignet, um die Power-Entwickler waren (und hier ;-)).

Auf der anderen Seite, was nicht zur Zeit CVS für Sie tun? Von Ihrer ersten Frage, Sie haben nicht wirklich „ CVS auf dieses saugt, was könnte ich stattdessen verwenden?“

Sie haben gotta die Kosten für jede mögliche Migration gegen die Vorteile abzuwägen. Für ein bestehendes Projekt, glaube ich, dass es schwer sein würde, zu rechtfertigen.

Beantwortet am 18/08/2008 um 18:04
quelle vom benutzer

stimmen
1

CVS (Concurrent Versions System) und SVN (Subversion) sind zwei Versionskontrolle Dateisysteme, die von Teams im Volks verwendet werden, die auf einem einzigen Projekt zusammenarbeiten. Diese Systeme ermöglichen es den Mitarbeitern den Überblick über die Änderungen zu halten, die gemacht werden und wissen, wer entwickelt, welche und ob eine Verzweigung sollte dem Hauptstamm oder nicht angewendet werden. CVS ist das viel ältere der beiden, und es hat die Standard-Collaboration-Tool für viele Menschen. SVN ist viel neuere und es bringt eine Menge Verbesserungen die Anforderungen der meisten Menschen anzusprechen.

Beantwortet am 17/07/2018 um 07:19
quelle vom benutzer

stimmen
1

btw: CVSNT unterstützt atomare Commits

Beantwortet am 18/08/2008 um 17:22
quelle vom benutzer

stimmen
0

Nun, ein paar Dinge, die ich fühle, macht svn genial.

  1. Die SVN-Altassian Tiegel Kombination ist eine weit überlegene Methode der Bewertungen und Qualitätskontrollen
  2. Bessere Verwaltung von Konflikten und verschmilzt
  3. Es ist offensichtlich schneller für Kassen nehmen, Commits durchführen, usw.
  4. Das Atom begeht Problem - Es ist möglich, dass zwei Menschen zusammen in CVS zu begehen miteinander in Konflikt geraten können, einige Daten zu verlieren und Ihre Code-Basis in einem inkonsistenten Zustand versetzt

Die Migration kann leicht in wenigen Stunden mit cvs2svn erfolgen.

Beantwortet am 18/09/2016 um 14:01
quelle vom benutzer

stimmen
0

Sie können auch nur den neuesten Code aus dem CVS in SVN und einfrieren Ihre aktuelle CVS-Repo migrieren wählen. dies wird die Migration erleichtern und Sie könnten auch Ihre Legacy-Versionen in der alten CVS-Repo bauen.

Beantwortet am 08/10/2008 um 17:19
quelle vom benutzer

stimmen
0

Sie sollten einen Blick auf nehmen Git statt SVN. Es ist ein DVCS das ist blitzschnell und sehr leistungsfähig. Es ist nicht so benutzerfreundlich wie SVN, aber es ist in dieser Hinsicht zu verbessern, und es ist nicht , dass schwer zu lernen.

Beantwortet am 07/08/2008 um 00:09
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more