代码之家  ›  专栏  ›  技术社区  ›  antik

突然查询SVN修订似乎很慢(因为可能是SVN 1.5?)

  •  3
  • antik  · 技术社区  · 16 年前

    在将我们的存储库升级到Subversion1.5之后不久,我的团队开始编写一个新的应用程序,持续了几个月,然后突然返回到我们原来的代码库。我们的开发人员正在使用Tortoissesvn 1.5.9和Subversion客户端1.6(仅用于 svnversion -n )以及我们服务器上的Subversion 1.5。我们的客户机通过svn+ssh连接。

    我们的原始代码库使用 SvnVAP-N 查询wc的当前版本。然而,突然间,这个操作变成了我所记得的,在短短的一两秒到10秒的时间内(我还看到在虚拟机开发环境中更糟糕的情况,等等),我们也经历过类似的延迟返回和尝试Tortoise的SubCrev和Subversion客户机1.5。

    这不是一个大问题,但它确实是一个麻烦,因为这个检查是在每次构建操作之前作为预编译步骤进行的。因此,我想把这几秒钟从我们的反馈循环中去掉!

    所以,我的问题是: 我只是离开旧代码库太久了,还是有人注意到这个操作有延迟?

    如果这种延迟是一种新的现象,有人能解决它吗?如果是这样,怎么办?

    4 回复  |  直到 14 年前
        1
  •  2
  •   John Weldon user3678248    16 年前

    在强烈推荐 red-bean svn book 它们声明大型提交(一次提交中有许多文件)会极大地影响性能。你最近是否签入了大量文件,比如最近100次签入?

        2
  •  4
  •   Peter Parker    16 年前

    我同意约翰·韦尔登的观点。如果您使用的是Apache(HTTP(S)),那么有可能会降低SVN日志命令的速度。在提交时会发生这种情况,并更改/添加了大量文件路径。一种解决方案是删除基于路径的授权或删除特定的修订。有关详细信息,请参阅。 here :

    所有这些路径检查有时都非常昂贵,特别是在SVN日志的情况下。检索修订列表时,服务器将查看每个修订中的每个更改路径,并检查其可读性。[…]不用说,这可能很费时 影响大量文件的修订 .这是安全成本:即使您根本没有配置mod_authz_svn之类的模块,mod_dav_svn模块仍然要求apache httpd对每个路径运行授权检查。

        3
  •  1
  •   Joshua Kugler    16 年前

    我刚在服务器上解决了这样的问题。你用什么来认证?签出、提交或日志操作是一系列HTTP请求。在日志显示的情况下,它是数百个。如果您在那里有一个认证层,它将在每个请求上进行认证。如果你是针对一个缓慢的后端授权,这会减慢你的速度。在我的例子中,我们是针对我们的IMAP服务器(一个自定义的mod_auth_imap)进行授权的。一旦我将缓存添加到auth层(将hash-user/pass对保留60秒左右),它就大大加快了速度:签出过去需要1.5分钟,现在需要3秒。

        4
  •  1
  •   calandoa    14 年前

    在(正确配置的)zsh中,可以在SVN根文件夹中尝试此操作:

    sed -ns "4 p" **/.svn/entries | sort | uniq
    

    它将提供最新更新的修订版,或者如果存储库是混合的,则提供修订列表。它不像“svversion”那样完整,可能不符合所有的svn版本(我的版本是1.6.16),但在某些情况下,它可以做到这一点,而且速度非常快(在我的情况下是1s对3mn!)

    推荐文章