Subversion – Aufgaben mit der Kommandozeile lösen
In diesem Artikel werde ich mit der Zeit, einige Lösungen für typische Aufgaben die bei täglichen Arbeit mit Subversion anfallen, dokumentieren
Hinzugefügte Dateien wieder entfernen
Ab und an kommt es vor dass man eine Datei oder einen Ordner der bereits mit svn add name hinzugefügt, aber noch nicht commited hat, wieder entfernen möchte. Mir passiert das Regelmäßig wenn ich einen kompletten Ordner hinzugefügt habe und dann feststelle, dass sich in diesem Ordner Dateien oder Unterordner befinden die ich eigentlich gar nicht unter SVN Kontrolle haben möchte. Solange noch nicht commited wurde ist die Lösung einfach svn revert hilft weiter. Ein Beispiel:
svn revert --recursive .
Dieses Kommando wirkt rekursiv auf Dateien und Ordner und Unterordner ab dem aktuellen Verzeichnis.
Aber Achtung, wenn die Dateien schon commited wurden, werden alle Änderungen an den Dateien wieder Rückgängig gemacht. Das Handbuch sagt, dass in diesem Fall ein svn revert datei wirkt wie:
svn update -r BASE datei
Besser ist es, man hat ein Backup!
Herausfinden welche Dateien noch nicht unter Subversion Kontrolle stehen
Das Kommondo svn status sollte jeder kennen der mit Subversion arbeitet. es gibt viele nützliche Informationen über den Status des lokalen Repositories. Bei großen Projekte mit vielen beweglichen Daten, z.b. Grafiken, die besser nicht unter SVN gehalten werden, kann es sinnvoll die Ausgabe mit grep zu filtern.
# Zeigt alle Dateien die nicht unter SVN Kontrolle stehen svn status | grep ^?
# Zeigt nur .sql Dateien die nicht unter SVN Kontrolle stehen svn status | grep ^? | grep .sql
Ein Repository löschen
Das Löschen eines Repositories ist denkbar einfach, es muss nur komplett gelöscht werden. Sinnvoll ist aber in jedem Fall vorher ein Dump anzulegen.
# dump erzeugen und komprimieren svnadmin dump -q /repos_name | bzip2 -c > repos_name.dump.bz2 # Repository engültig löschen rm -rf repos_name
Alle .svn Verzeichnisse löschen
Manchmal, wenn man sich die Dinge zurechtkopiert, möchte man alle .svn Verzeichnisse löschen die sich in einem bestimmten Verzeichnis befinden:
# Alle .svn Verzeichnisse löschen find . -name ".svn" -exec rm -rf {} \;
In diesem Zusammenhang:
- Nützliche Linux Shell Kommandos Hier werde ich mit der Zeit die Shell Kommandos auflisten...