Einer der Gründe, warum Programmierer SVN gegenüber CVS bevorzugen, ist, dass erstere atomare Commits zulassen? Was bedeutet das ?
svn
versioning
cvs
Aussenseiter
quelle
quelle
Antworten:
Dies bedeutet, dass beim Festschreiben an das Versionskontrollsystem entweder alles eingegeben wird, was festgeschrieben werden soll, ODER nichts ausgeführt wird.
Wenn Sie in CVS versuchen, einen Commit durchzuführen, kann der Commit für mehrere Dateien erfolgreich sein und bei mehreren anderen fehlschlagen (weil sie geändert wurden). Dadurch befindet sich das Repository in einem unglücklichen Zustand, da die Hälfte Ihres Commits nicht vorhanden ist und Sie wahrscheinlich Dinge in einem Zustand belassen haben, in dem sie nicht kompiliert werden können oder noch schlimmer. Jetzt müssen Sie sich beeilen und alle Änderungen integrieren, damit Sie die anderen Dateien festschreiben können, bevor eine andere Person ein Update durchführen muss und die fehlerhaften Änderungen erhält.
In SVN geschieht dies nicht - SVN schreibt entweder alles fest, was Sie geändert haben, oder es schlägt den gesamten Änderungssatz fehl. Auf diese Weise bleibt das Repository aufgrund von Commit-Problemen niemals in einem defekten Zustand.
quelle
Dies wird zB in Bye-bye CVS erklärt. Ich habe Artikel von Andy Lester umgewandelt worden :
Die Tatsache, dass CVS den Programmierer zwingt, die Zusammenführung sofort zu korrigieren, ist so kontraproduktiv wie es nur geht. Im Vergleich dazu ist eine Option zum Verzögern / Abbrechen / sorgfältigen Zusammenführen von Änderungen ein wesentlicher Vorteil.
Weitere Vorteile von SVN gegenüber CVS, die im obigen Artikel erläutert wurden, sind:
quelle
Dies bedeutet, dass alle Änderungen an allen Dateien in einer einzigen Transaktion festgeschrieben werden, sodass entweder alle erfolgreich sind oder keine.
Dies bedeutet, dass es weniger wahrscheinlich ist, dass Teilbearbeitungen im Repository eingecheckt werden, die dazu führen, dass Builds fehlschlagen. Man kann immer noch vergessen, alle relevanten Dateien einzuchecken, aber das ist eher ein Prozessproblem als ein Problem mit dem Versionssystem.
quelle