2011-06-03 212 views
19

我在开发WordPress网站时使用SVN。现在我想将它上传到服务器,并在.svn文件夹中有大量SVN文件。这些安全措施是否可以移除?我如何移除它们?删除.svn文件夹

+0

因为这个问题并不适用于WordPress的本身,而是以开发和部署,我收的题外话,并迁移它堆栈溢出。 – EAMann 2011-06-03 15:32:00

+0

[删除所有目录中的.svn文件]可能的重复(http://stackoverflow.com/questions/1301203/removing-svn-files-from-all-directories) – zzzzBov 2012-11-17 03:04:46

+0

可能的重复[如何删除Subversion控件一个文件夹?](http:// stackoverflow。com/questions/154853 /如何删除 - 颠覆 - 控制文件夹) – finnw 2012-11-17 10:09:10

回答

33

您可能还会发现svn export命令很有用。该命令导出没有.svn文件夹的工作树的副本。

如果您使用Subversion建议的标签方式进行开发,您可以随时导出标签,然后对生产版本进行更好的控制,这非常方便。

+0

mod +1:使用'svn export'并为您的wordpress站点在另一个目录中创建一个干净的副本。如果您删除.svn文件夹,则无法再更新或使用您的工作区。因此,无论如何,强制执行新的'svn结帐'。 – 2011-06-03 17:11:24

+0

此外,您只能导出最后更新的文件,只跨越您需要的提交,非常有用。另一件我喜欢做的事情,在CuteFTP中,我设置了一个掩码,以便CuteFTP不会上传.svn文件夹,这在我快速拖放上传时绕过导出很有用。 – farinspace 2011-06-18 19:00:07

+0

请注意,svn导出不会遵循可能存在于回购中的任何符号链接,但会将符号链接自身复制到目标(这对于相对符号链接不起作用)。 – 2012-06-08 10:10:38

4

如果你要删除这些目录,你的svn客户端可能会遇到麻烦。因此,您必须对您的存储库进行新的检出。

而不是删除这些目录,您可以排除这些上传与您的FTP程序内的过滤器。我使用Trasmit 4,它支持这种功能。

+0

感谢您的答案,FTP排除似乎方便,将检查是否有FileZilla的东西。 – 2011-06-03 12:42:34

+0

应该可以。签出以下[FileZilla Wiki](http://wiki.filezilla-project.org/Filename_Filters) – rofflox 2011-06-03 12:55:38

1

您的SVN结帐目录应始终为保留.svn目录;这就是它与SVN沟通的方式。

但是任何拷贝您的签出文件 - 例如,用于包装/上传 - 可以安全地删除.svn目录。他们不需要SVN结帐数据。要从这些副本中删除.svn目录,只需删除它们即可。 (而看到@费尔南多关于SVN出口的回答。)

43
find -type d -name .svn|xargs rm -rf 
+2

谢谢你回答问题的有趣部分。 – 2011-12-30 07:43:05

+3

在mac osx上,您必须稍微更改此命令。试试这个...找到./ -name“.svn”| xargs rm -Rf – 2013-03-19 16:47:13

+1

在新发布的svn 1.8中,顶层只有一个.svn目录。 – thekbb 2013-07-01 22:19:14

5

如果你想删除名为的.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文件不小心有不良影响。

2

也许在你的情况下导出文件夹是一个更好的解决方案。导出,排除.svn文件夹。如果没有,在Mac/Linux的去到终端,然后键入以下:

cd /your/directory 
find . -iname ".svn" -print0 | xargs -0 rm -r