completion(switch/checkout): treat --track and -t the same
When `git switch --track ` is to be completed, only remote refs are eligible because that is what the `--track` option targets. And when the short-hand `-t` is used instead, the same _should_ happen. Let's make it so. Note that the bug exists both in the completions of `switch` and `completion`, even if it manifests in slightly different ways: While the completion of `git switch -t ` will not even look at remote refs, the completion of `git checkout -t ` will look at both remote _and_ local refs. Both should look only at remote refs. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
0d1bd1dfb3
commit
9f892830d6
|
@ -1607,7 +1607,7 @@ _git_checkout ()
|
||||||
|
|
||||||
if [ -n "$(__git_find_on_cmdline "-b -B -d --detach --orphan")" ]; then
|
if [ -n "$(__git_find_on_cmdline "-b -B -d --detach --orphan")" ]; then
|
||||||
__git_complete_refs --mode="refs"
|
__git_complete_refs --mode="refs"
|
||||||
elif [ -n "$(__git_find_on_cmdline "--track")" ]; then
|
elif [ -n "$(__git_find_on_cmdline "-t --track")" ]; then
|
||||||
__git_complete_refs --mode="remote-heads"
|
__git_complete_refs --mode="remote-heads"
|
||||||
else
|
else
|
||||||
__git_complete_refs $dwim_opt --mode="refs"
|
__git_complete_refs $dwim_opt --mode="refs"
|
||||||
|
@ -2484,7 +2484,7 @@ _git_switch ()
|
||||||
|
|
||||||
if [ -n "$(__git_find_on_cmdline "-c -C -d --detach")" ]; then
|
if [ -n "$(__git_find_on_cmdline "-c -C -d --detach")" ]; then
|
||||||
__git_complete_refs --mode="refs"
|
__git_complete_refs --mode="refs"
|
||||||
elif [ -n "$(__git_find_on_cmdline "--track")" ]; then
|
elif [ -n "$(__git_find_on_cmdline "-t --track")" ]; then
|
||||||
__git_complete_refs --mode="remote-heads"
|
__git_complete_refs --mode="remote-heads"
|
||||||
else
|
else
|
||||||
__git_complete_refs $dwim_opt --mode="heads"
|
__git_complete_refs $dwim_opt --mode="heads"
|
||||||
|
|
|
@ -1622,14 +1622,22 @@ test_expect_success 'git checkout - with -d, complete only references' '
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'git switch - with --track, complete only remote branches' '
|
test_expect_success 'git switch - with --track, complete only remote branches' '
|
||||||
test_completion "git switch --track " <<-\EOF
|
test_completion "git switch --track " <<-\EOF &&
|
||||||
|
other/branch-in-other Z
|
||||||
|
other/main-in-other Z
|
||||||
|
EOF
|
||||||
|
test_completion "git switch -t " <<-\EOF
|
||||||
other/branch-in-other Z
|
other/branch-in-other Z
|
||||||
other/main-in-other Z
|
other/main-in-other Z
|
||||||
EOF
|
EOF
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'git checkout - with --track, complete only remote branches' '
|
test_expect_success 'git checkout - with --track, complete only remote branches' '
|
||||||
test_completion "git checkout --track " <<-\EOF
|
test_completion "git checkout --track " <<-\EOF &&
|
||||||
|
other/branch-in-other Z
|
||||||
|
other/main-in-other Z
|
||||||
|
EOF
|
||||||
|
test_completion "git checkout -t " <<-\EOF
|
||||||
other/branch-in-other Z
|
other/branch-in-other Z
|
||||||
other/main-in-other Z
|
other/main-in-other Z
|
||||||
EOF
|
EOF
|
||||||
|
|
Loading…
Reference in New Issue