CVSvsSubversion
Aus SKM Wiki
[bearbeiten] Unterschied CVS / Subversion
| CVS | Subversion | |
| Atomare commits | Nein | Ja |
| Umbenennung/Verschieben von Dateien und/oder Verzeichnissen | Nein. | Ja |
| Kopieren von Dateien und/oder Verzeichnissen | Nein | Ja |
| Repository Replication | Ja aber indirekt durch die Nutzung von CVSup by John Polstra (Benötigt auf einen cvsupd Installation) | Ja (entweder via svnsync seit 1.4 oder kommerziell via WANdisco oder Chia-Ling Kao's SVN::Mirror Script oder per svn-push Utility von Shlomi Fish). |
| Propagierung von Änderung in ein anderes Repository | Nein | Ja (entweder via svnsync seit 1.4 oder kommerziell via WANdisco oder Chia-Ling Kao's SVN::Mirror Script oder per svn-push Utility von Shlomi Fish). |
| Repository Zugriffsrechte | Eingeschränkt. Es ist möglich mithilfe der Hook-Scripte in CVS entsprechende Zugriffsrechte zu simulieren. | Ja. Mit WebDAV (Rechte pro Pfad und Nutzer einstellbar) oder LDAP oder per Hook-Script völlig eigenständiges System implementierbar. |
| ChangeSet Unterstützung | Nein. Fileorientiert. | Je nach dem was man unter einem ChangeSet versteht Ja/Nein |
| Zeilenweise Änderungshistorie | Ja, per cvs annotate | Ja, per svn blame |
| Erzeugung Tag | Ja.
Die Zeit bis ein Tag erzeugt ist, hängt von der Anzahl der Dateien im Projekt ab. cvs tag TAGNAME | Ja.
Konstante Zeit (ca. 1-2 Sekunden). svn cp URL/trunk URL/tags/TAGNAME |
| Erzeugung Branch | Ja.
Die Zeit bis ein Branch erzeugt ist, hängt von der Anzahl der Dateien im Projekt ab. cvs tab -b BRANCH_NAME Semantische Unterscheidung zwischen Tags und Branches | Ja.
Konstante Zeit (ca. 1-2 Sekunden). svn copy URL/trunk URL/branches/BRANCH_NAME |
| Cherry Picking | Nein.
Es kann immer nur der gesamte Branch gemerged werden. cvs update -j BRANCH_NAME | Ja.
Es können auch Teile eines Branches germerged werden. svn merge -r From:To URL/branches/BRANCH_NAME |
- Atomare Commits
- Unter diesem Begriff ist zu verstehen, dass bei einem Fehlschlag einer Teiloperation (z.B. Konflikt etc.) in nur einer Datei die gesamte Operation abgebrochen wird. Das gilt aber auch für Fehler während der Übertragung der Daten in das Repository (Netzwerkfehler etc.).
