git svn fetch变得很慢(在每次修订提取之前等待最多30秒)

时间:2010-12-10 09:47:12

标签: git git-svn

在我的新Ubuntu 10.10 git svn fetch上进行一些系统重新配置后,每次尝试获取新的svn修订版时,等待最多30秒就变得很慢。

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

它通常可以快速获取修订的文件,但是等待很长时间才能获得下一个版本。在其他机器上,git svn从同一个SVN存储库中获取的工作速度非常快,就像之前几天在我的机器上一样。

我在auth中删除了~/.subverion个文件夹。我重新安装了与git和subversion相关的所有包,包括库。它没有帮助。

所以我做了一些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回复:)

1 个答案:

答案 0 :(得分:0)

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

我昨天做的是,我改变了网络配置,只从DHCP获取IP地址,并自己设置搜索域和DNS服务器。到目前为止,一切都运行良好,但git-svn

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

好的,现在我不能按我的意愿使用DNS搜索路径,但至少git-svn再次开始工作。

可能我必须使用/etc/hosts进行一些操作,将本地IP设置为我的主机名,以便轻松进行反向查找...