7 votos

¿Cómo puedo determinar qué es lo que cuelga de git en mi OS X de la máquina?

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.

0voto

Rich Puntos 296

Este se ha detenido ocurriendo a mí. Ahora recibe actualizaciones más rápidas a través de mandos a distancia apuntando a que el sistema de ficheros en /Usuarios/rcook/gitrepos/paraDIS_lib que para la red ala miequipo.net:/Users/rcook/gitrepos/paraDIS_lib, que es lo que normalmente cabría esperar. Hice recorte de la repo tamaño con el impresionante BFG-repo-limpiador de la herramienta. Pero un gran índice realmente no se explica por qué la red era más rápido que el acceso local... suspiro. Sé que esto es una mierda "respuesta", pero yo quería seguir con los resultados.

0voto

user177934 Puntos 21

Sí, en ocasiones, esto sucede para mí también. Pero va normal una vez que reiniciar mi máquina. Probablemente esto comienza a suceder después de actualizar a la versión git 2.7.2.

-1voto

tarunw Puntos 1

He creado un nuevo mando a distancia basado en SSH señala el mismo repositorio. Lo intentó de nuevo con el antiguo sistema de ficheros remoto y funcionó. No sé por qué funcionó así.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X