当我需要将Web解决方案上传到服务器时,它们特别烦人。
有没有办法配置SVN在我的工作目录外创建_svn文件夹? 如果没有,当您只需复制代码时,处理它们的最佳方法是什么?
更新:使用“svn export”命令是有问题的,因为有些文件不受源代码管理,但必须使用.dll,xml数据文件或数据库文件,并且不会导出它们。因此,每次都需要在工作副本的不同子目录中手动复制它们。
答案 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将过滤掉大量未归档的文件,包括:
您可以在此项目主页上阅读有关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
事实上,如果您要升级到网络服务器,您的排除文件可以包含更多内容:
警告:如果排除.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不会意外地产生不良影响。