From: SZEDER Gábor Date: Sun, 22 Mar 2015 11:06:12 GMT Subject: Re: bug in bash completion for git-branch --set-upstream-to on OSX Message-ID: <20150322120612.Horde.LAxCkP-VMKE3Ur7ZXII3Hg1@webmail.informatik.kit.edu> Hi, Quoting Jason Karns : > 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 > > 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=' (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=' completions as well, e.g. 'git log --date=' or 'git commit --reuse-message='? 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 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