Estoy tratando de hacer un git pull en mi Mac de un local de repos. Es colgando. Mi pregunta es, ¿por qué se cuelga y cómo puedo evitarlo? Es decir, estoy en un repo donde los "mandos a distancia" están en el sistema de ficheros 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
, a continuación, simplemente se cuelga, no hay progreso, no hay nada. Parece ser atrapado haciendo algo que se llama "git-subir-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, que puede inducir un bloqueo con:
GIT_TRACE=1 git rev-list --objects --stdin --not --all
Tirando de la misma repo pero desde una máquina remota a través de ssh funciona bien. I. e.,
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 muy bien, aunque es todavía muy lento.
Mi pregunta es, ¿por qué no la versión local se forma de manera más rápida? ¿Cómo puedo averiguar cuál es el retraso de esto? En linux, me gustaría ejecutar en strace, pero en OS X, esto es muy difícil de hacer de lo que parece, especialmente en El Capitan, con todas sus raro de seguridad de las cosas.