Hi,

Quoting Jason Karns <karns...@gmail.com>:

There appears to be a bug in the bash completion for git-branch when
attempting to complete the remote ref argument for --set-upstream-to=

When:

$ git branch --set-upstream-to=origin/mast<TAB>

I would expect it to complete to:

$ git branch --set-upstream-to=origin/master

However, the completion for --set-upstream-to= completes the ref
correctly, but completely wipes the --set-upstream option; resulting
in:

$ git branch origin/master

Strange.

The code in question

   case "$cur" in
   --set-upstream-to=*)
           __gitcomp "$(__git_refs)" "" "${cur##--set-upstream-to=}"
           ;;

looks unsuspicious, this is the "standard" way to complete
'--option=<TAB>' (except that we should use __gitcomp_nl() for completing refs, but that should have no effect on this issue). Does the same issue affect other 'git cmd --option=<TAB>' completions as well, e.g. 'git log --date=<TAB>' or 'git commit --reuse-message=<TAB>'?

We had a similar issue with ':' on the command line a looong while
ago, see v1.5.6.4~9^2 (bash completion: Resolve git show ref:path<tab>
losing ref: portion, 2008-07-15). Maybe we are dealing with the same issue here, just a different character?

What does

   printf "$COMP_WORDBREAKS" |tr ' \t\n' STN

print out?  Is the '=' missing, perhaps?  If that's indeed the case,
does adding it back (COMP_WORDBREAKS="$COMP_WORDBREAKS"=) fix the issue?

Gábor

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to