Schnellstart-Lehrgang

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] 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 svn --version aufrufen).

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.

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.