¿Cómo puedo determinar qué está bloqueando git en mi máquina OS X?

5

Estoy tratando de hacer un git pull en mi Mac desde un repositorio local. Está colgando. Mi pregunta es, ¿por qué está colgado y cómo puedo detenerlo? Es decir, estoy en un repositorio donde los "remotos" están en el sistema de archivos local:

rcook@mymachine (paraDIS_lib (master)): git remote -v
origin  /Users/rcook/gitrepos/paraDIS_lib (fetch)
origin  /Users/rcook/gitrepos/paraDIS_lib (push)

Y si hago un git pull , entonces simplemente se bloquea, no hay progreso, nada. Parece estar atascado haciendo algo llamado "git-upload-pack":

rcook@RichCookHomeMac (~ (BARE:master)): psfind git
root            15840     1   0.0  0.0 git              git fetch
rcook           23160 22699   0.0  0.0 git              git pull -v --progress
rcook           23161 23160   0.0  0.0 git              git fetch --update-head-ok -v --progress
rcook           23162 23161   0.0  0.0 git-upload-pack  git-upload-pack /Users/rcook/gitrepos/paraDIS_lib

Y si se ejecuta con GIT_TRACE, parece que estoy colgado en "git rev-list":

rcook@RichCookHomeMac (paraDIS_lib.local (master)):    GIT_TRACE=1 git pull
16:51:50.002029 git.c:348               trace: built-in: git 'pull'
16:51:50.002479 run-command.c:335       trace: run_command: 'fetch' '--update-head-ok'
16:51:50.003491 exec_cmd.c:128          trace: exec: 'git' 'fetch' '--update-head-ok'
16:51:50.016960 git.c:348               trace: built-in: git 'fetch' '--update-head-ok'
16:51:50.017949 run-command.c:335       trace: run_command: 'git-upload-pack '\''/Users/rcook/gitrepos/paraDIS_lib'\'''
16:51:50.018872 run-command.c:195       trace: exec: '/bin/sh' '-c' 'git-upload-pack '\''/Users/rcook/gitrepos/paraDIS_lib'\''' 'git-upload-pack '\''/Users/rcook/gitrepos/paraDIS_lib'\'''
16:51:50.038192 run-command.c:335       trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'

De hecho, puedo provocar un bloqueo con:

GIT_TRACE=1 git rev-list --objects --stdin --not --all

Tirar desde el mismo repositorio pero desde una máquina remota a través de ssh funciona bien. Es decir,

rcook@rzhasgpu18 (paraDIS_lib (master)): git remote -v
origin  mymachine.net:/Users/rcook/gitrepos/paraDIS_lib (fetch)
origin  mymachine.net:/Users/rcook/gitrepos/paraDIS_lib (push)

Allí, git pull funciona bien, aunque sigue siendo muy lento.

Mi pregunta es, ¿no debería la versión local ser mucho más rápida? ¿Cómo puedo averiguar qué está ralentizando esto? En linux, lo ejecutaría bajo strace, pero en OS X parece que es muy difícil de hacer, especialmente en El Capitán con todas sus extrañas cosas de seguridad.

    
pregunta Rich 24.11.2015 - 00:56

3 respuestas

0

Esto ha dejado de pasarme. Ahora obtengo actualizaciones más rápidas a través de los controles remotos que apuntan al sistema de archivos como / Users / rcook / gitrepos / paraDIS_lib que para ala mymachine.net:/Users/rcook/gitrepos/paraDIS_lib en red, que es lo que normalmente esperaría. Recorté el tamaño del repositorio utilizando la increíble herramienta BFG-repo-cleaner . Pero un índice grande no explica realmente por qué la red fue más rápida que el acceso local ... suspiro. Sé que esta es una "respuesta" de mierda, pero quería seguir con los resultados.

    
respondido por el Rich 01.04.2016 - 20:15
-1

Creé un nuevo control remoto basado en SSH que apunta al mismo repositorio. Intenté nuevamente con el antiguo sistema de archivos remoto y funcionó. No sé por qué funcionó así.

    
respondido por el tarunw 01.04.2016 - 05:40
-1

Sí, a veces esto también me pasa a mí. Pero se vuelve normal una vez que reinicio mi máquina. Probablemente empiece a suceder después de la actualización a la versión 2.7.2 de git.

    
respondido por el Daniel 01.04.2016 - 15:01

Lea otras preguntas en las etiquetas