oh-my-zsh lento, pero solo para ciertos repositorios de Git

Resuelto Jason Swett asked hace 11 años • 14 respuestas

Recientemente comencé a usar Zsh y es increíble. Desafortunadamente, para el proyecto que considero mi proyecto "principal", todo va lento. Lo que quiero decir es que cada vez que ejecuto un comando, lspor ejemplo, hay un retraso de aproximadamente cinco segundos entre el momento en que se ejecuta el comando y el momento en que puedo usar la terminal nuevamente.

¿Qué podría ser diferente en este repositorio que hace que Zsh sea tan lento? Supongo que es algo específico de Zsh porque no había ningún problema antes de comenzar a usar Zsh. Intenté hacer un git cleanpero no hizo ninguna diferencia notable.

Estoy en Mac OS X si eso importa.

Actualización: Resulta que esta línea mía .zshenves la que lo hacía lento:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

Si comento esa línea, pasa de tardar unos 3 segundos a aproximadamente 1 segundo. Desafortunadamente, necesito esa línea, ya que muchos de mis proyectos usan RVM. No sé qué hacer ahora.

Actualización 2 : esto parece ser específicamente algo de oh-my-zsh. Si no cargo ~/.oh-my-zsh/oh-my-zsh.sh, no tengo problema.

Jason Swett avatar Oct 07 '12 08:10 Jason Swett
Aceptado

Puedes agregar esto a tu configuración de git y zsh ya no verificará el estado

git config --add oh-my-zsh.hide-status 1
git config --add oh-my-zsh.hide-dirty 1

Explicación

Hay dos funciones centrales de git en lib/git.zsh :

  • git_prompt_info()
  • parse_git_dirty()

Cada método tiene un interruptor de configuración de git para desactivarlo:

  • oh-my-zsh.hide-status
  • oh-my-zsh.hide-dirty

Algunos temas crean sus propias consultas de git y, a veces, ignoran estas banderas .

Pascalius avatar Sep 16 '2014 08:09 Pascalius

Oh_my_zsh parece ser lento para algunos repositorios porque verifica el estado del repositorio después de cada comando. Este comportamiento se puede anular en la nueva versión de .oh_my_zsh. Simplemente descomente la siguiente línea en .zshrc:

DISABLE_UNTRACKED_FILES_DIRTY="verdadero"

Después de esto, reinicia tu terminal o ejecuta lo siguiente:

fuente ~/.zshrc

Peeyush Goela avatar Aug 10 '2016 06:08 Peeyush Goela