git svn fetch se volvió lento (hasta 30 segundos esperando antes de cada revisión)

después de una reconfiguration del sistema en mi nuevo Ubuntu 10.10 git svn fetch volvió muy lento esperando hasta 30 segundos cada vez que intenta get una nueva revisión de svn.

Estoy usando git-svn version 1.7.1 (svn 1.6.12)

Obtiene los files de la revisión normalmente rápido, pero luego espera mucho time para get la próxima revisión. En otras máquinas, git svn fetching del mismo repository SVN está funcionando increíblemente rápido como solía hacerlo unos días antes en mi máquina.

Dejé caer la carpeta de auth en el ~/.subverion . Volví a instalar todos los packages relacionados con git y subversión, incluidas las bibliotecas. No ayuda.

Así que hice un poco de strace , cuando obtiene revisiones y espera, puedo ver en el tree de processs algo como esto:

  % 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 

y la salida de la strace es algo así como:

 % 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 ¿qué tipo de waitpid está haciendo? Quiero mi git-svn rápido git-svn vuelta 🙂

Ok, como era de esperar, era un problema con el DNS y las resoluciones de nombres.

Lo que hice ayer, es que cambié la configuration de networking para get solo la dirección IP del DHCP y establecer yo mismo los dominios de búsqueda y los serveres DNS. Todo funcionó bien hasta ahora, pero el git-svn

Haciendo más esfuerzo noté, que estaba tratando de usar un nombre de host, que cambié hace una semana, y el único lugar, donde podría haberlo tomado fue el DNS. Después de restablecer la connection de networking para volver a get todo del server DHCP, el problema con git-svn desapareció.

Bien, ahora no puedo usar las routes de búsqueda de DNS como lo quiero, pero al less git-svn comenzó a funcionar nuevamente.

Probablemente tengo que jugar un poco con /etc/hosts para configurar la dirección IP local para que tenga el nombre de mi host para facilitar las búsquedas inversas …