Re: Bash completion suggests tags for git branch -D
On Tue, Feb 02, 2021 at 06:01:07AM +0000, Paul Jolly wrote:
Show 22 quoted lines
> Easiest explained via a repro:
>
> cd $(mktemp -d)
> git init
> touch README
> git add -A
> git commit -am 'Initial commit'
> git checkout -b branch
> git tag b-is-a-tag
>
> If you then type:
>
> git branch -D b^
>
> leaving the cursor at the position shown by the caret, then attempt
> completion via <Tab><Tab> (at least according to my bash setup) two
> options are shown:
>
> b-is-a-tag branch
>
> b-is-a-tag is not a branch, so should not be offered as a completion
> candidate in this instance.
It looks like lowercase "-d" works. So maybe the "-d" here:
$ sed -n '/git_branch/,/^}/p' contrib/completion/git-completion.bash | head
_git_branch ()
{
local i c=1 only_local_ref="n" has_r="n"
while [ $c -lt $cword ]; do
i="${words[c]}"
case "$i" in
-d|--delete|-D|-m|--move) only_local_ref="y" ;;
-r|--remotes) has_r="y" ;;
esacjust needs to look for "-D", too?
-Peff