Come posso determinare cosa appende git sulla mia macchina OS X?

5

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.

    
posta Rich 24.11.2015 - 00:56
fonte

3 risposte

0

Questo ha smesso di succedermi. Ora ottengo aggiornamenti più rapidi tramite telecomandi che puntano al filesystem come / Users / rcook / gitrepos / paraDIS_lib che per networked ala mymachine.net:/Users/rcook/gitrepos/paraDIS_lib, che è quello che normalmente mi aspetterei. Ho ridotto la dimensione del repository utilizzando lo straordinario strumento BFG-repo-cleaner . Ma un grande indice in realtà non spiega perché la rete sia più veloce dell'accesso locale ... sospiro. So che questa è una "risposta" schifosa, ma volevo seguire i risultati.

    
risposta data 01.04.2016 - 20:15
fonte
-1

Ho creato un nuovo telecomando basato su SSH che punta allo stesso repository. Ho provato ancora con il vecchio filesystem remoto e ha funzionato. Non so perché ha funzionato in quel modo.

    
risposta data 01.04.2016 - 05:40
fonte
-1

Sì, ogni tanto succede anche a me. Ma diventa normale una volta riavviata la mia macchina. Probabilmente inizia ad accadere dopo l'aggiornamento a git versione 2.7.2.

    
risposta data 01.04.2016 - 15:01
fonte

Leggi altre domande sui tag