Home

Versionierungssystemen

Versionierungssysteme, auch Versionskontrollsysteme (VCS) genannt, sind Softwarewerkzeuge zur Verwaltung von Änderungen an digitalen Artefakten. Sie erfassen den Verlauf von Dateien, ermöglichen das Wiederherstellen früherer Zustände und unterstützen die Zusammenarbeit mehrerer Personen, ohne Konflikte zu verursachen.

Es gibt zentrale Systeme (CVCS) wie Subversion oder CVS und verteilte Systeme (DVCS) wie Git, Mercurial oder

Kernkonzepte sind Commits, Branches, Merges und Tags. Ein Commit fasst zusammenhängende Änderungen zu einer Einheit; Branches

Typische Arbeitsabläufe umfassen das Arbeiten in Feature-Branches, Peer-Reviews oder Merge-Requests sowie unterschiedliche Modelle wie trunk-based development.

Vorteile von Versionierungssystemen sind Nachvollziehbarkeit, Reproduzierbarkeit und ein klarer Audit-Trail, dazu erleichtern sie die Zusammenarbeit und

Einsatzgebiete umfassen Softwareentwicklung, Dokumentation, Designdateien und Datenbestände. Bekannte Systeme sind Git, Subversion, Mercurial und Perforce; Git

Fossil.
Bei
CVCS
liegt
das
komplette
Repositorium
auf
einem
zentralen
Server;
bei
DVCS
speichert
jede
Kopie
des
Repositories
die
komplette
Historie
und
ermöglicht
Arbeiten
auch
ohne
durchgehende
Serververbindung.
Änderungen
werden
durch
Commits
festgehalten
und
erst
beim
Synchronisieren
an
andere
Kopien
verteilt.
ermöglichen
parallele
Entwicklungslinien;
Merges
integrieren
Änderungen
aus
einem
Branch
in
einen
anderen;
Tags
markieren
bestimmte
Punkte
in
der
Historie,
zum
Beispiel
Versionsstände.
DVCS
erleichtern
zudem
das
Arbeiten
offline
und
das
gleichzeitige
Experimentieren
in
isolierten
Zweigen,
bevor
Änderungen
in
die
Hauptlinie
übernommen
werden.
das
Zurückrollen
unerwünschter
Änderungen.
Herausforderungen
bestehen
in
der
Lernkurve,
möglichen
Konflikten
beim
Zusammenführen,
dem
Speicherbedarf
bei
großen
Repositorien
und
Sicherheits-
bzw.
Compliance-Anforderungen.
ist
heute
das
am
weitesten
verbreitete
DVCS.