Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultšt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Echtzeitsysteme
 
  Vorlesungsüberblick
  Voraussetzungen
  Vorlesungsfolien
  Übungen
   Getting Started
   Docs
   Environment
   svn
   Gruppeneinteilung
  Schein, Prüfung
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2006/07  >  EZS  >  Übung  >  SVN

Echtzeitsysteme (EZS) - WS 2006/07

Subversion Grundlagen

Hier sollen einige Grundlagen für den Umgang mit Subversion gelegt werden, die den Einstieg in das Arbeiten mit Subversion erleichtern. Für genauere Informationen existiert das Subversion-Buch. Ausführlichere und mit Beispielen angereicherte Beschreibungen zur Verwendung von Subversion findet ihr noch hier.

Checkout Repository

Der initiale Checkout für ein Repository erfolgt durch

svn co URL [target_dir]

Eine URL hat dabei den folgenden Aufbau:

<protocol>://[<host_name>[:<port>]]/<path_to_repository>

wobei <protocol> = {svn+ssh,file,http,https,...} je nach Verbndungsart variiert.

Verzeichnisse in ein Repository importieren

Mit dem folgenden Kommando kann man rekursiv ein Verzeichnis mitsamt aller in ihm enthaltenen Dateien und Verzeichnisse in ein Subversion Repository importieren:

svn import [PATH] URL

Wird kein Pfad angegeben, wird als Pfad '.' angenommen. Man sollte beachten, dass das importierte Verzeichnis nach dem Import nicht versioniert ist. Man muss das Repository zuerst in ein anderes Verzeichnis auschecken, bevor man damit arbeiten kann.

Dateien und/oder Verzeichnisse zu einem Repository hinzufügen

svn add [file|dir]

Wenn ein Verzeichnis, das seinerseits weitere Verzeichnisse und Dateien enthält, zum Repository hinzugefügt wird, werden die enthaltenen Dateien und Verzeichnisse ihrerseits rekursiv zum Repository hinzugefügt.

Änderungen in das Repository übertragen

svn commit [file|dir]

Wenn ein Verzeichnis in das Repository überträgt, werden auch alle Verzeichnisse und Dateien in das Repository übertragen, die in diesem Verzeichnis enthalten sind.

Dateien und/oder Verzeichnisse mit dem Repository abgleichen

svn up [file|dir]

Auch hier werden Verzeichnisse rekursiv mit dem Repository abgeglichen

Branching und Merging

Möchte man im Repository gewisse Änderungen vornehmen, die das Hauptrepository zunächst nicht beeinflussen sollen, macht man einen Branch. Im wesentlichen erstellt man dabei eine Kopie eines Zweigs des Repositories oder des gesamten Repositories und arbeitet auf dieser Kopie weiter, mit Subversion entspricht ein Branch auch wirklich einer Kopie (wenn sich auch ein etwas ausgefeilterer Kopieralgorithmus hinter dem ganzen verbirgt):

svn copy [file|dir] URL

Will man nun die Änderungen aus dem Branch wieder in das eigentlich Repository überführen, führt man einen Merge durch:

svn merge -r <revision>:HEAD URL

Beim Mergen muss man aufpassen, dass etwaige Änderungen nicht mehrfach in das Repository übertragen werden, dies wird verhindert, indem man <revision> geeignet auswählt: entweder die Revision des letzten Merge, oder (falls noch kein Merge stattgefunden hat) die Revision des Branch.

Wechsel der Arbeitskopie

Bevor man nach einem Branch auch wirklich auf der Kopie des Zweigs oder des Repositories arbeit kann, muss man den Branch noch zur aktuellen Arbeitskopie machen. Dies geschieht mit Subversion über das switch-Kommando:

svn switch URL
  Impressum Stand: 2006-10-13 09:43   scheler