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.