Dateioperationen

Texte aus einem Repository anzeigen (cat)

Unter Unix-Systemen (Linux, MacOS) wird der Befehl cat verwendet, um einen Text auf der Konsole auszugeben. Dies geht unter Subversion ebenso. So kann man sich mit

svn cat main.c

die aktuelle Version auf der Festplatte ansehen. Dies ist natürlich relativ uninteressant, schließlich braucht man dafür nicht Subversion. Die Subversionvariante kann allerdings Texte aus dem Repository herunterladen und auf die Konsole ausgeben:

svn cat file:///<PFAD>/trunk/main.c

Dies kann man nun in eine beliebige Datei oder Programm umlenken. Auch hier ist es möglich spezielle Revisionen herunterzuladen. So lädt

svn cat -r 2 file:////Users/xin/svn/service/FooBar/trunk/main.c

die Datei main.c in dem Zustand herunter, wie sie in Revision 2 vorgelegen hat.

In der Regel möchte man sich eine ältere Datei ansehen. Hierfür ist es nun nicht mehr nötig, den Pfad zum Repository anzugeben, der Pfad auf eine lokale Datei, zusammen mit der Revisionsangabe reicht, um Verbindung mit dem Repository aufzunehmen.

svn cat -r 2 main.c

Dies ist eine einfache Möglichkeit an eine ältere Version einer Datei zu kommen und damit die aktuelle Version zu überschreiben.

svn cat -r 2 main.c > main.c.v2

Die nun überschriebene Datei kann nun als bearbeitete Version hochgeladen werden. Eine weitere Möglichkeit, um Änderungen zurückzunehmen, wird später beim Mergen vorgestellt. Um die aktuelle Headversion zu sehen:

svn cat -r HEAD main.c

Im Allgemeinen ist es kürzer die Revision anzugeben, als den vollständigen Pfad zum Repository.

Verzeichnisse anzeigen (list, ls)

Ebenfalls Unix nachempfunden ist der Befehl list. Mit ihm kann man sich Verzeichnisse innerhalb eines Repositorys oder einer lokalen Arbeitskopie ansehen. Hierbei kann die Revision (–revision, -r) gewählt werden, sowie mit Hilfe des Schalter –verbose (-v) zusätzliche Informationen erfragt werden: Die Revision in der zuletzt etwas geändert wurde, wer wann zuletzt eine Änderung eingecheckt hat und ob die Datei gesperrt ist (symbolisiert durch eine 0 zwischen dem letzten Autor und der Dateigröße).

Beispiel: Bild: Bert hat hier nur main.c, aber arne hat an dieser Stelle person.h schon ins Repository hochgeladen.

 Auch hier ist es möglich, sich mit ‚–revision‘ Verzeichnisse in beliebigen Versionen anzusehen. „svn list“ zeigt per Default den Stand des Repositorys in der ausgecheckten Revision an, nicht den Stand der Arbeitskopie.

Kopieren (copy, cp), Verschieben (move, mv) und löschen (remove, rm, delete, del)

Mit Subversion lassen sich ebenfalls auch Dateien verschieben, löschen und kopieren: Dateien, die mit Subversion kopiert werden, werden automatisch dem Repository hinzugefügt. Dabei muss sich die zu kopierende Datei jedoch bereits im Repository befinden: xin@ambassador:~/workspace/svn/work/trunk$ svn copy main.c person.c

A         person.c

(BILD) Möchte man eine einzelne Datei aus einer älteren Revision kopieren, lässt sich auch das Repository als Quelle nehmen:

xin@ambassador:~/workspace/svn/work/trunk$ svn copy -r 2 svn+ssh://xsd.eu/rep/projekt/trunk/main.c main2.c
A         main2.c

(BILD) Das Überschreiben von vorhandenen Dateien erlaubt „svn copy“ nicht, selbst dann nicht, wenn die Datei zuvor von Hand gelöscht wurde. Eine neue angelegt Datei wird automatisch dem Repository hinzugefügt. Entsprechend lassen Dateien löschen: xin@ambassador:~/workspace/svn/work/trunk$ svn remove main.c

D         main.c

(BILD) Zusammengefasst entspricht kopieren und löschen dem move-Befehl. Hierfür stellen wir zunächst den ursprünglichen Zustand wieder her (im Vorgriff auf revert)

(BILD)

xin@ambassador:~/workspace/svn/work/trunk$ svn move main.c person.c
A         person.c
D         main.c

Das Repository kann durch Kopieren, Verschieben oder Löschen direkt verändert werden, in dem die URL angeben wird. Damit wird sofort ein Commit ausgelöst, durch den zu kopierende, zu verschiebende oder zu löschende Datei verändert wird und eine neue Revision entsteht.

Ein Verzeichnis erstellen (mkdir)

Mit Hilfe von Subversion lassen sich weiterhin Verzeichnisse erstellen mittels des Unterbefehls „mkdir“. Verzeichnisse, die mit Subversion erstellt werden müssen anschließend nicht mehr mit svn add dem Repository hinzugefügt werden.

svn mkdir <NEUES_VERZEICHNIS>

(BILD HINZUFÜGEN)