Tortoise SVN隐藏了_svn文件夹

时间:2008-10-21 14:55:33

标签: svn version-control tortoisesvn

当我需要将Web解决方案上传到服务器时,它们特别烦人。

有没有办法配置SVN在我的工作目录外创建_svn文件夹? 如果没有,当您只需复制代码时,处理它们的最佳方法是什么?

更新:使用“svn export”命令是有问题的,因为有些文件不受源代码管理,但必须使用.dll,xml数据文件或数据库文件,并且不会导出它们。因此,每次都需要在工作副本的不同子目录中手动复制它们。

9 个答案:

答案 0 :(得分:26)

(目前)不能配置SVN(或TortoiseSVN)来创建工作副本之外的.svn(或_svn)目录。我相信SVN 1.6路线图包括重新访问工作副本库。将管理目录放在其他地方的能力可能来自这项工作,但我猜测。

您应该使用“svn export”命令创建工作副本的“干净”副本(即没有_svn目录)。这适用于命令行客户端。

如果您使用的是TortoiseSVN,可以右键单击工作副本,然后选择“导出...”。这将要求您输入要导出文件的文件夹。或者,您可以将工作副本右键拖动到一个文件夹(一个不是工作副本),TortoiseSVN将打开一个上下文菜单;选项包括“SVN导出到此处”和“SVN导出所有到此处”,后者还导出不受版本控制的文件

答案 1 :(得分:17)

使用“svn export”创建一个干净的目录树。

答案 2 :(得分:12)

Robocopy部署......

robocopy {source} {dest} /MIR /XD _svn /XD .svn

答案 3 :(得分:4)

在TortoiseSVN中,您可以正确点击工作副本并将其拖到其他位置。当出现弹出菜单时,选择“SVN Export Here”。 (这要求检查工作副本中的所有代码,因为导出将来自主干,而不是来自工作副本)

有关详细信息,请参阅这些资源:

答案 4 :(得分:3)

如果您使用nant脚本启用到Web服务器的部署,则它具有_SVN和_SVN / **,因为在复制文件时会自动排除。当通过复制任务复制文件时,nant将过滤掉大量未归档的文件,包括:

  • ** / *〜
  • ** /#*#
  • ** /。#*
  • ** /%*%
  • ** / CVS
  • / CVS /
  • ** /。cvsignore
  • ** /。svn
  • /.svn /
  • ** / _ svn
  • / _ svn /
  • ** / SCCS
  • / SCCS /
  • ** / vssver.scc
  • / _ vti_cnf /

您可以在此项目主页上阅读有关NANT的更多信息:NANT Home

答案 5 :(得分:2)

+1来自Isak Savo的解决方案。

你可以做一个XCOPY并排除“/ svn”文件夹:

XCOPY%1%1_deploy /EXCLUDE:C:\ ExexludeSVN.txt / E / C / I / F / R / Y

ExcludeSVN.txt的内容:

/ _ SVN

事实上,如果您要升级到网络服务器,您的排除文件可以包含更多内容:

  • .pdb
  • .cs
  • .resx
  • .csproj
  • .sln
  • .webinfo
  • .bak
  • .sql
  • .zip
  • .vspscc
  • .vssscc
  • .scc
  • \的Web.config

警告:如果排除.cs文件,则在

之后重新复制.css文件

答案 6 :(得分:1)

Windows中非常脏的方式:创建项目的副本,打开资源管理器,导航到副本所在的目录,然后查找以_svn结尾的所有内容。搜索完成后,选择全部并点击删除。

呸!但它确实非常

答案 7 :(得分:0)

我们将CruiseControl与robocopy一起使用,以便创建存储库的干净副本。

 <exec>
        <executable>C:\Archivos de programa\Windows Resource Kits\Tools\robocopy.exe</executable>
        <buildArgs>E:\CruiseControl\yourproject\Code\trunk\ E:\wwwroot\yourproject *.* /E /XX /XA:H /XO /NDL /NC /NS /NP /XF "*.cache" "*.designer.cs" "*.sln" "*.msbuild" "*.csproj" "*.PDB" "*.user" "*.designer" /XD .svn App_Code obj Properties</buildArgs>
        <buildTimeoutSeconds>60</buildTimeoutSeconds>
        <successExitCodes>1,0</successExitCodes>
 </exec>

/ XF和/ XD参数排除了您不想上传到生产的文件和目录。

您可以找到有关robocopy here的更多信息。

答案 8 :(得分:0)

如果要删除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不会意外地产生不良影响。