当 --quiet 时,在 svn 上签出 (co) 项目会更快吗?

问题描述 投票:0回答:3

我必须使用 svn 检查大型项目,这需要一段时间,所以我只是想知道是否将其设置为

--quiet
(-q)
这样就不会打印任何消息,这样会更快吗?还是说这根本就没有关系?

svn repository svn-repository
3个回答
3
投票

除非您使用以 BAUD 300 运行的 VT100 终端电传打字机,否则

--quiet
选项可能不会有太大作用。终端显示的文件检出速度可能比从服务器获取文件的速度快。

如果您使用的是 1.7 之前的 Subversion 版本并且您使用的是 Windows,则您的防病毒程序在扫描从 Subversion 下载的文件时可能会出现问题。在旧版本的 Subversion 中,每个文件都会下载两次:一次在您的工作目录中,一次在

.svn
目录下作为基本版本,您可以使用它来执行
svn diff
而无需打扰服务器。许多 Windows 用户抱怨由于这个问题结账速度慢。更新到 1.7 或 1.8 将使 Windows 结账速度更快。


您可以尝试“稀疏”签出,仅签出您想要的文件。例如,我们进行发布分支,我发现简单地签出整个分支,然后更新只更新我正在处理的项目: $ svn co --depth=immediates $RSVP/branches/5.2

这会检查整个分支以及该分支上的所有项目,但仅检查紧邻该分支下的目录。我得到了项目名称,但没有检查项目下的任何内容。我现在需要更新我的 vibortz 项目:

$ svn up --set-depth=infinity 5.2/vibortz

现在,该项目中的所有文件都已检出。你可以更进一步。

$ svn up --set-depth=immediates 5.2/vibortz A docs A src A dependencies

我对文档或依赖项不感兴趣,但我对这个项目中的缓冲区代码感兴趣:

$ src up --set-depth=infinity 5.2/vibortz/src/buffer A src/buffer A ...

我将整个项目(事实上,整个分支!)作为 Subversion 工作目录,但我只签出我真正感兴趣的文件。我可以根据需要
更新

其他目录。 大多数时候,当我听说某个项目需要很长时间才能签出时,这是因为已编译的二进制文件已签入该项目(这是一个禁忌,但我们不会在这里讨论)。您想要签出整个项目,但不需要二进制文件。同样,稀疏结账可能对你有用。假设 BASH:

$ src co --depth=immediates $URL/trunk/vibortz A vibortz/binaries A vibortz/docs A vibortz/resources A vibortz/source

我只想要资源和来源:

$ src up --set-depth=infinity vibortz/source vibortz/resources

如果我想要所有目录
除了

二进制文件,我可以这样做: $ shopt -s extglob # Kornshell users don't have to do this... $ cd vibortz $ src up --depth=infinity !(binaries)

!(binaries)

从我的更新中排除了目录

binaries
。所有目录
除了
二进制文件都将被更新和扩展。


2
投票
肯定是

,使用标准输出总是会使任何进程变慢。我最近进行了 10-15GB 数据的转储、加载,当然还有签出和提交,并且总是使用 -q 进行,因为它大大减少了进程持续时间。


1
投票

对于典型情况,它不太可能产生影响,但在某些极端情况下会产生影响(通过慢速链接 SSH 到远程计算机,并在那里签出,到包含大量小文件的本地存储库)。

© www.soinside.com 2019 - 2024. All rights reserved.