可能重复:
How do you remove Subversion control for a folder?
Command line to delete matching files and directories recursively
我最近使用cvs2svn将我的cvs存储库转换为svn,我最近注意到每个目录都有一个名为.svn的隐藏文件夹。我当前的构建脚本从我的版本化资源目录中复制了很多目录,最终复制了.svn文件。无论如何在我结账时让svn不包含这些文件,或者我是否需要编写脚本来删除所有这些.svn文件。有许多文件具有这些隐藏的.svn目录,所以这将是一个痛苦,除非我可以编写一个递归脚本来执行此操作,但我不会,如果我可以为我的Windows安装程序执行此操作。有没有一种简单的方法可以阻止svn将这个隐藏目录放在我的项目中的任何地方?
答案 0 :(得分:69)
我不确定您是否要删除所有这些.svn目录。但是,如果你这样做,这是一个bash one-liner来做到这一点:
find . -name .svn -print0 | xargs -0 rm -r
答案 1 :(得分:28)
你可以做一个名为SVN Export的东西来获取没有.svn目录的文件
http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.export.html
答案 2 :(得分:5)
我posted this yesterday over here,但这又是因为我总是把它放在错误的主题中......
我有一些东西可以让你的一天。原始来源为here。
这是一个(完全安全的)Shell扩展,它将“删除SVN文件夹”添加到Windows中的右键菜单中。在包含那些讨厌的文件的任何目录上运行它。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
要使构建脚本的这一部分复制该cmd.exe,并执行它。
答案 3 :(得分:5)
find . -name '.svn' -depth -exec rm -rf '{}' \; -ls
答案 4 :(得分:5)
在Win32 / Win64系统上,以下命令应该完成这项工作:
del /q /s .svn
答案 5 :(得分:4)
这些文件夹是subversion如何与工作副本一起使用所必需的(即你已经完成结帐的地方)。
一个选项是您可以导出到另一个位置。导出将没有.svn文件夹,您可以在其上运行您的脚本。文档:svn export,TortoiseSVN Export
另一种选择是修改脚本以忽略隐藏目录,或构建更好的构建工具。
答案 6 :(得分:3)
和PowerShell版本
ls -Force -Recurse -Filter .svn | rm -Force -Recurse
答案 7 :(得分:1)
svn export就是你想要的。它将为您提供没有.svn
目录的代码树的干净副本(请注意,此副本不受版本控制,并且一旦导出,svn命令将无法使用它。)
我利用此方法在生产服务器上启动代码。我们的构建脚本需要导出代码分支,tars和gzips,将其上传到正确的服务器,然后解压缩/解压缩它。
答案 8 :(得分:1)
如果想用ruby执行此操作,只需将我的脚本粘贴到要以递归方式删除的根文件夹中:http://fabianosoriani.wordpress.com/2009/03/19/ruby-script-to-remove-svn-folders/
答案 9 :(得分:0)
您可以查看SVK
,它是Subversion之上的一个图层。其中一个优点是工作副本的存储库元数据通常存储在.svn
目录中,而是保存在一个中心位置,因此您没有隐藏的丑陋.svn
dir问题。这很不错。
答案 10 :(得分:0)
找到“/ YourFolder”-name“.svn”-exec rm -fdR {} \;
检查一下 link
答案 11 :(得分:-1)
我不知道我是否会删除它们,但可能会修改您的构建脚本以忽略复制它们将是一个好主意。我使用Ant构建编译并构建我的战争,它忽略了.svn dirs。