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

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

From
Thiago Perrotta <tbperrotta@gmail.com>
Date
Sep 24, 2021, 02:46 UTC
Message-ID
<20210924024606.20542-1-tbperrotta@gmail.com>
In-Reply-To
<87zgs34ccx.fsf@evledraar.gmail.com>

"git send-email" completion (bash, zsh) is inconsistent, its flags are split into both git-completion.bash and git-send-email.perl, and it only emits format-patch flags.

Make shell completion uniform, centralizing completion options on git-send-email.perl.

Make "git send-email --git-completion-helper" properly emit send-email specific options, generating them programmatically.

Additionally, update git-send-email(1) man page to explicitly mention format-patch options.

Differences from V4:

Incorporate Carlo Arenas' and Ævar Arnfjörð Bjarmason's suggestion to programatically generate the flags.

I tried to be concise whilst preserving readability, hopefully it's straightforward to parse the current implementation.

Reviewers of previous versions:
- Bagas Sanjaya
- Carlo Arenas
- Junio Hamano
- Ævar Arnfjörð Bjarmason
Ævar wrote earlier:
> Note: using --in-reply-to to the previous version in "git format-patch"
> helps keep track of the context.

Thanks for the heads up, I am slowly getting used to this email workflow, this is my first contribution. Hopefully I got it right this time.

> Isn't this just:
> my @params = <getopts list>;
> GetOptions(@params);

Let me know if the regex approach I went with is OK. You seem to have suggested me to do something with the `GetOptions` module, but I'm afraid I only know the basics of Perl.

I tried to do something like `GetOptions($USAGE)` but it didn't quite work (clearly I have no idea how to do that :P). If you have something specific in mind, I'd appreciate if you could send a small patch back that I can incorporate. Otherwise, either way, the current regex approach isn't too horrible and seems to be reasonably reliable.

Thiago Perrotta (3):
  send-email: terminate --git-completion-helper with LF
  send-email: programmatically generate bash completions
  send-email docs: add format-patch options
 Documentation/git-send-email.txt       |  6 ++++--
 contrib/completion/git-completion.bash | 11 +----------
 git-send-email.perl                    | 21 +++++++++++++++++----
 t/t9902-completion.sh                  |  3 +++
 4 files changed, 25 insertions(+), 16 deletions(-)
-- 
2.33.0
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 15 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.