git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/1] completion: don't complete revs when --no-format-patch

From
Britton Kerin <britton.kerin@gmail.com>
Date
Feb 14, 2024, 20:49 UTC
Message-ID
<CAC4O8c88Z3ZqxH2VVaNPpEGB3moL5dJcg3cOWuLWwQ_hLrJMtA@mail.gmail.com>
In-Reply-To
<ZcSJaRczdHApmnVi@tanuki>
On Wed, Feb 7, 2024 at 10:57 PM Patrick Steinhardt <ps@pks.im> wrote:
Show 48 quoted lines
>
> On Mon, Jan 08, 2024 at 04:08:30PM -0900, Britton Leo Kerin wrote:
> > In this case the user has specifically said they don't want send-email
> > to run format-patch so revs aren't valid argument completions (and it's
> > likely revs and dirs do have some same names or prefixes as in
> > Documentation/MyFirstContribution.txt 'psuh').
> >
> > Signed-off-by: Britton Leo Kerin <britton.kerin@gmail.com>
> > ---
> >  contrib/completion/git-completion.bash | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> > index 185b47d802..c983f3b2ab 100644
> > --- a/contrib/completion/git-completion.bash
> > +++ b/contrib/completion/git-completion.bash
> > @@ -1242,10 +1242,12 @@ __git_find_last_on_cmdline ()
> >       while test $# -gt 1; do
> >               case "$1" in
> >               --show-idx)     show_idx=y ;;
> > +             --)             shift && break ;;
> >               *)              return 1 ;;
> >               esac
> >               shift
> >       done
> > +     [ $# -eq 1 ] || return 1   # return 1 if we got wrong # of non-opts
> >       local wordlist="$1"
> >
> >       while [ $c -gt "$__git_cmd_idx" ]; do
> > @@ -2429,7 +2431,9 @@ _git_send_email ()
> >               return
> >               ;;
> >       esac
> > -     __git_complete_revlist
> > +     if [ "$(__git_find_last_on_cmdline -- "--format-patch --no-format-patch")" != "--no-format-patch" ]; then
> > +             __git_complete_revlist
> > +     fi
> >  }
>
> While this second hunk here makes perfect sense to me, there is no
> explanation why we need to change `__git_find_last_on_cmdline ()`. It's
> already used with "--guess --no-guess" in another place, so I would
> think that it ought to work alright for this usecase, too. Or is it that
> the existing callsite of this function is buggy, too? If so, we should
> likely fix that in a separate patch together with a test.
>
> Also, adding a test for git-send-email that exercises this new behaviour
> would be very much welcome, too.
I'll look this one over again and add some tests eventually.
Britton
Previous: Patrick SteinhardtNext: Junio C Hamano
Message 8 of 11 in “completion: send-email: don't complete revs when --no-format-patch”
  1. 0/1 completion: send-email: don't complete revs when --no-format-patchBritton Leo Kerin, Jan 8, 2024
  2. Dragan SimicJan 8, 2024
  3. Britton KerinJan 8, 2024
  4. 0/1 completion: don't complete revs when --no-format-patchBritton Leo Kerin, Jan 9, 2024
  5. 1/1 completion: don't complete revs when --no-format-patchBritton Leo Kerin, Jan 9, 2024
  6. Junio C HamanoFeb 7, 2024
  7. Patrick SteinhardtFeb 8, 2024
  8. Britton KerinFeb 14, 2024
  9. Junio C HamanoFeb 21, 2024
  10. Junio C HamanoMar 5, 2024
  11. Junio C HamanoApr 28, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.