Kapitel 2. Grundlagen der Versionskontrolle

Inhaltsverzeichnis

Das Projektarchiv
Versionierungsmodelle
Das Problem des gemeinsamem Dateizugriffs
Die Sperren-Ändern-Freigeben-Lösung
Die Kopieren-Ändern-Zusammenführen-Lösung
Was macht Subversion?
Subversion bei der Arbeit
Arbeitskopien
Projektarchiv-URLs
Revisionen
Wie Arbeitskopien das Projektarchiv verfolgen
Zusammenfassung

Dieses Kapitel ist eine leicht veränderte Version desselben Kapitels aus dem Subversion-Buch. Eine Online-Version des Subversion-Buchs finden Sie unter folgender Adresse: http://svnbook.red-bean.com/ .

Dieses Kapitel ist eine kurze, beiläufige Einführung in Subversion. Falls Sie noch nie etwas von Versionskontrolle gehört haben, dann ist dieses Kapitel definitiv etwas für Sie. Wir beginnen mit einer Diskussion über allgemeine Konzepte der Versionskontrolle, arbeiten uns dann vor in die spezifischen Ideen hinter Subversion und zeigen ein paar einfache Beispiele zur Benutzung von Subversion.

Obwohl die hier gezeigten Beispiele Menschen im Umgang mit Quellcode darstellen, denken Sie bitte daran, dass Subversion jegliche Art von Daten verarbeiten kann - es ist nicht darauf beschränkt, Programmierer zu unterstützen.

Das Projektarchiv

Subversion ist ein zentralisiertes System für die Verteilung von Informationen. In seinem Kern befindet sich eine Datenbank, welche die Informationen in Form eines Dateibaumes - einer typischen Hierarchie von Dateien und Ordnern - abspeichert. Eine beliebige Anzahl von Clients kontaktiert das Projektarchiv und liest und schreibt von/in diese Dateien. Durch das Schreiben von Daten stellt ein Client diese auch anderen zur Verfügung, durch Lesen von Daten bekommt ein Client Informationen von anderen.

Abbildung 2.1. Ein typisches Client-Server-System

Ein typisches Client-Server-System

Warum ist dies so interessant? Bis jetzt klingt das alles wie die Definition eines normalen Dateiservers. Und tatsächlich ist das Projektarchiv eine Art Dateiserver, aber es ist kein normaler Dateiserver. Was das Subversion-Projektarchiv so besonders macht ist, dass es jede je gemachte Änderung speichert: jede Änderung an einer Datei, sogar Änderungen am Dateibaum selbst wie das Hinzufügen, Löschen oder Umbenennen/Verschieben von Dateien und Ordnern.

Wenn ein Client Daten aus dem Projektarchiv liest, so sieht er normalerweise nur die aktuellste Version des Dateibaumes. Aber ein Clientprogramm hat auch die Möglichkeit, frühere Versionen zu sehen. Zum Beispiel kann ein Benutzer sich für Fragen interessieren wie Was enthielt dieser Ordner letzten Mittwoch? oder Wer war die letzte Person, die diese Datei geändert hat und was für Änderungen waren das?. Dies sind die Art von Fragen, die das Herz eines Versionskontrollsystems bilden: Systeme, die genau dafür gedacht sind, Änderungen aufzuzeichnen und über die Zeit hinweg zu verfolgen.