Im Folgenden wollen wir euch erzählen, was ein Versionsverwaltungssystem ist und wie
es euch bei eurer Arbeit unterstützen kann.
Dazu folgendes fiktives Beispiel.
Stellen wir uns mal vor, wir haben zwei verschiedene Personen, einmal Alice, einmal Bob, die an
einem gemeinsamen Projekt arbeiten wollen.
Und dazu wollen sie beide eine Datei mit dem Inhalt A bearbeiten.
Im ersten Schritt gehen beide her und nehmen z.B. von einem zentralen Server eine Kopie
der Datei.
Jetzt arbeiten beide unabhängig voneinander an ihrer lokalen Kopie und ändern sie.
Wenn jetzt Alice z.B. ihre Kopie zurück auf den Server schieben möchte, einfach damit
diese gespeichert ist, hat Bob ein Problem, wenn er seine eigenen Änderungen ebenfalls
abspeichern möchte, nämlich würde er jetzt unbemerkt die Kopie von Alice überschreiben.
Um dieses Problem zu umgehen, können wir ein Versionsverwaltungssystem nutzen, das zu jeder
Datei eine Versionsnummer assoziiert.
In dem Beispiel hat die Datei mit dem Inhalt A die Versionsnummer 1.
Wenn sich jetzt Alice und Bob jeweils eine Kopie der Datei ziehen, haben sie ebenfalls
eine Datei mit der Versionsnummer 1.
An dieser Datei können sie jetzt lokal arbeiten.
Z.B. schreibt Alice in die Datei A B und Bob C A.
Wenn Alice jetzt soweit mit ihren Änderungen fertig ist und die Datei wieder zurück auf
den Server speichern möchte, dann führt sie ein Commit aus.
Und dabei prüft das Versionsverwaltungssystem, ob die Versionsnummer noch identisch ist.
Das bedeutet, hier merkt das Versionsverwaltungssystem, dass die Datei immer noch die Versionsnummer
1 hat und lässt die Änderungen zu.
Dabei wird die jetzt die Versionsnummer um 1 inkrementiert.
Das heißt, ab jetzt ist die Datei mit der Versionsnummer 2 verfügbar.
An der Stelle hat Bob aber immer noch eine Datei mit der Versionsnummer 1.
Und wenn er jetzt hat versucht, sein Inhalt der Datei auf dem Server zu speichern, wird
die Versionsverwaltung merken, dass die Datei einmal in der Version 2 verfügbar ist.
Bob aber versucht, die Version 1 zu speichern.
Damit kommt es zu einem Konflikt.
Und es wurde verhindert, dass die Datei fehlerhaft überschrieben würde.
Der so entstandene Konflikt muss jetzt aber lokal gelöst werden.
Das bedeutet, dass Bob hergehen muss und sich vom Versionsverwaltungssystem den aktuellen
Stand der Datei lokal kopieren muss, indem er ein Update ausführt.
Und jetzt hat beide Versionen, einmal die von Alice und einmal seine eigene Version,
in eine dritte Version zusammenführen muss, der sogenannte Merge.
Sobald Bob das gemacht hat, hat er ebenfalls eine Datei mit der Versionsnummer 2.
Dieser kann er jetzt wieder in die Versionsverwaltung zurückführen.
Und die Versionsverwaltung wird für die Datei eine neue Versionsnummer vergeben.
Die Versionsverwaltung, die wir in Systemprogrammierung nutzen, ist SVN.
Mit SVN können sowohl Dateien als auch Verzeichnisse verwaltet werden.
Dazu werden zu jeder Änderung noch weitere Daten mit abgespeichert.
Zum einen der Autor der Änderung, wann die Änderung geschehen ist und ein Kommentar,
der im besten Fall durch den Autor verfasst wird und beschreibt, was die Änderung bezweckt.
Eine ausführliche Dokumentation über SVN ist unter dem hier genannten Link verfügbar.
Es sei noch angemerkt, dass das SP-Abgabesystem auf SVN basiert.
Hier eine kurze Übersicht der Begriffe, die im Zusammenhang mit SVN wichtig sind.
Wir haben auf der einen Seite unser Repository, ein zentrales Archiv, auf dem alle Versionen
der Dateien gespeichert sind.
Zugänglich über
Offener Zugang
Dauer
00:08:16 Min
Aufnahmedatum
2021-04-14
Hochgeladen am
2021-04-15 00:56:38
Sprache
de-DE