我有一个有许多子目录的目录。 在每个文件夹中都有一个颠覆文件夹(.svn)。
是否有一个命令在Windows将通过每个文件夹和子目录并删除.svn文件夹?
或者我将不得不创build一个脚本或手动吗?
使用svn export
命令将Subversion工作副本导出到没有.svn
目录的新“干净”目录结构中。
用下面的行建立一个litte批处理文件,并从其下有.svn目录的父文件夹执行。
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%%G"
您也可以在命令提示符下直接输入下面的行:
FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%G"
在PowerShell中执行此操作。
注意:这是递归的,所以确保你在正确的目录!
gci -fil '.svn' -r -force | ri -r -force
这里是我的源代码树清理脚本的其余部分。
gci -fil 'bin' -r -force | ri -r -force gci -fil 'obj' -r -force | ri -r -force gci -fil '_ReSharper*' -r -force | ri -r -force gci -fil '*.suo' -r -force | ri -r -force gci -fil '*.user' -r -force | ri -r -force
如果要删除Windows中所有名为.svn的子文件夹,请使用以下内容创建批处理文件:
for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do ( rd /s /q "%%i" )
将其保存在del_All_Dot_SVN_Folders.cmd文件中。 运行。 你完成了。
感谢http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/
请记住,上面的代码有.svn,而链接中的代码只有* svn,所以最好让.svn不会意外地产生不希望的效果。
只需在文件资源管理器的搜索框中键入.svn,然后选择并删除所有搜索结果(请参阅JB Nizet的评论)。 这个方法当然也可以用来快速删除obj和bin目录,例如组织svn档案的时候。
虽然OP要求提供命令行解决方案,但他也表示使用Windows,并考虑手动删除,所以File Explorer方法仍然可以考虑,尤其是因为它是最快的方法,并不依赖像“svn export”这样的“工具”。
尽管OP已经选择了一个被接受的答案,但是这个答案可能对其他人有用。 至少对于我来说,很长一段时间linux / windows用户更喜欢命令行,并且首先通过这篇文章了解了搜索框:-)
我知道它太晚回答这个,但我想有一个简单的方法,如果有日食和svn插件安装在你的月食。 右键点击项目,进入团队 – >断开连接。 它会打开一个弹出窗口,您可以在其中选择第一个选项:'同时从文件系统中删除SVN元信息。 这将自动删除所有的SVN文件夹与svn属性文件,有时你可能会忘记只删除.svn文件夹!
重要的一点是,如果要运行shell来删除.svn文件夹,则可能需要使用-depth参数来防止find命令进入刚删除的目录,并显示愚蠢的错误消息,如eg
"find: ./.svn: No such file or directory"
要摆脱这个错误,你可以使用find命令如下:
cd [dir_to_delete_svn_folders] find . -depth -name .svn -exec rm -fr {} \;