So entfernen Sie .svn Verzeichnisse rekursiv

3794
djsmiley2k

Wie lösche ich rekursiv alle .svn-Verzeichnisse, beginnend mit dem Verzeichnis, in dem ich bin?

7
Welche Plattform - Windows? Linux / UNIX? Etwas anderes? Chris J vor 13 Jahren 1
Mögliches Duplikat von [Befehl zum rekursiven Entfernen aller .svn-Verzeichnisse unter Windows] (http://stackoverflow.com/questions/4889619/command-to-recursively-remove-all-svn-directories-on-windows) Chris J vor 13 Jahren 0
Es ist unter Linux, Debian vor 13 Jahren 0
Komischerweise brauchte ich das am Morgen, wenn ich etwas für ein Quecksilberlager verwende. Am Ende habe ich alles hinzugefügt und die .svn-Ordner entfernt, bevor ich mich dazu entschied. Und jetzt kommen Sie mit dieser Frage, anscheinend war Neds Lösung das, was ich brauchte ... Tom Wijsman vor 13 Jahren 0

3 Antworten auf die Frage

13
Ned Batchelder

Denken Sie daran, dass svn den Befehl "export" enthält, der Ihnen eine Kopie Ihres Arbeitsbaums liefert, jedoch ohne alle .svn-Verzeichnisse. Dies könnte das sein, was Sie möchten.

$ svn export /tmp/copy_of_my_tree 
das funktioniert nicht für ein Repo, auf das Sie keinen Zugriff haben (z. B. gezippt und an Sie gesendet) mbx vor 13 Jahren 0
9
Oliver Charlesworth

Wenn Sie unter Linux arbeiten (oder gleichwertig), können Sie einfach Folgendes tun:

find . -name .svn -exec rm -rf {} \; 
Oder besser, und wie Piskvor erwähnt, verwenden Sie `-type d`, um sicherzustellen, dass nicht aus Versehen etwas gelöscht wird, das kein Verzeichnis ist. JdeBP vor 13 Jahren 2
7
Piskvor

In jedem modernen UN * X-ähnlichen System (Linux, Mac OS X, FreeBSD):

find . -type d -name '.svn' -exec rm -rf {} \; 

finden:

  • im aktuellen Verzeichnis
  • Verzeichnisse
  • mit namen .svn
  • und wenn gefunden, laufen Sie rm -rfauf jedem
Das ist fast die kanonische Redewendung. Sie haben "xargs" vergessen, um die Anzahl der benötigten "rm" -Prozesse zu reduzieren: `find. -typ d -name '.svn' -print0 | xargs -0 rm -rf --` JdeBP vor 13 Jahren 4
Zu @ JdeBPs Kommentar hinzufügen: Einige `find`-Implementierungen unterstützen auch` -exec rm -rf {} + `oder` -delete`, um dasselbe zu erreichen. grawity vor 13 Jahren 0