【发布时间】: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 可以帮助你?虽然它应该是自动运行的,但我认为,值得一试......