summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/completion/git-completion.bash7
-rwxr-xr-xt/t9902-completion.sh6
2 files changed, 8 insertions, 5 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
}
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 0872f8b..25d530a 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -1371,8 +1371,7 @@ test_expect_success 'git switch - with --detach, complete all references' '
EOF
'
-#TODO: checkout --detach incorrectly includes DWIM remote branch names
-test_expect_failure 'git checkout - with --detach, complete only references' '
+test_expect_success 'git checkout - with --detach, complete only references' '
test_completion "git checkout --detach " <<-\EOF
HEAD Z
master Z
@@ -1394,8 +1393,7 @@ test_expect_success 'git switch - with -d, complete all references' '
EOF
'
-#TODO: checkout -d incorrectly includes DWIM remote branch names
-test_expect_failure 'git checkout - with -d, complete only references' '
+test_expect_success 'git checkout - with -d, complete only references' '
test_completion "git checkout -d " <<-\EOF
HEAD Z
master Z