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

Re: format-patch and send-email

From
Junio C Hamano <junkio@cox.net>
Date
Feb 18, 2007, 09:22 UTC
Message-ID
<7vps87hlbp.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<5680.1171788594@localhost>
Xavier Maillard <zedek@gnu.org> writes:
Show 11 quoted lines
> From 50c7032fa011b1e5c7bd63e4bc474c802017677d Mon Sep 17 00:00:00 2001
> From: Xavier Maillard <zedek@gnu.org>
> Date: Fri, 16 Feb 2007 20:20:18 +0100
> Subject: * Added 2007 to the copyright notice
> To: <maillaxa@gmail.com>
> * Added a note on relation between org-publish and blorg
> * Changed/corrected things here and there
> * Added a warning on needed skills before manipulating your own templates
> ---
>  doc/blorg.texi |   31 +++++++++++++++++++------------
>  1 files changed, 19 insertions(+), 12 deletions(-)
> The "To" header has been set up in my .git/config file. But why
> the 'Subject' is like this and also why are there 2 'From'
> headers ?

The "format-patch" output was designed to (minimally) mimic what you would see in a UNIX mbox as if you (or whoever would apply the e-mailed patches to repository) received it, so that anybody can later run "am" on it. The first "From " is what sometimes is called "UNIX-From " line, which separates each piece of e-mail in mbox formatted mailbox file. The second one is used to record the author of the patch.

The commit log message is expected to be:
	A single line description of a patch
	More detailed explanation of the patch with
        possibly multi-line or multi-paragraph text.
and the single line description becomes the subject.

Your commit seems to squash four completely unrelated changes into one, and enumerates only single-liner description for each independent item, like this:

	* foo
        * bar
        * baz
        * boa

which makes format-patch think you wanted to title it "* foo" with more detailed description "* bar *baz *boa". I think you would be much happier if you acquired a habit to make smaller commits, that touch only one thing at a time without mixing up unrelated things together, and give more descriptive messages to each of them.

> Actually, why can't I just do like this ? :
>
> git format-patch <origin> | git send-email ?

While I know format-patch can be told to write to standard output, I do not know if send-email can be told to read from the standard input (I do not use send-email myself). Some people seem to use send-imap to stuff format-patch output to imap drafts. I just read format-patch output into message composition buffer of my MUA (message mode of Emacs) and send it out just as an ordinary e-mail (iow, as if I typed it). In other words, you do not have to use send-email as-is, if what it does does not suit your needs.

I suspect the intended usage original author of "send-email" envisioned was to have lots of format-patch output files and send them in bulk, so probably reading from standard input was not high on its design goals. I dunno.

While I do believe some people use it, I haven't seen much active development/enhancement on send-email from the users lately.

Previous: Xavier MaillardNext: Xavier Maillard
Message 2 of 3 in “format-patch and send-email”
  1. Xavier MaillardFeb 18, 2007
  2. Junio C HamanoFeb 18, 2007
  3. Xavier MaillardFeb 18, 2007

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.