我必须使用 svn 检查大型项目需要一段时间,所以我只是想知道我是否将其设置为--quiet
或(-q)
所以没有消息印刷它会更快?或者这与它无关?
答案 0 :(得分:1)
Definitelly YES ,使用标准输出总是会使任何进程变慢。我最近做了转储,加载,当然还有10-15GB数据的检出和提交,并且总是使用-q,这导致它在很长的时间内减少了处理持续时间。
答案 1 :(得分:1)
除非您VT100 terminal在BAUD 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远程机器,并在那里结账,到具有大量小文件的本地仓库) )。