Home Tutorials Tools SVN Schnell und Einfach Neue Dateien Hinzufügen

Login

PayPal Donation

Enter Amount:

Banner

Countries

51.1%GERMANY GERMANY
10.8%UNITED STATES UNITED STATES
4.3%AUSTRALIA AUSTRALIA
4.1%AUSTRIA AUSTRIA
2.9%UNITED KINGDOM UNITED KINGDOM

Visitors

Today: 4


English (United Kingdom)Deutsch (Deutschland)
SVN Schnell und Einfach Neue Dateien Hinzufügen Drucken E-Mail
Benutzerbewertung: / 0
SchwachPerfekt 
Geschrieben von: Joachim Schwarz   

Wenn man SVN von der Kommandozeile aus benutzt kann es ziemlich aufwendig werden eine große Menge an neuen Dateien, die sich auch noch schön gleichmäßig über die Dateistruktur verteilen unter Versionskontrolle zu stellen. Die erste Idee einfach alle Dateien mit

svn add .

dem Repository hinzuzufügen, wird mit der Meldung, dass sich das aktuelle Verzeichnis bereits unter Versionskontrolle befindet beantwortet. Und so bleibt einem scheinbar nur die Möglichkeit jedes neue Verzeichnis einzeln hinzuzufügen.

Von diesem kurzen Blog-Eintrag wurde ich allerdings eines Besseren belehrt.

Ein Aufruf von

svn st

zeigt einem ja eigentlich alle Dateien an, die noch nicht unter Versionskontrolle stehen, da macht es doch Sinn diese Ausgabe zu nutzen. Allerdings findet man dort auch noch alle möglichen anderen Dateien, die beispielsweise geändert worden sind. Um diese Dateien los zu werden filtern wir die Ausgabe mit grep:

svn st | grep ^?

Hier weisen wir grep an uns nur die Zeilen auszugeben, die mit einem ? beginnen (Das Zeichen "^" bedeutet so viel wie "beginnt mit").

Jetzt haben wir es schon fast geschafft, allerdings stört das "?" am Anfang der Zeilen noch. Mit einem Aufruf von cut, das ausgewählte Teile einer Eingabe wieder ausgibt, werden wir es aber einfach wieder los: 

svn st | grep ^? | cut -b7-

Das Argument "-b7-" bewirkt, dass alle bytes ("-b") in der angegebenen Liste ("7-" = "von Byte 7 bis zum Ende") ausgegeben werden. Dadurch werden alle Statusangaben der Datei entfernt. Das Ganze müssen wir nun eigentlich nur noch an SVN übergeben. Dies geschieht über xargs und wir erhalten als finale Version:

svn st | grep ^? | cut -b7- | xargs -r svn add

Der Parameter "-r" sorgt für eine bessere Verwendbarkeit des Befehls in Skripten. Konkret weist er xargs an im Falle einer leeren Eingabe den Befehl erst gar nicht auszuführen, da dies zu einer Fehlermeldung führt.

Will man alle physikalisch gelöschten Dateien auch im Repository löschen, so kann man dies mit folgender leicht modifizierten Variante erledigen:

svn st | grep ^! | cut -b7- | xargs -r svn delete

 

 

 
Copyright © 2010 better-tutorials.com. Alle Rechte vorbehalten.
Joomla! ist freie, unter der GNU/GPL-Lizenz veröffentlichte Software.