completion: disable dwim on "git switch -d"
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Thu, 20 Jun 2019 09:55:22 +0000 (16:55 +0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 20 Jun 2019 20:31:51 +0000 (13:31 -0700)
Even though dwim is enabled by default, it will never be done when
--detached is specified. If you force "-d --guess" you will get an error
because --guess then implies -c which cannot be used with -d. So we can
disable dwim in "switch -d". It makes the completion list in this case a
bit shorter.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash
index 58d18d41a23f2d33b096c6cd16c1ab11adfab269..656e49710e59fea8378c5f93eff2da072231eae6 100644 (file)
@@ -2183,6 +2183,10 @@ _git_switch ()
                fi
                if [ -z "$(__git_find_on_cmdline "-d --detach")" ]; then
                        only_local_ref=y
+               else
+                       # --guess --detach is invalid combination, no
+                       # dwim will be done when --detach is specified
+                       track_opt=
                fi
                if [ $only_local_ref = y -a -z "$track_opt" ]; then
                        __gitcomp_direct "$(__git_heads "" "$cur" " ")"