Erst gucken, dann machen: SubVersion TODO: Merge.

Subversion (svn) ist eine Open Source Software zur Versionsverwaltung. Da es viele Schwächen des in Entwicklerkreisen sehr beliebten Programms CVS behebt, wird Subversion oft als dessen Nachfolger bezeichnet, obwohl es sich um ein eigenständiges Projekt handelt. Es ist jedoch absichtlich von der Bedienung sehr ähnlich gehalten. CVS-Umsteiger werden es deshalb zu schätzen wissen, dass man bei den Befehlen lediglich das cvs durch svn ersetzen muss. Zusätzlich zu vielen neuen Features, werden fast alle Funktionen von CVS unterstützt. Mit cvs2svn existiert ein Konverter, mit dem ein CVS-Repository zu Subversion konvertiert werden kann. Subversion wird seit Anfang 2000 bei CollabNet entwickelt und erreichte im Februar 2004 die stabile Version 1.0.

Inhaltsverzeichnis [AnzeigenVerbergen] 1 Vorteile gegenüber CVS

2 Nachteile gegenüber CVS

3 Anmerkung zur Komplexität von svn

4 Weblinks

Vorteile gegenüber CVS

In Subversion können Dateien (und Verzeichnisse) auch umbenannt und verschoben werden. In CVS muss eine Datei an der alten Stelle gelöscht und an der neuen Stelle wieder eingefügt werden, wobei die Historie der Datei nicht mitkopiert wird. Subversion kann auch Verzeichnisse und Dateiberechtigungen (rwx) verwalten. Subversion bietet einen verbesserten Umgang mit Binärdaten. Es erkennt binäre Dateien (beispielsweise Bilder oder Audiodateien) automatisch und es werden (wie bei Textdateien) nur die Differenzen zwischen den geänderten Versionen gespeichert. Commits sind in Subversion atomar, weshalb eine Änderung entweder komplett oder gar nicht ins Repository gespeichert wird. Verbindungsabbrüche und mehrere zeitgleiche Commits können somit nicht zu inkonsistenten Zuständen führen. Das Versionsschema von Subversion bezieht sich nicht mehr auf einzelne Dateien sondern auf das ganze Repository. Bei jedem Commit erhöht sich die Revisionsnummer aller Dateien. Somit kann man einfacher eine exakte Version beschreiben (z. B. "Version 2841" statt "Version vom 23. März 2004 20:56:31 GMT"), allerdings bedeutet dies auch, dass sich zwei Revisionen einer Datei nicht unbedingt unterscheiden müssen. Zusätzlich zu einem eigenen Server und der Speicherung im lokalen Dateisystem existiert auch ein Modul für den Apache 2 Webserver, mit dem die Daten auch mit der HTTP/HTTPS-Erweiterung WebDAV übertragen werden können. Geschwindigkeit: einige Operationen sind deutlich schneller als bei CVS (update, tagging, branching)

Nachteile gegenüber CVS

Repository-Grösse steigt an. Arbeitsverzeichnisse werden ebenfalls als Kopie gehalten (mehr Platzbedarf). Geschwindigkeit: Einige svn-Operationen sind bis zu 6-mal langsamer als bei cvs. Nicht so gut getestet wie cvs. Benötigt den Apache HTTP Server, wenn das WebDAV-Feature genutzt werden soll. [Quelle]

Anmerkung zur Komplexität von svn

minimal:

Berkely-DB 4.x Apache Portable Runner erweiterte Funktionalität:

XML-Parser Expat Python 2.x Apache 2 OpenSSL oder andere SSL-Implementation Neon Nicht alle dieser Komponenten sind immer notwendig. Apache2 und Neon sind für die WebDAV-Nutzung notwendig, will man sie nicht verwenden braucht man diese Pakete nicht. Python ist notwendig für einige mitgelieferte Skripte zum Testen, für die Lauffähigkeit des Basispakets ist es nicht notwenig. Eine SSL-Implementierung benötigt man für WebDAV, wenn man es verschlüsselt anbieten will. Für eine Installation der Basisfunktionalität ist nur die Berkeley-DB und die Apache-Portable-Runner-Library notwendig. Die angegebenden Komponenten müssen beschafft werden, in der korrekten Version vorliegen, in der richtigen Reihenfolge nachinstalliert werden und entsprechend konfiguriert und kompiliert werden, sollten sie nicht vorhanden sein. (Quelle: Linux Enterprise, 5.2003, S. 38 ff.) Allerdings kann man für Unix-Systeme auch RPMs verwenden, die für die meisten Systeme vorhanden sind. Unter Windows liegt ebenfalls eine fertige Binärversion vor, die ohne großen Aufwand installiert werden kann. Die Einrichtung eines Repositories besteht - wie beim Vorgänger CVS - aus dem Aufruf eines Befehls. Bei lokalem Zugriff kann man nun sofort loslegen. Will man Subversion als Server konfigurieren, hängt der Aufwand stark von der gewählten Methode ab, ist jedoch identisch mit dem anderer Systeme wie CVS.

Die Anwendung von Subversion ist für Laien ungeeignet, man benötigt Kenntnisse über Versionskontrolle, wie bei anderen Versionskontrollsystemen auch. Die Zielgruppe eines jeden Versionskontrollsystems sind jedoch Entwickler, von denen entsprechende Kenntnisse erwartet werden.

Andere Stimmen sind genau der gegenteiligen Meinung, nämlich das es unnötig und auch nicht zumutbar ist, dass jeder Entwickler sich tiefere Administrator-Kennnisse aneignen muss, bevor er als Entwickler mit svn arbeiten kann. Zitat: "Die Administration von svn unterscheidet sich natürlich grundlegend vom Gebrauch von svn als Benutzer" (Quelle: Linux Enterprise, 5.2003, S. 41)

Weblinks

Subversion-Homepage

svn (zuletzt geändert am 2007-12-23 22:48:25 durch localhost)