From: Robert Estelle <robertestelle@xxxxxxxxx> In the basic `[`/`test` command, the string equality operator is a single `=`. The `==` operator is only available in `[[`, which is a bash-ism also supported by zsh. This mix-up was causing the following completion error in zsh: > __git_ls_files_helper:7: = not found (That message refers to the extraneous symbol in `==` ← `=`). This updates that comparison to use the extended `[[ … ]]` conditional for consistency with the other checks in this file. Signed-off-by: Robert Estelle <robertestelle@xxxxxxxxx> --- completion: Fix incorrect bash/zsh string equality check This fixes an error in contrib/completion/git-completion.bash caused by the incorrect use of == (vs. single =) inside a basic [/test command. Double-equals == should only be used with the extended [[ comparison. This was causing the following completion error in zsh: > __git_ls_files_helper:7: = not found That message refers to the extraneous = symbol in ==. This updates that comparison to use the extended [[ … ]] conditional for consistency with the other checks in this file. Note that there may be some contributing cause to this error related to emulation mode inheritance/stickiness, since it seems that the function is intended to run with emulate ksh and that does not appear to be happening properly. Nevertheless, fixing this comparison fixes this particular error in a compatible way, and I have not observed any other errors. Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1096%2Frwe%2Ffix-completion-sh-eq-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1096/rwe/fix-completion-sh-eq-v1 Pull-Request: https://github.com/git/git/pull/1096 contrib/completion/git-completion.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 4bdd27ddc87..14de5efa734 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -515,7 +515,7 @@ __gitcomp_file () # argument, and using the options specified in the second argument. __git_ls_files_helper () { - if [ "$2" == "--committable" ]; then + if [[ "$2" == "--committable" ]]; then __git -C "$1" -c core.quotePath=false diff-index \ --name-only --relative HEAD -- "${3//\\/\\\\}*" else base-commit: 225bc32a989d7a22fa6addafd4ce7dcd04675dbf -- gitgitgadget