Tortoise SVN隐藏_svn文件夹
-
03-07-2019 - |
题
当我需要将网络解决方案上传到服务器时,它们特别烦人。
有没有办法配置 SVN 在我的工作目录之外创建 _svn 文件夹?如果没有,当您只需要复制代码时处理它们的最佳方法是什么?
更新: 使用“svn export”命令是有问题的,因为有些文件不受源代码控制,但又是必需的,例如 .dll、xml 数据文件或数据库文件,并且它们不会被导出。因此,每次都需要手动将它们复制到工作副本的不同子目录中。
解决方案
(目前)不能配置SVN(或TortoiseSVN)来创建工作副本之外的.svn(或_svn)目录。我相信SVN 1.6路线图包括重新访问工作副本库。将管理目录放在其他地方的能力可能来自这项工作,但我猜测。
你应该使用“svn export”用于创建“干净”的命令您的工作副本的副本(即没有_svn目录)。这适用于命令行客户端。
如果您使用的是TortoiseSVN,可以右键单击工作副本,然后选择“导出...”。这将要求您输入要导出文件的文件夹。或者,您可以将工作副本右键拖动到一个文件夹(一个不是工作副本),TortoiseSVN将打开一个上下文菜单;选项中包括“SVN Export to here”。和“SVN全部导出到此处”,后者还导出不受版本控制的文件。
其他提示
使用“svn export”创建一个干净的目录树。
Robocopy 部署......
robocopy {source} {dest} /MIR /XD _svn /XD .svn
在 TortoiseSVN 中,您可以 正确的 单击工作副本并将其拖动到其他位置。当弹出菜单出现时,选择“SVN Export Here”。(这要求工作副本中的所有代码都已签入,因为导出将从主干和 不是 来自工作副本)
有关详细信息,请参阅这些资源:
- http://tortoisesvn.net/most-forgotten-feature (关于右键+拖动上下文菜单)
- http://tortoisesvn.net/node/343 (关于取消 svn 工作副本的版本控制)。如果你用这个方法,我 思考 您的未版本化文件将保留在该文件夹中,但我还没有尝试过......
如果您使用 nant 脚本启用到 Web 服务器的部署,它会在复制文件时自动排除 _SVN 和 _SVN/** 。nant 在通过其复制任务复制文件时会过滤掉大量不需要的文件,包括:
- **/*~
- **/#*#
- **/.#*
- **/%*%
- **/CVS
- /CVS/
- **/.cvsignore
- **/.svn
- /.svn/
- **/_svn
- /_svn/
- **/SCCS
- /SCCS/
- **/vssver.scc
- /_vti_cnf/
您可以在其项目主页上阅读有关 NANT 的更多信息: 南特首页
Isak Savo 的解决方案+1。
您可以执行 XCOPY 并排除“/svn”文件夹:
XCOPY %1 %1_deploy /EXCLUDE:C:\ExcludeSVN.txt /E /C /I /F /R /Y
排除SVN.txt的内容:
/_svn
事实上,如果您想上传到网络服务器,您的排除文件可以包含更多内容:
- .pdb
- 。CS
- .resx
- .csproj
- .sln
- .webinfo
- .bak
- .sql
- 。压缩
- .vspscc
- .vssscc
- .scc
- \Web.config
警告 :如果您排除 .cs 文件,则需要在之后重新复制 .css 文件
Windows中非常脏的方式:创建项目的副本,打开资源管理器,导航到副本所在的目录,然后查找以_svn结尾的所有内容。搜索完成后,选择全部并点击删除。
呸!但它确实非常。
我们将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的更多信息。
如果要删除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 /删除-所有 - svn的-文件-在窗口/
请记住,上面的代码有.svn,而链接中的代码只有* svn,所以它更好 让.svn不会意外地产生不良影响。