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>
This commit is contained in:
parent
68d97c7fdd
commit
6d76a5cc7f
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user