name mac info current ask git bash

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?



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.