2008-11-05 10 views
22

Gibt es eine Möglichkeit, einen Ordner zu löschen, lassen Sie es FolderX von einer SVN-Trunk rekursiv aufrufen? Eine schnelle Suche auf Google sagt mir nur, wie rekursiv alle .svn Ordner zu löschen, und das ist nicht das, was ichSVN rekursiv löschen

+0

Was ist los mit "svn rm FolX"? –

+1

Er sagt, dass es mehrere FOIX-Dirs gibt, die im ganzen Baum verteilt sind.Ihr Befehl würde nur einen im aktuellen Verzeichnis löschen. –

Antwort

31

versuchen, etwas wie die folgenden auf einem Posix-System tun:

find ./ -name "FolderX" | xargs svn delete --force 

Diese finden alle übereinstimmende Dateien/Ordner, die im aktuellen Verzeichnis beginnen und die Aktion für sie ausführen, dh svn delete. Ich bin nicht sicher, wie man das in Windows ohne cygwin macht.

Für win32 schlägt der Kommentator unten eine ähnliche Lösung (cmd):

for /R . %1 in (*.EXT) do svn delete %1 
+1

Ich wünschte wirklich, es gäbe einen entsprechenden Windows-Befehlszeilenbefehl dafür. Ich könnte Cygwin installieren, denke ich. –

+3

Gefunden, ich wollte rekursiv löschen alle * .EXT-Dateien aus meinem Repository, die in Win32 Befehl (DOS) Eingabeaufforderung Begriffe ist: für/R. % 1 in (* .EXT) svn entfernen% 1 –

+0

Ok, ich habe die Antwort aktualisiert. –

4

svn delete FolX --force den Trick tun sollten, selbst wenn es nicht versionierte Dateien im Unterbaum.

+1

Er sagte FolX (für '' Ordner X ''), nicht FOIX :) – ngn

3
find . -name ".svn" -exec rm -rf {} \; 

Quelle: Recursive SVN delete

+7

Es ist nicht relevant. Die Frage war Löschen von Svn Repo, nicht lokal. – pmod

+0

er brauchte das nicht – kappa

0

habe ich eine SH leicht als "rm" gemeinsam laufen.

  • In "/ usr/bin" Ich schaffe "rm_svn_dirs" Datei, eine Put-:

#!/bin/bash

if [ $\# -eq 0 ] ; then

echo 
    echo "Path not found" 
    echo "Use:" 
    echo " $0 path"` 
    echo " $0 /var/www/test/svn/website" 
    echo " $0 ." 
    echo "Operation cancelled" 
    echo 
    exit 1 
fi 

echo 
echo "Recursively delete .svn directories in:" 
if [ $1 != "." ] ; then 
    echo $1 
else 
    pwd 
fi 

echo 
read -p "Continue? [Yes/No]: " x 
if [ "$x" != "Yes" ] ; then 
    echo "Operation cancelled" 
    echo 
    exit 1 
fi 

find $1 -name .svn -exec rm -rf {} \; 
echo "End!" 
echo 
exit 0` 
  • Datei speichern, und mache es ausführbar:

    chmod +x rm_svn_dirs

  • zu benutzen:

    rm_svn_dirs /var/www/svn/www

    rm_svn_dirs ./svn/www

    rm_svn_dirs .

0

Es ist gut für mich gearbeitet

find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf 
0

Vergessen Sie nicht, die% zu verdoppeln, wenn Sie es in einer Batch-Datei verwenden möchten:

für/R. % 1 in (* .EXT) DO Svn% 1

_

für/R löschen. %% 1 in (* .EXT) lösche svn %% 1

Verwandte Themen