从所有目录中删除的.svn文件

问题描述:

可能重复:
How do you remove Subversion control for a folder?
Command line to delete matching files and directories recursively从所有目录中删除的.svn文件

最近,我将我的CVS仓库使用cvs2svn到SVN和我最近注意到,每个目录下有一个隐藏的文件夹称为.svn。我当前的构建脚本从版本化的资源目录中复制了很多目录,并最终复制了.svn文件。有没有办法让svn在结帐时不包含这些文件,或者是否需要编写脚本来删除所有这些.svn文件。有很多这些隐藏的.svn目录的文件,所以这将是一个痛苦,除非我可以写一个递归脚本来做到这一点,但我不,如果我可以做我的Windows安装程序。有没有一种简单的方法可以阻止svn将这个隐藏的目录放到我的项目中的任何地方?

+0

哎呀,选错了一个:http://*.com/questions/154853 /如何删除 - 颠覆 - 控制文件夹 – zzzzBov 2012-11-17 03:06:17

你可以做一个叫做SVN导出的事情来获得这些文件没有.svn目录

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.export.html

+0

是的,SVN导出将删除.svn文件。您可以创建一个批处理文件以从命令行运行导出命令,并将其合并到您的构建过程中。 – 2009-08-19 16:52:42

+0

检查此链接,它帮助我.... http://cocoabugs.blogspot.com/2010/09/script-to-remove-hidden-svn-folder.html – 2010-09-20 10:16:24

+2

这是伟大的,但不幸的是有时候有人给你发送一个tarball满了他们:( – Eva 2012-07-25 10:55:56

这些文件夹都需要颠覆与工作副本是如何工作的(即,你所做的结帐)。

一种选择是你可以输出到另一个位置。导出不会有.svn文件夹,并且可以在其上运行脚本。文档:svn exportTortoiseSVN Export

另一种选择是修改您的脚本以忽略隐藏的目录或构建更好的构建工具。

我不知道我是否会删除它们,但可能修改您的构建脚本以忽略复制它们将是一个好主意。我使用Ant来编译和构建我的战争,并且它忽略了.svn dirs。

+0

删除它们不是一个好主意,除非你想要该文件夹不是工作副本了。 – crashmstr 2009-08-19 16:53:42

posted this yesterday over here,但这里又是因为我有种把它放在错误的线程反正...


我已经得到的东西,应该让你的一天。原始来源是here

这是一个(绝对安全)的外壳扩展,它将在Windows中的右键菜单中添加“删除SVN文件夹”。在任何包含这些讨厌文件的目录上运行它。

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的调用并执行它。

svn export是你想要的。它会给你一个没有.svn目录的代码树的干净副本(请注意,这个副本不在版本控制之下,一旦它被导出,svn命令就不能工作)。

我利用这种方法在生产服务器上启动代码。我们的构建脚本需要导出代码分支,tars和gzip它,将其上传到正确的服务器,然后解压缩/解压缩它。

我不确定您的具体情况是否要删除所有.svn目录。但是,如果你这样做,这里是一个bash一行程序来做到这一点:

find . -name .svn -print0 | xargs -0 rm -r 
+2

运行命令之前,一定要输入正确的目录,例如: cd mySVNdirectoryWhereToRemoveTheSubfolders – Camaleo 2014-10-01 10:22:49

你可以看看SVK,这是颠覆之上的一层。其中一个优点是,工作副本的存储库元数据通常存储在.svn目录中,而不是保存在一个*位置,因此您没有隐藏难看的.svn目录问题。这很好。

而且一个PowerShell版本

ls -Force -Recurse -Filter .svn | rm -Force -Recurse 
+0

有时候,一个代码会继承代码,这样做更有用。谢谢! – jray 2009-11-03 00:17:28

如果想做到这一点红宝石只贴上我的剧本在你想递归地删除根文件夹:http://f*osoriani.wordpress.com/2009/03/19/ruby-script-to-remove-svn-folders/

find . -name '.svn' -depth -exec rm -rf '{}' \; -ls

+0

upvote用于安装了cygwin的Windows用户。不过,我发现使用文件资源管理器搜索框要容易得多。 – Roland 2014-08-26 09:05:09

发现 “/ YourFolder” -name“.svn”-exec rm -fdR {} \;

入住这 link

在Win32/Win64的系统,下面的命令应该做的工作:

del /q /s .svn