Junio C Hamano <gitster@xxxxxxxxx> writes: > Rick van Hattem <wolph@xxxxxx> writes: > >> The `git-completion.zsh` unsets the `$ZSH_VERSION` which makes this check moot. The result (at least for me) is that zsh segfaults because of all the variables it's unsetting. >> --- > > Overlong line, lack of sign-off. > >> # Clear the variables caching builtins' options when (re-)sourcing >> # the completion script. >> -if [[ -n ${ZSH_VERSION-} ]]; then >> +if [[ -n ${ZSH_NAME-} ]]; then > > ... > ZSH_VERSION='' . "$script" > ... > > If your ZSH_VERSION is empty, doesn't it indicate that the script > did not find a usable git-completion.bash script (to which it > outsources the bulk of the completion work)? Ah, I was totally mis-reading the script (and partly was confused by your use of "unset"). ZSH_VERSION is reset to an empty string, which breaks the check later done in the bash completion script.