Software, such as RVM (ruby version manager), may set chpwd functions that result in an endless loop when cding. chpwd functions should be ignored. As I've only seen this so far on ZSH, I'm applying this change only to the git-completion.zsh overrides. Signed-off-by: Brandon Turner <bt@xxxxxxxxxxxxxxxxx> --- As Øystein pointed out, on zsh we can use "cd -q" to ignore chpwd_functions. Junio - from my testing, unsetting CDPATH is sufficient on zsh. contrib/completion/git-completion.zsh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh index 9f6f0fa..04ed348 100644 --- a/contrib/completion/git-completion.zsh +++ b/contrib/completion/git-completion.zsh @@ -93,6 +93,20 @@ __gitcomp_file () compadd -Q -p "${2-}" -f -- ${=1} && _ret=0 } +__git_ls_files_helper () +{ + ( + test -n "${CDPATH+set}" && unset CDPATH + cd -q "$1" + if [ "$2" == "--committable" ]; then + git diff-index --name-only --relative HEAD + else + # NOTE: $2 is not quoted in order to support multiple options + git ls-files --exclude-standard $2 + fi + ) 2>/dev/null +} + __git_zsh_bash_func () { emulate -L ksh -- 2.1.2 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html