From: Andreas Ericsson Date: Wed, 16 Jul 2008 07:20:24 GMT Subject: Re: [PATCH] bash completion: Fix the . -> .. revision range completion Message-ID: <487DA138.8040004@op5.se> In-Reply-To: <20080715233851.GA23672@spearce.org> Shawn O. Pearce wrote: > Andreas Ericsson wrote: >> I beat you to it ;-) This works just fine for me regardless of whether >> or not I have a colon in COMP_WORDBREAKS. > ... >> Subject: git-completion.bash: Handle "rev:path" completion properly > ... >> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash >> index d268e6f..e138022 100755 >> --- a/contrib/completion/git-completion.bash >> +++ b/contrib/completion/git-completion.bash >> @@ -293,7 +293,11 @@ __git_complete_file () >> *) >> ls="$ref" >> ;; >> - esac >> + esac >> + # When completing something like 'rev:path', bash behaves >> + # differently whether or not COMP_WORDBREAKS contains a >> + # colon or not. This lets it handle both cases >> + test "${COMP_WORDBREAKS//:}" = "$COMP_WORDBREAKS" && pfx="$ref:$pfx" >> COMPREPLY=($(compgen -P "$pfx" \ >> -W "$(git --git-dir="$(__gitdir)" ls-tree "$ls" \ >> | sed '/^100... blob /s,^.* ,, > > Yea, I did more or less the same thing in my patch, but I also > handled this fix in git-fetch and git-push. The : is also used > there in a refspec and we support completion the right side of the > : in both cases (and yes, on git-push that can be slow as we do > network IO, possibly over SSH). > > So I'm in favor of my patch over yours, but only because of > the fetch and push fixes as well. > I agree, although I'd rather not have seen the case statement in yours. It's bash completion after all, so no need to be "portably fast" ;-) I don't care that much though so long as it gets fixed. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231