移除 .svn 文件夹

21

我在开发WordPress网站时使用SVN。现在我想将其上传到服务器,但是有很多位于.svn文件夹中的SVN文件。这些文件可以安全删除吗?如果可以,如何删除?


由于这个问题不适用于WordPress本身,而是涉及开发和部署,我将其标记为离题并迁移到Stack Overflow。 - EAMann
可能是从所有目录中删除.svn文件的重复问题。 - zzzzBov
可能是重复的问题:如何为文件夹删除Subversion控制? - finnw
7个回答

48
find -type d -name .svn|xargs rm -rf

2
感谢您回答了这个问题中有趣的部分。 - Scott C
3
在 Mac OS X 上,你需要稍微修改一下这个命令。尝试这个...找到 ./ -name ".svn" | xargs rm -Rf. - zingle-dingle
1
在新发布的svn 1.8中,顶层只有一个单独的.svn目录。 - thekbb

34
你可能会发现svn export命令很有用。该命令导出一个不带 .svn 文件夹的工作树副本。
如果你按照Subversion推荐的标记方式进行开发,那么这个命令非常方便,你总是可以导出一个标记,然后在生产环境中更好地控制哪个版本。

mod +1:使用svn export在另一个目录中创建您的WordPress网站的干净副本。如果删除.svn文件夹,则无法更新或使用工作区。因此,必须强制执行新的svn checkout - David W.
另外,您可以仅导出最后更新的文件,跨越您需要的提交,非常有用。我喜欢做的另一件事,在CuteFTP中设置一个掩码,以便CuteFTP不会上传.svn文件夹,在快速拖放上传时非常有用,绕过导出。 - farinspace
请注意,svn export 不会遵循存储库中可能存在的任何符号链接,但会将符号链接本身复制到目标位置(这与相对符号链接不兼容..)。 - Ben Clayton

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 以免意外出现不良影响。


4

如果你要删除这些目录,你可能会遇到svn客户端的问题。因此,你需要重新检出你的代码库。

与其删除这些目录,你可以在FTP程序中使用过滤器来排除它们的上传。我正在使用支持此类功能的Trasmit 4。


感谢您的回答,FTP排除似乎很方便,我将检查是否有针对FileZilla的相应功能。 - drtanz
应该是可能的。请查看以下FileZilla Wiki - Roman

2

也许在您的情况下,导出文件夹是更好的解决方案。导出会排除 .svn 文件夹。如果不行,在 Mac/Linux 上,打开终端并输入以下命令:

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

1

你的 SVN checkout 目录应该始终保留 .svn 目录;这是它与 SVN 通信的方式。

但是,任何已检出文件的副本 - 例如用于打包/上传的副本 - 可以安全地删除 .svn 目录。它们不需要 SVN checkout 数据。要从这些副本中删除 .svn 目录,只需将其删除即可。(请参见 @Fernando 的答案,了解 svn export。)


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接