Sto provando a fare un git pull sul mio Mac da un repository locale. È sospeso. La mia domanda è: perché è sospeso e come posso fermarlo? Cioè, sono in un repository in cui i "remoti" sono sul filesystem locale:
rcook@mymachine (paraDIS_lib (master)): git remote -v
origin /Users/rcook/gitrepos/paraDIS_lib (fetch)
origin /Users/rcook/gitrepos/paraDIS_lib (push)
E se faccio un git pull
allora si blocca, nessun progresso, niente. Sembra essere bloccato facendo qualcosa chiamato "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
E se eseguito con GIT_TRACE, sembra che io sia bloccato su "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'
In effetti, posso indurre un blocco con:
GIT_TRACE=1 git rev-list --objects --stdin --not --all
L'estrazione dallo stesso repository ma da una macchina remota tramite ssh funziona correttamente. 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)
Lì, git pull
funziona alla grande, anche se è ancora molto lento.
La mia domanda è, la versione locale non dovrebbe essere più veloce? Come posso capire cosa sta rallentando? Su Linux, lo eseguivo sotto strace, ma su OS X questo è molto difficile da fare, specialmente in El Capitan con tutte le sue stranezze di sicurezza.