Message ID | 22e92546ee49d4502fd5a441741a380d62c834c7.1573507362.git.liu.denton@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | completion: learn to complete `git rebase --onto=` | expand |
Denton Liu <liu.denton@gmail.com> writes: > Before, when there was a space, we'd start a new word and, as a result, > fallback to __git_complete_refs() and `--onto` would be completed this > way. However, now we match the `--*` case which does not know how to > offer completions for refs. Very well explained. Thanks, will queue.
Hi Junio, On Tue, Nov 12, 2019 at 01:46:33PM +0900, Junio C Hamano wrote: > Denton Liu <liu.denton@gmail.com> writes: > > > Before, when there was a space, we'd start a new word and, as a result, > > fallback to __git_complete_refs() and `--onto` would be completed this > > way. However, now we match the `--*` case which does not know how to > > offer completions for refs. > > Very well explained. Thanks, will queue. Could you please queue this on the tip of 'dl/complete-rebase-and-archive' since it fixes a regression introduced in that branch? Thanks, Denton
Denton Liu <liu.denton@gmail.com> writes: > On Tue, Nov 12, 2019 at 01:46:33PM +0900, Junio C Hamano wrote: >> Denton Liu <liu.denton@gmail.com> writes: >> >> > Before, when there was a space, we'd start a new word and, as a result, >> > fallback to __git_complete_refs() and `--onto` would be completed this >> > way. However, now we match the `--*` case which does not know how to >> > offer completions for refs. >> >> Very well explained. Thanks, will queue. > > Could you please queue this on the tip of > 'dl/complete-rebase-and-archive' since it fixes a regression introduced > in that branch? The topic dl/complete-rebase-onto, which has this patch, is built directly on top of that topic. Since we may need to rewrite the patch when further review comments come in, I'd prefer to leave it separate from the other topic (which must not be rewritten) at least for now. Thanks.
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 7b1ab46f0b..2b644056af 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -2021,6 +2021,10 @@ _git_rebase () __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" return ;; + --onto=*) + __git_complete_refs --cur="${cur##--onto=}" + return + ;; --*) __gitcomp_builtin rebase "" \ "$__git_rebase_interactive_inprogress_options"
In 2b9bd488ae ("completion: teach rebase to use __gitcomp_builtin", 2019-09-12), the completion script learned to complete rebase using __gitcomp_builtin(). However, this resulted in `--onto=` being suggested instead of `--onto `. Before, when there was a space, we'd start a new word and, as a result, fallback to __git_complete_refs() and `--onto` would be completed this way. However, now we match the `--*` case which does not know how to offer completions for refs. Teach _git_rebase() to complete refs in the `--onto=` case so that we fix this regression. Reported-by: Paul Jolly <paul@myitcv.io> Signed-off-by: Denton Liu <liu.denton@gmail.com> --- Thanks for reporting the bug, Paul. I overlooked this case when I made the commit that you pointed out. contrib/completion/git-completion.bash | 4 ++++ 1 file changed, 4 insertions(+)