2010-12-10 32 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有我的主人,緩解了反向查找的名稱...