2008-10-21 99 views
13

当我需要上传到服务器的Web解决方案时,他们特别讨厌。龟SVN隐藏_svn文件夹

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

更新:因为有没有源控制,但需要像.dll文件的XML数据文件或数据库文件下的文件,他们将不会被导出使用“SVN导出”命令是有问题的。因此,每次需要在工作副本的不同子目录中手动复制它们。

+1

因此,您可能需要考虑您的服务器环境设置;如果你有shell访问权限,svn uping,并且简单地使用_svn文件夹来非公开,可能是处理事情的一种更简单的方法。 – 2008-10-21 15:14:16

+0

为什么你有不在源代码管理下的文件?也许你应该创建一个项目标签并将这些文件添加到标签中。然后导出标签。 – Rahul 2008-10-21 15:21:04

+0

执行导出,然后从导出的版本进行构建和部署。 – 2008-10-21 15:29:52

回答

26

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

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

如果您使用的是TortoiseSVN,您可以右键单击工作副本,然后选择“导出...”。这会要求您输入文件的文件夹。或者,您可以右键拖拽工作副本到一个文件夹(不是工作副本),TortoiseSVN将弹出一个上下文菜单;其中的选项是“SVN导出到这里”和“SVN导出全部到这里”,后者也导出文件不受版本控制

17

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

1

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

Yuck!但它的工作原理确实是

3

如果您使用nant脚本启用部署到网络服务器,则它具有_SVN和_SVN/**作为复制文件时自动排除。 。通过复制其副本任务的文件时,包括楠将过滤掉大量的unwaanted文件:

  • **/*〜
  • ** /#*#
  • ** /#*
  • * */*%%
  • **/CVS
  • /CVS/
  • ** /。CVSIGNORE
  • ** /。SVN
  • /。SVN/
  • **/_ SVN
  • /_svn/
  • **/SCCS
  • /SCCS/
  • **/vssver.scc
  • /_vti_cnf/

您可以在其项目主页中阅读更多关于南特的信息h ere:NANT Home

4

在TortoiseSVN中,您可以正确点击工作副本并将其拖动到其他地方。当出现弹出式菜单时,选择“SVN导出到此处”。 (这需要自出口工作副本中的所有代码在检查中会从躯干和从工作拷贝)

看到这些资源的详细信息:

2

+1从伊萨克萨沃的解决方案。

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

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

内容ExcludeSVN.txt的:

/_svn

事实上,如果你想upoload到Web服务器,您排除文件可以包含很多:

  • .PDB
  • 的.cs
  • 的.resx
  • 的.csproj
  • 的.sln
  • .webinfo
  • .BAK
  • .SQL
  • 的.zip
  • .vspscc
  • .vssscc
  • .scc
  • \ Web.config文件

警告:如果排除的.cs文件,你给重新复制。后

12

Robocopy部署CSS文件...

robocopy {source} {dest} /MIR /XD _svn /XD .svn 
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的信息。在文件del_All_Dot_SVN_Folders.cmd

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i" 
) 

保存: