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

Re: [PATCH v5 0/3] send-email: shell completion improvements

From
Thiago Perrotta <tbperrotta@gmail.com>
Date
Sep 30, 2021, 03:10 UTC
Message-ID
<CABOtWuqXS_kJk2md=kgg-ReaWtKermpUW_Dk_bc0pMXQL+xMeA@mail.gmail.com>
In-Reply-To
<87bl4h3fgv.fsf@evledraar.gmail.com>
On Fri, 24 Sept 2021 at 16:07, Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
Show 11 quoted lines
> I meant something like the below patch, feel free to incorporate it if
> you'd like with my signed-off-by, i.e. there's no reason to parse the
> usage message, or hardcode another set of options, we've got it right
> there as structured program data being fed to the GetOptions() function.
>
> All we need to do is to assign that to a hash, and use it both for
> emitting the help and to call GetOptions().
>
> What I have doesn't *quite* work, i.e. the --git-completion-helper
> expects "--foo=" I think for things that are "foo=s" in perl, so the
> regex needs adjusting, but that should be an easy addition on top.

1) Thanks Ævar, I get the gist of it. Your approach revealed a few issues with the current usage string:

The following options exist in GetOptions but not in the usage string:

--git-completion-helper --no-signed-off-cc --sender --signed-off-cc

Out of these, I'd argue --git-completion-helper is intentionally omitted, however --sender and --signed-off-cc were overlooked.

2) Also, your patch misses --dump-aliases and --identity; that's because they are in other GetOptions functions in the file.

The two obvious possibilities here are either (i) hard-code them directly, i.e.:

-my @options = sort @gse_options, @fpa_options; +my @options = sort @gse_options, @fpa_options, "--dump-aliases", "--sender";

or (ii) refactor the other two GetOptions like you did in your patch, so that `sub completion_helper` ends up receiving all three hashes (or maybe a single hash as a result of all three merged).

Any preference between (i) or (ii)? I am leaning towards (i).

3) Finally, I noticed that "sort @gse_options, @fpa_options" doesn't really sort fpa_options.

If sorting is really intended, it would be better to modify the source of format-patch to emit sorted output.

Otherwise, we may as well leave it untouched. AFAIK from a completion perspective it seems that it doesn't matter: both bash and zsh emit `git format-patch --<TAB>` sorted today, even though the output of `git format-patch --git-completion-helper` isn't sorted. The only benefit of sorting I see would be to deduplicate ('uniq') flags.

Do you agree with this rationale? Either way, let me know whether or not it's preferable to sort. I'll probably sort `send-email` options anyway just to deduplicate a few flags such as --to-cover, but `format-patch` could remain as is.

I'll wait for replies before sending another patch (on top of your original one).

Previous: Ævar Arnfjörð BjarmasonNext: Thiago Perrotta
Message 17 of 58 in “send-email: shell completion improvements”
  1. 0/3 send-email: shell completion improvementsThiago Perrotta, Aug 20, 2021
  2. 1/3 send-email: print newline for --git-completion-helperThiago Perrotta, Aug 20, 2021
  3. Junio C HamanoAug 20, 2021
  4. 0/3 send-email: shell completion improvementsThiago Perrotta, Aug 28, 2021
  5. 1/3 send-email: terminate --git-completion-helper with LFThiago Perrotta, Aug 28, 2021
  6. 2/3 send-email: move bash completions to core scriptThiago Perrotta, Aug 28, 2021
  7. Carlo ArenasAug 28, 2021
  8. send-email: move bash completions to core scriptThiago Perrotta, Sep 7, 2021
  9. Carlo ArenasSep 7, 2021
  10. 0/3 send-email: shell completion improvementsThiago Perrotta, Sep 21, 2021
  11. 1/3 send-email: terminate --git-completion-helper with LFThiago Perrotta, Sep 21, 2021
  12. 2/3 send-email: move bash completions to core scriptThiago Perrotta, Sep 21, 2021
  13. 3/3 send-email docs: add format-patch optionsThiago Perrotta, Sep 21, 2021
  14. Ævar Arnfjörð BjarmasonSep 23, 2021
  15. 0/3 send-email: shell completion improvementsThiago Perrotta, Sep 24, 2021
  16. Ævar Arnfjörð BjarmasonSep 24, 2021
  17. Thiago PerrottaSep 30, 2021
  18. 1/3 send-email: terminate --git-completion-helper with LFThiago Perrotta, Oct 7, 2021
  19. 0/3 send-email: shell completion improvementsThiago Perrotta, Oct 7, 2021
  20. 3/3 send-email docs: add format-patch optionsThiago Perrotta, Oct 7, 2021
  21. Documentation: better document format-patch options in send-emailCarlo Marcelo Arenas Belón, Oct 9, 2021
  22. Bagas SanjayaOct 9, 2021
  23. Carlo ArenasOct 9, 2021
  24. Bagas SanjayaOct 9, 2021
  25. Junio C HamanoOct 10, 2021
  26. 2/3 send-email: programmatically generate bash completionsThiago Perrotta, Oct 7, 2021
  27. Carlo Marcelo Arenas BelónOct 9, 2021
  28. 0/3 send-email: shell completion improvementsThiago Perrotta, Oct 11, 2021
  29. Ævar Arnfjörð BjarmasonOct 11, 2021
  30. send-email: programmatically generate bash completionsThiago Perrotta, Oct 11, 2021
  31. 0/2 send-email: shell completion improvementsThiago Perrotta, Oct 25, 2021
  32. Ævar Arnfjörð BjarmasonOct 25, 2021
  33. Ævar Arnfjörð BjarmasonOct 26, 2021
  34. Junio C HamanoOct 28, 2021
  35. 1/2 send-email: programmatically generate bash completionsThiago Perrotta, Oct 25, 2021
  36. 2/2 send-email docs: add format-patch optionsThiago Perrotta, Oct 25, 2021
  37. 1/3 send-email: terminate --git-completion-helper with LFThiago Perrotta, Oct 11, 2021
  38. 2/3 send-email: programmatically generate bash completionsThiago Perrotta, Oct 11, 2021
  39. 3/3 send-email docs: add format-patch optionsThiago Perrotta, Oct 11, 2021
  40. 1/3 send-email: terminate --git-completion-helper with LFThiago Perrotta, Sep 24, 2021
  41. 2/3 send-email: programmatically generate bash completionsThiago Perrotta, Sep 24, 2021
  42. 3/3 send-email docs: add format-patch optionsThiago Perrotta, Sep 24, 2021
  43. Bagas SanjayaSep 24, 2021
  44. Carlo ArenasSep 24, 2021
  45. Bagas SanjayaSep 24, 2021
  46. Carlo ArenasSep 24, 2021
  47. Junio C HamanoSep 24, 2021
  48. Carlo ArenasSep 24, 2021
  49. Junio C HamanoSep 24, 2021
  50. Bagas SanjayaSep 25, 2021
  51. Junio C HamanoSep 25, 2021
  52. Carlo Marcelo Arenas BelónSep 25, 2021
  53. Junio C HamanoSep 29, 2021
  54. 3/3 send-email docs: add format-patch optionsThiago Perrotta, Aug 28, 2021
  55. Bagas SanjayaAug 28, 2021
  56. 2/3 send-email: move bash completions to the perl scriptThiago Perrotta, Aug 20, 2021
  57. 3/3 send-email docs: mention format-patch optionsThiago Perrotta, Aug 20, 2021
  58. Junio C HamanoAug 20, 2021

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.