summaryrefslogtreecommitdiff
path: root/contrib/completion/git-completion.bash
diff options
context:
space:
mode:
authorJacob Keller <jacob.keller@gmail.com>2020-05-28 18:10:45 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-05-28 19:57:07 (GMT)
commit6d76a5cc7fd19989b32a3b6d4a6132a7dd6aee4e (patch)
tree7dd51045c0d0911debfcebf11fe68969c940373d /contrib/completion/git-completion.bash
parent68d97c7fdd5bbfd87b2e0b14ddfcd2b1825b2059 (diff)
downloadgit-6d76a5cc7fd19989b32a3b6d4a6132a7dd6aee4e.zip
git-6d76a5cc7fd19989b32a3b6d4a6132a7dd6aee4e.tar.gz
git-6d76a5cc7fd19989b32a3b6d4a6132a7dd6aee4e.tar.bz2
completion: improve handling of --detach in checkout
Just like git switch, we should not complete DWIM remote branch names if --detach has been specified. To avoid this, refactor _git_checkout in a similar way to _git_switch. Note that we don't simply clear dwim_opt when we find -d or --detach, as we will be adding other modes and checks, making this flow easier to follow. Update the previously failing tests to show that the breakage has been resolved. Signed-off-by: Jacob Keller <jacob.keller@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/completion/git-completion.bash')
-rw-r--r--contrib/completion/git-completion.bash7
1 files changed, 6 insertions, 1 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 19d0882..5648037 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1489,7 +1489,12 @@ _git_checkout ()
;;
*)
local dwim_opt="$(__git_checkout_default_dwim_mode)"
- __git_complete_refs $dwim_opt
+
+ if [ -n "$(__git_find_on_cmdline "-d --detach")" ]; then
+ __git_complete_refs --mode="refs"
+ else
+ __git_complete_refs $dwim_opt --mode="refs"
+ fi
;;
esac
}