mac - git show branch console
__git_ps1 extremadamente lento en el árbol del kernel (6)
$ time __git_ps1
((v2.6.33.4))
real 0m1.467s
user 0m0.864s
sys 0m0.564s
Se está haciendo inutilizable mi pronta; por otro lado, sin embargo, es una característica demasiado útil para renunciar a la ligera. ¿Alguna idea de por qué funciona tan lento y qué puedo hacer al respecto?
Detalles de configuración:
$ uname -a
Linux martin-laptop 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:36:48 UTC 2010 i686 GNU/Linux
$ git --version
git version 1.7.1
$ du -sh .
876M .
Sospecho algo con mi máquina ya que en la caja de mi compañero de trabajo, en el árbol del núcleo del que cloné, el mismo comando regresa al instante
$ time __git_ps1
((v2.6.33.4))
real 0m0.039s
user 0m0.008s
sys 0m0.016s
añadiendo salida hdparm:
mía
$ sudo hdparm -tT /dev/sda4
/dev/sda4:
Timing cached reads: 1542 MB in 2.00 seconds = 772.35 MB/sec
Timing buffered disk reads: 110 MB in 3.02 seconds = 36.42 MB/sec
compañero de trabajo
$ sudo hdparm -Tt /dev/sda6
/dev/sda6:
Timing cached reads: 1850 MB in 2.00 seconds = 926.03 MB/sec
Timing buffered disk reads: 210 MB in 3.02 seconds = 69.53 MB/sec
otras diferencias: el compañero de trabajo está ejecutando git 1.6.5, estoy ejecutando 1.7.1
¿El repositorio tiene submódulos? Vea el comentario sobre "el git status
ahora es muy lento" (con submódulos) en esta publicación , debido a un cambio introducido en 1.7.0:
La solución / solución --ignore-submodules
es pasar " --ignore-submodules
" a " git status
", como se indica en la actualización debajo de la sección: "Actualización: Gracias a VonC, quien señala en los comentarios a continuación que en git 1.7. 2 ahora hay una opción "–nuevo-submódulos" para obtener el estado que puede restaurar el comportamiento anterior y también proporciona la opción útil de que solo los archivos modificados (no los archivos sin seguimiento) hacen que el submódulo se muestre como sucio. "
¿Podrías probar mi versión de git PS1? ¿Es más rápida o más lenta?
¿Qué tal actualizar git-completed.bash a la última http://git.kernel.org/?p=git/git.git;a=tree;f=contrib/completion;h=525eddf7e4c03acc7b3f01f09f45515cf63cd9b4;hb=master de http://git.kernel.org/?p=git/git.git;a=tree;f=contrib/completion;h=525eddf7e4c03acc7b3f01f09f45515cf63cd9b4;hb=master
¿El problema es local en este repositorio del kernel o en general?
¿ git fsck --full
revela algo?
Para arreglar esto solo agrega esto en tu .bashrc
export GIT_PS1_SHOWDIRTYSTATE=
export GIT_PS1_SHOWUNTRACKEDFILES=
Deshabilitará algunas búsquedas de archivos.
Resultó ser una combinación de dos cosas:
Estaba usando
export GIT_PS1_SHOWDIRTYSTATE=true
export GIT_PS1_SHOWUNTRACKEDFILES=true
por defecto. que resultó ser inutilizable en un árbol del tamaño del núcleo. Eliminar estas opciones elimina un poco de funcionalidad agradable de __git_ps1, pero al menos vuelve instantáneamente ahora. (Lección útil: pruebe cosas de una cuenta de usuario recién creada antes que cualquier otra cosa).
Además, el disco duro de mi máquina de trabajo es simplemente lento, por lo que no fue un problema de git en sí mismo; Es solo la primera vez que realmente se atormenta ante mi aviso.
para saber dónde exactamente esto lleva tiempo puedes hacer:
bash -x
entonces
__git_ps1
El mío estaba tomando tiempo para
++ git ls-files --others --exclude-standard
estaba listando todos los archivos de mi gector casa drectory. incluso en un ssd rápido, tomó bastante tiempo.