2008-11-05 110 views
22

有没有办法删除一个文件夹,我们可以从SVN trunk中递归地调用它的FolderX?在谷歌快速搜索只告诉我如何递归删除所有.svn目录,这是不是我想要做的SVN递归删除

+0

“svn rm FolX”有什么问题? – 2008-11-05 04:57:28

+1

他在说整个树上有多个FOIX dirs。你的命令只会删除当前目录中的一个。 – 2009-07-14 00:42:59

回答

31

尝试像POSIX的系统上执行以下操作:

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

这会发现所有匹配从当前目录开始的文件/文件夹并对它们执行操作,即svn delete。我不确定如何在没有cygwin的情况下在Windows中执行此操作。

对于Win32中,评论者提出以下类似的解决方案(CMD):

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

我真的希望有一个等效的Windows命令提示符命令。我想可以安装cygwin。 – 2010-02-02 17:19:04

+3

发现它,我想递归删除我的存储库中的所有* .EXT文件,它在Win32命令(DOS)中的提示条款是: for/R。 (* .EXT)中的%1做svn删除%1 – 2010-02-02 17:28:56

4

svn delete FolX --force应该做的,即使有子树中的版本文件的伎俩。

0

我创建了一个SH轻松地为 “RM” 共同运行。

  • 在 “在/ usr/bin中” 创建 “rm_svn_dirs” 文件,认沽:

#!/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` 
  • 保存文件,并使其可执行:

    chmod +x rm_svn_dirs

  • 要使用:

    rm_svn_dirs /var/www/svn/www

    rm_svn_dirs ./svn/www

    rm_svn_dirs .

0

它的工作很适合我

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

不要忘了一倍%,如果你想在一个批处理文件来使用它:

用于/ R。 %1中(* .EXT)做的svn删除%1

_

为/ R。 (* .EXT)%% 1做svn删除%% 1