„Bitte stellen Sie sicher, dass Ihre Lehnen aufrecht stehen und die Tabletts eingeklappt und verriegelt sind! Flugbegleiter, bitte für den Start vorbereiten….“
Es folgt eine schnelle Einführung, die Sie durch einige grundlegende Konfigurationen und Operationen von Subversion führt. Nach Abschluss sollten Sie eine allgemeines Verständnis über die Verwendung von Subversion haben.
|
Anmerkung |
|---|---|
|
Die Beispiele in diesem Anhang gehen davon aus, dass
Ihnen svn, der
Subversion-Kommandozeilen-Client, und
svnadmin, das Verwaltungswerkzeug, auf
einer unixähnlichen Umgebung zur Verfügung stehen. (Dieser
Lehrgang funktioniert auch auf der Windows-Kommandozeile,
sofern Sie einige offensichtliche Anpassungen vornehmen.) Wir
gehen auch davon aus, dass Sie Subversion 1.2 oder neuer
verwenden (zur Überprüfung |
Subversion speichert alle versionierten Daten in einem zentralen Repository. Um anzufangen, erstellen Sie ein neues Repository:
$ svnadmin create /var/svn/repos $ ls /var/svn/repos conf/ dav/ db/ format hooks/ locks/ README.txt
Dieser Befehl erzeugt ein neues Verzeichnis,
/var/svn/repos, das ein
Subversion-Repository enthält. Dieses neue Verzeichnis
beinhaltet (neben anderen Dingen) eine Sammlung von
Datenbankdateien. Wenn Sie hineinschauen, werden Sie Ihre
versionierten Dateien nicht sehen. Weitere Informationen zur
Erstellung und Wartung von Repositorys finden Sie in Kapitel 5, Verwaltung des Repositorys.
Subversion fehlt das Konzept „Projekt“. Das Repository ist lediglich ein virtuelles, versioniertes Dateisystem, ein großer Baum, der alles aufnehmen kann, was Sie wollen. Manche Administratoren bevorzugen es, nur ein Projekt in einem Repository zu speichern, wohingegen andere mehrere Projekte in einem Repository unterbringen, indem sie sie in getrennten Unterverzeichnissen ablegen. Wir erörtern die Vorteile jedes Ansatzes in „Planung der Organisation Ihres Repositorys“. So oder so, das Repository verwaltet nur Dateien und Verzeichnisse, so dass es ganz allein bei den Menschen liegt, bestimmte Verzeichnisse als „Projekte“ anzusehen. Auch wenn Sie in diesem Buch Bezüge auf Projekte sehen sollten, denken Sie daran, dass wir dabei nur über irgendein Verzeichnis (oder eine Sammlung von Verzeichnissen) im Repository sprechen.
In diesem Beispiel gehen wir davon aus, dass Sie bereits so
etwas wie ein Projekt (eine Sammlung aus Dateien und
Verzeichnissen) haben, die Sie in Ihr frisch erstelltes
Subversion-Repository importieren möchten. Fangen Sie damit an,
Ihre Daten innerhalb eines einzelnen Verzeichnisses namens
myproject (oder ein anderer Wunschname) zu
organisieren. Aus Gründen, die in Kapitel 4, Verzweigen und Zusammenführen erklärt werden, sollte die Struktur
Ihres Projektbaums drei oberste Verzeichnisse namens
branches, tags und
trunk haben. Das Verzeichnis
trunk sollte alle Ihre Daten beinhalten,
und die Verzeichnisse branches und
tags sollten leer sein:
/tmp/myproject/branches/
/tmp/myproject/tags/
/tmp/myproject/trunk/
foo.c
bar.c
Makefile
…
Die Unterverzeichnisse branches,
tags und trunk werden
von Subversion nicht tatsächlich benötigt. Sie sind bloß eine
verbreitete Konvention, die Sie später sehr wahrscheinlich auch
verwenden wollen.
Sobald Sie Ihre Daten vorbereitet haben, importieren Sie sie mit dem Befehl svn import in das Repository (siehe „Wie Sie Daten in Ihr Repository bekommen“):
$ svn import /tmp/myproject file:///var/svn/repos/myproject -m "initial import" Hinzufügen /tmp/myproject/branches Hinzufügen /tmp/myproject/tags Hinzufügen /tmp/myproject/trunk Hinzufügen /tmp/myproject/trunk/foo.c Hinzufügen /tmp/myproject/trunk/bar.c Hinzufügen /tmp/myproject/trunk/Makefile … Revision 1 übertragen. $
Nun enthält das Repository diesen Datenbaum. Wie bereits
erwähnt, werden Sie Ihre Dateien nicht sehen, wenn Sie direkt
in das Repository schauen; sie werden alle in einer Datenbank
abgelegt. Das imaginäre Dateisystem des Repositorys jedoch
enthält nun ein Verzeichnis namens
myproject, welches wiederum Ihre Daten
enthält.
Beachten Sie, dass das ursprüngliche Verzeichnis
/tmp/myproject unverändert bleibt;
Subversion kennt es nicht. (Sie können das Verzeichnis
eigentlich löschen, wenn Sie möchten.) Um damit zu beginnen,
Repository-Daten zu manipulieren, müssen Sie eine neue
„Arbeitskopie“ der Daten anlegen, eine Art privater
Arbeitsbereich. Fordern Sie Subversion dazu auf, eine
Arbeitskopie des Verzeichnisses
myproject/trunk im Repository
„auszuchecken“:
$ svn checkout file:///var/svn/repos/myproject/trunk myproject A myproject/foo.c A myproject/bar.c A myproject/Makefile … Ausgecheckt, Revision 1.
Nun haben Sie eine persönliche Kopie eines Teils des
Repositorys in einem Verzeichnis namens
myproject. Sie können die Dateien in Ihrer
Arbeitskopie bearbeiten und dann diese Änderungen zurück an das
Repository übergeben.
Gehen Sie in Ihre Arbeitskopie und bearbeiten Sie den Inhalt einer Datei.
Lassen Sie svn diff laufen, um
eine unifizierte Diff-Ausgabe Ihrer Änderungen zu
sehen.
Rufen Sie svn commit auf, um die
neue Version Ihrer Datei an das Repository zu übergeben.
Rufen Sie svn update auf, um Ihre
Arbeitskopie bezüglich des Repositorys zu
„aktualisieren“.
Für eine vollständige Führung durch alles, was Sie mit Ihrer Arbeitskopie machen können, lesen Sie Kapitel 2, Grundlegende Benutzung.
An dieser Stelle haben Sie die Möglichkeit, Ihr Repository für andere über das Netz erreichbar zu machen. Siehe Kapitel 6, Die Administration eines Subversion-Servers, um mehr über die verschiedenen Arten von verfügbaren Server-Prozessen zu erfahren und wie sie konfiguriert werden.