我有一个文件夹c:\ sites\test,它包含从一个不再存在的存储库中签出的文件夹和文件。如何让Subversion停止跟踪该文件夹和任何子文件夹和文件?

我知道我可以简单地删除.svn文件夹,但是在很多层中有很多子文件夹。


当前回答

使用以下方法:

SVN rm——keep-local <文件夹名>删除文件夹和其中的所有内容。

SVN rm——keep-local <文件夹名>/*保留文件夹,但删除文件夹内的所有内容。

下面是一个例子:

~/code/web/sites/testapp $ svn rm --keep-local includes/data/*
D         includes/data/json
D         includes/data/json/index.html
D         includes/data/json/oembed
D         includes/data/json/oembed/1.0
D         includes/data/json/oembed/1.0/embed1.json
D         includes/data/json/oembed/1.0/embed2.json
D         includes/data/json/oembed/1.0/embed3.json

其他回答

使用svn export命令:

cd c:\websites\test
svn export c:\websites\test_copy

导出版本控制下的所有文件。仔细检查,确保你没有错过任何东西。

在Linux上,这将工作:

  find . -iname ".svn" -print0 | xargs -0 rm -r

如果您运行的是Windows,那么您可以在该文件夹中搜索.svn,这将列出所有文件。按Ctrl + A将选中所有这些,按delete将删除所有“讨厌的”Subversion内容。

还有一个很棒的小开源工具叫做SVN Cleaner,它在Windows资源管理器上下文菜单中添加了三个选项:

删除所有。svn 删除Root .svn 删除本地回购文件

另外,如果您正在使用TortoiseSVN,只需导出到当前的工作副本位置,它将删除.svn文件夹和文件。

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-export.html#tsvn-dug-export-unversion

Subversion 1.7的更新答案: 在Subversion 1.7中,工作副本已被广泛修订。只有一个.svn文件夹,位于工作副本的底部。如果您使用的是1.7,那么只需删除.svn文件夹及其内容就是一个简单的解决方案(无论使用TortoiseSVN还是命令行工具)。