Was ist eine Versionsverwaltung?

Welche Arten gibt es und welche Vorteile hat die Versionsverwaltung? In der Textverarbeitung und Softwareentwicklung stellt sich manchmal nach stundenlangem Tüfteln heraus, dass die gerade getätigten Änderungen negative Auswirkungen auf das Projekt haben. Mithilfe einer Versionsverwaltung lässt sich in einem solchen Fall die Datei retten. Was das genau ist, welche Arten an Systemen es gibt und welche Vorteile die Versionsverwaltung noch hat, erfährst Du hier. Was ist eine Versionsverwaltung? Die Versionsverwaltung (Abgekürzt: VCS; Englisch für Version Control System) ist ein System, das die Änderungen protokolliert, die an einer Datei oder einer Reihe von Dateien über die Zeit hinweg getätigt wurden. So ist es auch später immer möglich, auf eine vorherige Version zurückzugreifen, da jede archivierte Version mit einem Zeitstempel und einer Benutzerkennung gespeichert wird. Zum Einsatz kommt die Versionsverwaltung insbesondere in der Softwareentwicklung zur Verwaltung der Quelltexte. Doch auch bei Büroanwendungen und bei Content-Management-Systemen wird kaum mehr auf die Versionsverwaltung verzichtet. Wie funktioniert eine Versionsverwaltung? Das System der Versionsverwaltung ist in der Lage, Arbeitskopien (organisiert in einem Verzeichnisbaum) mit den Daten aus dem Repository (engl. Aufbewahrungsort) zu synchronisieren. Das ist nötig, da es nur so möglich ist, mit den im Repository abgelegten Dateien zu arbeiten. Wird eine Version aus dem Repository in die Arbeitskopie übertragen, wird von einem Checkout, von Aus-Checken oder von Aktualisieren gesprochen. Die umgekehrte Übertragung von der Arbeitskopie in das Repository hingegen wird als Check-in, als Einchecken oder als Commit bezeichnet. Nun können die im Repository abgelegten Dateien mit diversen Programmen bearbeitet werden. Hierbei kann es sich um kommandozeilenorientierte Programme oder um solche mit grafischer Benutzeroberfläche handeln. In einigen Fällen kann das Programm aber natürlich auch in Form eines Plugins für die integrierte Softwareentwicklungsumgebung eingesetzt werden. In der Regel haben Nutzer die Wahl zwischen mehreren dieser Zugriffsmöglichkeiten. Was sind die Vorteile einer Versionsverwaltung? Die Versionsverwaltung macht es möglich, Änderungen an einer Datei oder an einer Gruppe von Dateien zu speichern. Allerdings wird hier nicht etwa nur die Version nach der letzten Änderung gespeichert. Zunächst wäre da die Ausgangsversion einer Datei, die gesichert wird. Wird nun eine Änderung vollzogen, wird auch diese Änderung gespeichert, allerdings bleibt gleichzeitig auch die Ausgangsversion bestehen. So ist es für den Nutzer möglich, immer auf eine vorherige Version zurückzugreifen, wenn es Probleme mit der aktuellen Version gibt. Gleichzeitig ist die Versionsverwaltung aber auch essenziell, um überhaupt mit den Dateien arbeiten zu können. Das System sorgt nämlich dafür, dass der aktuelle (sowie der ältere) Stand eines Projekts, das in Form eines Verzeichnisbaums gespeichert ist, mit dem Repository synchronisiert wird. Aufgrund der verschiedenen Versionsverwaltungssysteme gibt es darüber hinaus für jeden Anwendungsbereich ein passendes System. Welche Arten von Versionsverwaltungssystemen gibt es? Derzeit gibt es insgesamt drei Arten der Versionsverwaltung. Das System ist hier entweder: lokal Lokale Versionsverwaltungssysteme wurden mit Werkzeugen wie RCS und SCCS umgesetzt. Sie funktionieren nur auf einem Computer. Hinzu kommt, dass die lokale Versionsverwaltung meist nur eine einzige Datei versioniert. Anwendung findet die lokale Versionsverwaltung vor allem in Büroanwendungen. Hier werden die Versionen eines Dokuments dann direkt in der Datei des Dokuments gespeichert. In technischen Zeichnungen hingegen erfolgt die Versionsverwaltung hingegen etwa durch einen Änderungsindex. zentral Die zentrale Versionsverwaltung ist als Client-Server-System aufgebaut und erlaubt so den netwerkweiten Zugriff auf ein Repositry. Mithilfe einer Rechteverwaltung kann dafür gesorgt werden, dass nur berechtigte Personen eine neue Version in das Archiv legen können. Populär wurde dieses Konzept durch das Open-Source-Projekt Concurrent Versions System (CVS). Neu implementiert hingegen wurde es mit Subversion (SVN) und wird inzwischen von vielen kommerziellen Anbietern eingesetzt. verteilt Die verteilte Versionsverwaltung hingegen verwendet kein zentrales Repository. So verfügt jeder, der an einem Projekt arbeitet, ein eigenes Repository, das er mit jedem x-beliebigen anderem Repository abgleichen kann. So ist die Versionsgeschichte genauso verteilt wie in den zentralen Verwaltungssystemen. Der Vorteil ist allerdings, dass Änderungen auch lokal erfolgen können ganz ohne den Aufbau einer Server-Verbindung. Ihre Gemeinsamkeit: alle drei Generationen speichert üblicherweise nur die Unterschiede zwischen zwei Versionen. So lässt sich Speicherplatz sparen. Sollten mehrere Benutzer dieselbe Version einer Datei verändern, kann es so zu keinem Konflikt zwischen den einzelnen Versionen kommen. Sich widersprechende Versionen existieren anfangs parallel nebeneinander und können weiterhin verändert werden. Später ist es ebenso möglich, die Versionen in eine neue Version zusammenzuführen. Anstelle einer Kette von Versionen entsteht so eine Polyhierarchie (gerichteter azyklischer Graph). Diese Möglichkeit macht sich die Softwareentwicklung zum Vorteil. So werden zunächst einzelne Features oder Feature-Gruppen in separaten Versionen entwickelt. Anschließend werden sie alle von Personen mit einer Integrator-Rolle überprüft und später zusammengeführt. Der Beitrag Was ist eine Versionsverwaltung? erschien zuerst auf IT-Talents.de.

zum Artikel gehen

Subversion 1.14.0-LTS vorgestellt

Die unter dem Schirm der Apache Software Foundation koordinierte Versionsverwaltung Subversion legt mit Version 1.14.0-LTS eine neue langzeitunterstützte Veröffentlichung vor.

zum Artikel gehen

Schulung: Versionsverwaltung mit Git (optional mit GitHub, GitLab, Bitbucket, Azure DevOps oder AWS CodeCommit)

# Grundkonzepte Geschichte von Git Dezentrale vs. zentrale Versionsverwaltung Datenspeicher: Workspace, Staging, Repository, Remote Tracking Branches, Remote Repositories, Stash, Branches Konzept der Git-Hash-Werte Verweise auf Commits und anderen R

zum Artikel gehen

Programmieren mit Geschichte

Keywan Tonekaboni Ein neues Projekt hier, ein Geistesblitz da, und schon stehen die ersten Zeilen Programmcode. Wer kreativ programmiert, legt gerne einfach mal los. Doch manchmal vermisst man die gute Lösung vom Vortag, die man im Eifer des Gefechts

zum Artikel gehen

CI/CD Build-Tools was ist das eigentlich?

Jeder Programmierer hat irgendwann mal irgendwie angefangen zu coden. Viele haben vermutlich einfach eine Entwicklungsumgebung installiert, ein wenig Code möglicherweise aus einem Tutorial stammend geschrieben und dann nach einiger Zeit in der IDE auf S

zum Artikel gehen

Die 5 besten GUI-Clients für Git 2022

Grafische Benutzeroberflächen für die Versionsverwaltung Git Git ist ein bekanntes Werkzeug für das Versionsmanagement von Dateien. Entwickelt wurde es für die heute verbreitete Hauptanwendung der Verwaltung von Quellcode für Software. Auf Git können g

zum Artikel gehen