completion: learn to complete `git rebase --onto=`
diff mbox series

Message ID 22e92546ee49d4502fd5a441741a380d62c834c7.1573507362.git.liu.denton@gmail.com
State New
Headers show
Series
  • completion: learn to complete `git rebase --onto=`
Related show

Commit Message

Denton Liu Nov. 11, 2019, 9:25 p.m. UTC
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(+)

Comments

Junio C Hamano Nov. 12, 2019, 4:46 a.m. UTC | #1
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.
Denton Liu Nov. 12, 2019, 6:05 p.m. UTC | #2
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
Junio C Hamano Nov. 13, 2019, 1:11 a.m. UTC | #3
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.

Patch
diff mbox series

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"