当--quiet时,checkout(co)是一个关于svn的项目吗?

时间:2014-12-17 15:32:59

标签: svn repository svn-repository

我必须使用 svn 检查大型项目需要一段时间,所以我只是想知道我是否将其设置为--quiet(-q)所以没有消息印刷它会更快?或者这与它无关?

3 个答案:

答案 0 :(得分:1)

Definitelly YES ,使用标准输出总是会使任何进程变慢。我最近做了转储,加载,当然还有10-15GB数据的检出和提交,并且总是使用-q,这导致它在很长的时间内减少了处理持续时间。

答案 1 :(得分:1)

除非您VT100 terminalBAUD 300或Teletype terminal上运行,否则--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 :(得分:0)

这取决于。如果瓶颈是从服务器检索文件,那么它就不会有任何区别。但是如果你有一个缓慢的控制台,那么限制因素可能是它向终端喷出线的速度。

对于一个典型的情况,它不太可能有所作为,但有一些极端情况(通过慢速链接SSH远程机器,并在那里结账,到具有大量小文件的本地仓库) )。