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.
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.)
Dieses Verzeichnis beinhaltet Konfigurationsdateien.
Dieses Verzeichnis beinhaltet den Datenspeicher für all Ihre versionierten Daten.[40]
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.)
Dieses Verzeichnis beinhaltet Hook-Skript-Vorlagen und Hook-Skripte, sofern welche installiert worden sind.
Subversion verwendet dieses Verzeichnis, um Sperrdateien des Subversion-Projektarchivs unterzubringen, die benutzt werden, um gleichzeitigen Zugriff auf das Projektarchiv zu verwalten.
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 | |
---|---|
Vor Subversion 1.5 besaß die Projektarchiv-Struktur auf
der Festplatte ein Unterverzeichnis |
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.