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

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


当前回答

使用svn export命令:

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

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

其他回答

最好最简单的方法

如果你认为你可以通过一个简单的魔法命令获胜,你就失败了!SVN真的很棘手,总是在Xcode中以某种方式返回一个新的错误消息。迟早,答应我…所以你得聪明点!

如你所知,Xcode下的常规和最佳实践是删除左边项目窗格中的文件。如果你错过了它,并以某种方式在Finder中删除了它,你就有麻烦了。大麻烦!但如果你做得好,你可以解决它,并节省时间。

首先,您需要删除SVN对文件或文件夹的引用,然后才能实际删除它

如果你能把文件/文件夹从垃圾箱里放回去,或者在你删除它的时候撤销最后一步,那么…… 去终点站——是的,那个不错的老终点站——然后去那个地方。 最好的方法是输入cd,然后将文件夹/文件拉到终端。你会得到类似的结果

cd /用户/用户名/文件/ Apps_Developing /…

你可以看看你在哪里

ls

命令列出您的文件。

然后使用svn命令删除svn引用: svn delete——keep-local fileName_toDelete

这将从SVN存储库中删除文件,但是您必须在Finder中手动删除它。

看看这个,http://www.hacktrix.com/how-to-delete-svn-folders-from-your-project-on-windows-linux-and-mac

使用以下方法:

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

重要的一点是,当您使用shell删除.svn文件夹时,您需要使用-depth参数来防止find命令进入刚刚删除的目录并显示错误消息,例如:

“找到:。/。svn:没有这样的文件或目录"

因此,你可以像下面这样使用find命令:

cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;

只需删除所需文件夹中的.svn文件夹,然后控件将自动删除。