【问题标题】:git svn fetch became slow (up to 30 seconds waiting before every revision fetch)git svn fetch 变慢(在每次修订获取之前最多等待 30 秒)
【发布时间】:2010-12-10 09:47:11
【问题描述】:

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

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

它通常会快速获取修订版的文件,但随后会等待很长时间才能获得下一个修订版。在其他机器上,从同一个 SVN 存储库获取的 git 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 回来:)

【问题讨论】:

  • 只是一个猜测:也许 git svn gc 可以帮助你?虽然它应该是自动运行的,但我认为,值得一试......

标签: git git-svn


【解决方案1】:

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

我昨天所做的是,我更改了网络配置以仅从 DHCP 获取 IP 地址并自己设置搜索域和 DNS 服务器。到目前为止一切正常,但是 git-svn

我注意到,它正在尝试使用某个主机名,这是我在一周前更改的,并且唯一可以使用它的地方是 DNS。在重置网络连接以再次从 DHCP 服务器获取所有内容后,git-svn 的问题消失了。

好的,现在我无法使用我想要的 DNS 搜索路径,但至少 git-svn 又开始工作了。

可能我必须使用/etc/hosts 来设置本地IP 以使用我的主机名来简化反向查找...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 2010-10-09
    • 2016-02-16
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多