Zsh súper lento dentro de mi repositorio de Git

Zsh súper lento dentro de mi repositorio de Git

Mi Zsh es súper lento dentro de cierto repositorio de Git mío. Cuando busco en Google "zsh git slow", obtengo muchos resultados sobre Gitautocompletadosiendo lento, pero el autocompletado no es necesariamente mi problema; estodo.

Intenté eliminar todos los complementos y, extrañamente, no hizo nada cuando abrí un nuevo shell. Zsh todavía haría cosas de Git dentro de mi repositorio de Git.

Encontré este fragmento enesta página:

function git_prompt_info() {
  ref=$(git symbolic-ref HEAD 2> /dev/null) || return
  echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
}

Eso hizo que todo fuera más rápido nuevamente, pero también me dio un mensaje similar a este:

➜  snip git:(master

Tenga en cuenta el paréntesis derecho que falta. Eso es un poco tonto. Además, todo esto parece un truco que no debería tener que hacer.

También existe esta pregunta SU que parece prometedora, pero los enlaces a la respuesta aceptada están inactivos.

¿Cómo puedo hacer que mi Zsh no sea lento dentro de un repositorio de Git?

Respuesta1

Puede ejecutar el siguiente comando para deshabilitar totalmente la función de estado de git.

git config --global oh-my-zsh.hide-status 1

O agregando la siguiente línea a su ~/.zshrc.

DISABLE_UNTRACKED_FILES_DIRTY="true"

Respuesta2

Para rastrear los comandos de Shell que se invocan mientras es lento, puede ejecutar: set -xo agregarlo a sus archivos de inicio. Le mostrará todos los comandos, incluido el responsable del autocompletado.

Si cree que algunos gitcomandos son lentos, puede definir algunas variables adicionales como:

exports GIT_TRACE=1

Para ver más ejemplos, consulte:¿Cómo puedo depurar problemas relacionados con git/git-shell?

Respuesta3

Lo eliminé zsh-autosuggestionscomo complemento y luego fue más rápido. En mi caso no tuvo nada que ver git.

Respuesta4

Puedes intentar confirmar el origen de tu lentitud con zprof. Agregue esto a su ~/.zshrc(o equivalente):

zmodload zsh/zprof

luego ejecute zprofdespués de cada comando para obtener un resumen. En mi caso, era un complemento totalmente ajeno el que causaba la lentitud.

información relacionada