Diese Dokumentation wurde zur Beschreibung der Serie 1.7.x von Apache™ Subversion® erstellt. Falls Sie eine unterschiedliche Version von Subversion einsetzen, sei Ihnen dringend angeraten, bei http://www.svnbook.com/ vorbeizuschauen und stattdessen die zu Ihrer Version von Subversion passende Version dieser Dokumentation heranzzuiehen.

Das Subversion Projektarchiv, Definition

Bevor wir uns in das weite Feld der Projektarchiv-Verwaltung begeben, wollen wir definieren, was ein Projektarchiv ist. Wie sieht es aus? Wie fühlt es sich an? Trinkt es seinen Tee heiß oder mit Eis, gesüßt oder mit Zitrone? Als Administrator wird von Ihnen erwartet, dass Sie den Aufbau eines Projektarchivs sowohl auf der physischen Betriebssystemebene verstehen – wie sich ein Subversion-Projektarchiv aussieht und wie es sich gegenüber Nicht-Subversion-Werkzeugen verhält – als auch aus einer logischen Perspektive – wie Daten innerhalb des Projektarchivs repräsentiert werden.

Mit den Augen eines typischen Dateibrowsers (wie Windows Explorer) oder von kommandozeilenorientierten Dateisystem-Navigationswerkzeugen ist das Subversion-Projektarchiv bloß ein weiteres gewöhnliches Verzeichnis voller Zeugs. Es gibt einige Unterverzeichnisse mit Konfigurationsdateien, die für Menschen lesbar sind, einige Unterverzeichnisse mit weniger lesbaren Dateien usw. Wie in anderen Bereichen des Subversion-Designs, wird auch hier viel Wert auf Modularität gesetzt, und hierarchische Organisation wird vollgepfropftem Chaos vorgezogen. Ein flacher Blick in ein typisches Projektarchiv aus praxisbezogener Sicht reicht aus, um die grundlegenden Komponenten des Projektarchivs zu offenbaren.

$ ls repos
conf/  db/  format  hooks/  locks/  README.txt

Hier ist ein schneller, oberflächlicher Überblick über das, was Sie in diesem Verzeichnislisting sehen. (Verzetteln Sie sich nicht mit den Fachausdrücken – eine detaillierte Behandlung dieser Komponenten erfolgt an anderer Stelle in diesem und in anderen Kapiteln.)

conf/

Dieses Verzeichnis beinhaltet Konfigurationsdateien.

db/

Dieses Verzeichnis beinhaltet den Datenspeicher für all Ihre versionierten Daten.[40]

format

Diese Datei beschreibt das Organisationsschema des Projektarchivs. (Wie es sich herausstellt, beinhaltet das Verzeichnis db/ manchmal auch eine Datei format, die nur den Inhalt dieses Verzeichnisses beschreibt und nicht mit dieser Datei verwechselt werden sollte.)

hooks/

Dieses Verzeichnis beinhaltet Hook-Skript-Vorlagen und Hook-Skripte, sofern welche installiert worden sind.

locks/

Subversion verwendet dieses Verzeichnis, um Sperrdateien des Subversion-Projektarchivs unterzubringen, die benutzt werden, um gleichzeitigen Zugriff auf das Projektarchiv zu verwalten.

README.txt

Dies ist eine kurze Textdatei, die bloß eine Mitteilung für die Leser enthält, dass das Verzeichnis, in das sie schauen, ein Subversion-Projektarchiv ist.

[Anmerkung] Anmerkung

Vor Subversion 1.5 besaß die Projektarchiv-Struktur auf der Festplatte ein Unterverzeichnis dav. mod_dav_svn verwendete dieses Verzeichnis, um Informationen über WebDAV Aktivitäten zu speichern – Abbildungen von High-Level WebDAV Protokollkonzepten auf Subversion Übergabe-Transaktionen. Subversion 1.5 änderte dieses Verhalten, indem das Eigentum über das Aktivitäten-Verzeichnis und die Möglichkeit, dessen Ort zu konfigurieren, an mod_dav_svn selbst übertragen wurde. Nun benötigen neue Projektarchive nicht unbedingt ein Unterverzeichnis dav, es sei denn, mod_dav_svn wird verwendet und wurde nicht dergestalt konfiguriert, dass seine Aktivitäten-Datenbank an einem anderen Ort abgelegt wird. Siehe „Anweisungen“ in Kapitel 9, Die vollständige Subversion Referenz für weitere Informationen.

Selbstverständlich wird diese sonst so unauffällige Ansammlung aus Dateien und Verzeichnissen, wenn auf sie über die Subversion-Bibliotheken zugegriffen wird, eine Implementierung eines virtuellen, versionierten Dateisystems, vollständig mit anpassbaren Ereignis-Triggern. Dieses Dateisystem hat seine eigene Auffassung von Verzeichnissen und Dateien, sehr ähnlich den Auffassungen, die echte Dateisysteme (wie NTFS, FAT32, ext3 usw.) von solchen Dingen haben. Aber dies ist ein spezielles Dateisystem – es hängt diese Dateien und Verzeichnisse an Revisionen und hält alle Änderungen, die Sie daran vorgenommen haben, sicher abgespeichert und für immer abrufbereit. Hier lebt die Gesamtheit Ihrer versionierten Daten.



[40] Streng genommen schreibt Subversion nicht vor, dass die versionierten Daten hier abgelegt sind und es sind alternative (wenn auch proprietäre) Speicher-Back-Ends bekannt, die Daten tatsächlich nicht in diesem Verzeichnis speichern.