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.
<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