J'essaie de faire un git pull sur mon Mac à partir d'un repo local. Le processus est bloqué. Ma question est la suivante : pourquoi est-ce qu'il est bloqué et comment puis-je l'arrêter ? C'est-à-dire que je suis dans un repo où les "remotes" sont sur le système de fichiers local :
rcook@mymachine (paraDIS_lib (master)): git remote -v
origin /Users/rcook/gitrepos/paraDIS_lib (fetch)
origin /Users/rcook/gitrepos/paraDIS_lib (push)
Et si je fais un git pull
puis il se bloque, il n'y a pas de progression, rien. Il semble être bloqué à faire quelque chose appelé "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
Et si on l'exécute avec GIT_TRACE, il semble que je sois bloqué sur "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'
En effet, je peux induire un accrochage :
GIT_TRACE=1 git rev-list --objects --stdin --not --all
Tirer depuis le même repo mais depuis une machine distante via ssh fonctionne bien. C'est à dire..,
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)
Il y a, git pull
fonctionne très bien, bien qu'il soit encore très lent.
Ma question est la suivante : la version locale ne devrait-elle pas être beaucoup plus rapide ? Comment puis-je savoir ce qui la ralentit ? Sous linux, je l'exécuterais sous strace, mais sous OS X, il semble que ce soit très difficile à faire, en particulier sous El Capitan avec tous ses trucs de sécurité bizarres.