Versionsverwaltungssysteme

Eine Versionsverwaltung ist ein System, das zur Versionierung und Aktualisierung von Quelltexten verwendet wird. Hierzu werden Änderungen erfasst und alle Versionsstände der Dateien in einem Archiv mit Zeitstempel und Benutzerkennung gesichert. Versionsverwaltungssysteme werden typischerweise in der Softwareentwicklung eingesetzt, einige Systeme können auch Zugriffsrechte verwalten. Die Versionsverwaltung ist eine Form des Variantenmanagements. Die übergreifende Disziplin ist das Software Configuration Management (SCM). Sie ermöglicht auf die aktuelle Version oder auf die archivierten Stände zuzugreifen.

Quelle; damit steht dieser Absatz (wie auch andere) steht damit unter der Lizenz Creative Commons Attribution/Share Alike verfügbar.

Bei der lokalen Versionsverwaltung wird oft nur eine einzige Datei versioniert. Sie findet auch heute noch Verwendung in Büroanwendungen, die Versionen eines Dokumentes in der Datei des Dokuments selbst speichern. Auch in technischen Zeichnungen werden Versionen zum Beispiel durch einen Änderungsindex verwaltet.

Vertreter sind SCCS und RCS.

Diese Art ist als Client-Server-System aufgebaut, sodass der Zugriff auf ein Repository auch über Netzwerk erfolgen kann. Durch eine Rechteverwaltung wird dafür gesorgt, dass nur berechtigte Personen neue Versionen in das Archiv legen können. Die Versionsgeschichte ist hierbei nur im Repository vorhanden. Dieses Konzept wurde vom Open Source Projekt CVS populär gemacht, mit SVN neu implementiert und von vielen kommerziellen Anbietern wie ClearCase oder Perforce verwendet.

Prominentester Vertreter ist Subversion.

Die verteilte Versionsverwaltung verwendet kein zentrales Repository mehr. Jeder, der an dem verwalteten Projekt arbeitet, hat sein eigenes Repository und kann dieses mit jedem beliebigen anderen Repository abgleichen. Die Versionsgeschichte ist dadurch genauso verteilt. Änderungen können lokal verfolgt werden, ohne eine Verbindung zu einem Server aufbauen zu müssen.

Im Gegensatz zur zentralen Versionsverwaltung kommt es nicht zu einem Konflikt, wenn mehrere Benutzer dieselbe Version einer Datei ändern. Die sich widersprechenden Versionen existieren zunächst parallel und können weiter geändert werden. Sie können später in eine neue Version zusammengeführt werden. Dadurch entsteht ein gerichteter azyklischer Graph (Polyhierarchie) anstatt einer Kette von Versionen.

Vertreter sind Bazaar, Darcs, Git, Mercurial.

Links