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

[PATCH 0/5] format-patch: Add --{to,cc}-cmd support

From
ZWZev Weiss <zev@bewilderbeest.net>
Date
Jan 19, 2023, 22:38 UTC
Message-ID
<20230119223858.29262-1-zev@bewilderbeest.net>
Hello,

On more than one occasion I've found myself wishing that git's format-patch command supported the --to-cmd/--cc-cmd flags that send-email does; this patch series is my attempt at implementing it.

This is my first foray into the git codebase, so odds are good I've bungled something or missed the existence of some useful API, but it passes the existing test suite (and the tests added for the new feature), and I'm giving it its inaugural dogfooding on this very series with `contrib/contacts/git-contacts`.

The first patch adds a test I found myself wanting when I realized I had accidentally broken something that wasn't covered by the existing tests. The next two do a bit of refactoring and rearrangement, the fourth adds a bit of library infrastructure to pretty.c, and the final patch implements the feature itself.

There are a few points where I wasn't sure if the approach I chose was really the best:

 - The 'name_and_address_only' pretty_print_context flag added in the
   fourth patch is kind of clunky, but I didn't see any other obvious
   great way to reuse the bits of pp_user_info() that I wanted.
 - Fork/exec-ing another internal format-patch command to generate the
   temporary patch file to run the commands on -- my attempts to
   recurse back into show_log() to do it more directly didn't go well.
 - As currently written any commands specified are only run on the
   patches themselves, not on the cover letter.  The slight
   inconsistency with git-send-email is a bit unfortunate, but I
   figure it's probably not often all that useful in that context
   anyway (and the implementation looked like it would be just
   non-trivial enough that laziness may have played a role as well).

Suggestions on better alternatives there (or elsewhere) are of course welcome.

Thanks, Zev Weiss

Zev Weiss (5):
  t4014: Add test checking cover-letter To header
  log: Refactor duplicated code to headerize recipient lists
  log: Push to/cc handling down into show_log()
  pretty: Add name_and_address_only parameter
  format-patch: Add support for --{to,cc}-cmd flags
 builtin/log.c           |  31 +++---
 log-tree.c              | 208 +++++++++++++++++++++++++++++++++++++++-
 log-tree.h              |   1 +
 pretty.c                |  15 ++-
 pretty.h                |   1 +
 revision.h              |   4 +
 t/t4014-format-patch.sh |  26 +++++
 7 files changed, 262 insertions(+), 24 deletions(-)
-- 
2.39.1.236.ga8a28b9eace8
Next: Zev Weiss
Message 1 of 14 in “format-patch: Add --{to,cc}-cmd support”
  1. 0/5 format-patch: Add --{to,cc}-cmd supportZev Weiss, Jan 19, 2023
  2. 3/5 log: Push to/cc handling down into show_log()Zev Weiss, Jan 19, 2023
  3. Junio C HamanoJan 20, 2023
  4. Calvin WanFeb 1, 2023
  5. 2/5 log: Refactor duplicated code to headerize recipient listsZev Weiss, Jan 19, 2023
  6. Junio C HamanoJan 25, 2023
  7. 4/5 pretty: Add name_and_address_only parameterZev Weiss, Jan 19, 2023
  8. Junio C HamanoJan 25, 2023
  9. Calvin WanFeb 1, 2023
  10. 1/5 t4014: Add test checking cover-letter To headerZev Weiss, Jan 19, 2023
  11. Calvin WanFeb 1, 2023
  12. 5/5 format-patch: Add support for --{to,cc}-cmd flagsZev Weiss, Jan 19, 2023
  13. Calvin WanFeb 1, 2023
  14. Calvin WanFeb 1, 2023

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.