2010-12-10 31 views
1

在我新的Ubuntu 10.10 git svn fetch上进行了一些系统重新配置后,每次试图获得新的svn修订版时,等待时间变得非常慢,最多等待30秒。git svn fetch变慢(在每次修订获取前等待30秒)

我使用git-svn version 1.7.1 (svn 1.6.12)

它取修订的文件通常快,但然后等待很长的时间下一次修订。在其他机器上,从同一个SVN仓库获取git svn的速度非常快,正如我之前几天在我的机器上所做的那样。

我丢掉了auth文件夹中的~/.subverion。我重新安装了所有与git相关的软件包并进行了包括库在内的颠覆操作。它没有帮助。

所以我做了一些strace,当获取的修订,并等待,我可以在进程树是这样看:

% ps fxx | egrep '(git|svn)' 
5154 pts/0 S+  0:00 | \_ strace -fc git svn fetch 
5155 pts/0 t+  0:00 |  \_ git svn fetch 
5156 pts/0 tL+ 0:00 |   \_ /usr/bin/perl /usr/lib/git-core/git-svn fetch 
5217 pts/0 S+  0:00 |    \_ git hash-object -w --stdin-paths --no-filters 
5219 pts/0 S+  0:00 |    \_ git cat-file --batch 
5253 pts/0 S+  0:00 |    \_ git update-ref -m r75 refs/remotes/trunk 8a79cacd6d3c36eb338f6ed5f23269a163600d0f 

strace的输出是一样的东西:

% time  seconds usecs/call  calls errors syscall 
------ ----------- ----------- --------- --------- ---------------- 
59.28 0.048312   156  309   waitpid 
39.99 0.032594   104  313   clone 
    0.18 0.000149   0  7443  3296 access 
    0.11 0.000088   0  5936  692 open 
    0.09 0.000071   0  2285   munmap 
    0.06 0.000046   0  228   send 
    0.05 0.000040   0  5761   read 
    0.04 0.000036   0  1962   brk 
    0.04 0.000032   0  4366   fstat64 
    0.04 0.000031   0  1304   write 
    0.03 0.000021   0  6972   close 
    0.02 0.000019   0  6502   mmap2 
    0.02 0.000015   0  131   recvfrom 
    0.01 0.000012   0  335   pipe 
    0.01 0.000011   0  863   recv 
    0.01 0.000010   0  1662  636 stat64 
    0.01 0.000009   0  894   fcntl64 

那么它在做什么waitpid?我想我的快速git-svn回来:)

+0

只是一个猜测:也许Git的SVN GC可以帮助你?虽然它应该自动运行,但我认为,值得一试...... – eckes 2010-12-10 09:55:43

回答

0

好吧,如预期的那样,这是DNS和名称解析的问题。

我昨天做了什么,是我改变了网络配置,从DHCP获取IP地址,并自己设置搜索域和DNS服务器。一切正常,但迄今为止,但git-svn

做了更多strace我注意到,它试图使用一些主机名,我改变了一个星期前,唯一的地方,它可以采取它是DNS。重新设置网络连接后,再次从DHCP服务器获取所有内容后,git-svn的问题消失了。

好吧,现在我不能使用DNS搜索路径,因为我想它,但至少git-svn开始再次工作。

可能是我打一点点与/etc/hosts设置本地IP有我的主人,缓解了反向查找的名称...