Subversion:如何递归地删除所有 .svn 文件?

14

3
您会喜欢Subversion 1.7版本。它只有一个名为.svn的文件夹,位于工作副本的根目录下。 - Steven T. Snyder
4个回答

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

刚刚注意到有Windows标签,所以除非使用cygwin,否则可能不会有帮助。


你能解释一下这里的 {} \; 是什么意思吗? - mysql_go
在find命令的每个结果上执行rm -rf命令,该命令将删除一个目录。 - river

7
列出它们:
find . -type f -name .svn

删除它们

find . -type f -name .svn -delete

如果它们实际上是目录而不是文件

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

2
这个能在Windows上运行吗?(看看windows标签);-) - Pascal MARTIN
1
@Pascal:什么?难道不是每个人都使用Cygwin吗?! - Erik
1
我更倾向于每个人(或至少是每个开发者)使用真正的Linux ^^ - Pascal MARTIN
1
你能解释一下这里的 {} \; 是什么意思吗? - mysql_go
5
-exec command ; 是让 find 命令执行某些操作的语法。由于 shell 会吞掉 ; 符号,因此我要用引号将其引起来,写成 \;。而 {} 则会被替换为 find 当前正在处理的文件或目录。 - Erik

5

现在,这里有一个步骤。前往您的项目根目录并使用以下终端命令:

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

运行得非常完美。谢谢! - Con Antonakos

3
这可以通过使用“svn export”内置于svn中来完成。它可以在两种模式下运行,一种是下载并将服务器内容的新副本放置在新的本地文件夹中,另一种是采用现有的本地文件夹并创建一个新的本地文件夹。
例如: svn export c:\ MyCheckout c:\ MyCheckout2
执行上述操作后,c:\ MyCheckout2将包含您的checkout,但不包含任何“.svn”文件夹。
您可以执行“svn help export”以查看更多说明。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接