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

Re: [RFC] git-format-patch: default to --from to avoid spoofed mails?

From
Jeff King <peff@peff.net>
Date
Jul 28, 2016, 21:56 UTC
Message-ID
<20160728215603.GA22865@sigill.intra.peff.net>
In-Reply-To
<xmqq8twlqwan.fsf@gitster.mtv.corp.google.com>
On Thu, Jul 28, 2016 at 02:37:04PM -0700, Junio C Hamano wrote:
Show 24 quoted lines
> Josh Triplett <josh@joshtriplett.org> writes:
> 
> > I'd like to propose changing the default behavior of git-format-patch to
> > --from (and adding a --from-author option to override, and perhaps a
> > config setting).  This will not change the output *except* when
> > formatting patches authored by someone else.  git-am and git-send-email
> > both handle the --from format without any issues.
> 
> I see this in "format-patch --help":
> 
>            Note that this option is only useful if you are actually
>            sending the emails and want to identify yourself as the
>            sender, but retain the original author (and git am will
>            correctly pick up the in-body header).  Note also that
>            git send-email already handles this transformation for
>            you, and this option should not be used if you are
>            feeding the result to git send-email.
> 
> The first one says "only useful", but it seems what it really means
> is "it becomes no-op if you are sending your own patch anyway".  So
> that one does not worry me.  What is most worrysome is the latter
> half of the last sentence.  Is it really "should not be", or is it
> merely "use of this option is just a waste of time, as you would get
> exactly the same result anyway"?  If it is the latter, that is fine.

It does what you want, and omits the in-body header when it would be redundant.

I think the original reason I did not make "--from" the default is that I was worried about breaking consumers which do not know how to handle in-body headers. "git am" knows how to handle them, but if you have a one-off script that parses only the mail headers, it will start claiming you as the author of every patch.

E.g., if you do:
  git format-patch -o output ...
  grep -hm1 ^From: output/*

right now that gets you a list of patch authors. With "--from", it would return your name N times.

That's obviously a toy, but I wonder if people have scripts which behave similarly.

Another way to think about it is that "--from" is a no-brainer when you really are going to email the patches (and that's why it is has always been the default behavior in git-send-email). But if you _aren't_ going to mail the patches, retaining the original headers is more convenient. It's not clear to me how many non-mail users of format-patch there are (certainly rebase is one of them, but because it uses "am" on the receiving side, I think everything should Just Work).

-Peff
Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 19 in “[RFC] git-format-patch: default to --from to avoid spoofed mails?”
  1. Josh TriplettJul 28, 2016
  2. Junio C HamanoJul 28, 2016
  3. Jeff KingJul 28, 2016
  4. Junio C HamanoJul 28, 2016
  5. Josh TriplettJul 28, 2016
  6. Jeff KingJul 29, 2016
  7. Jeff KingJul 29, 2016
  8. Josh TriplettJul 29, 2016
  9. Jeff KingJul 29, 2016
  10. Josh TriplettJul 30, 2016
  11. Jeff KingJul 30, 2016
  12. Josh TriplettJul 30, 2016
  13. 0/2 format-patch: Transition the default to --from to avoid spoofed mailsJosh Triplett, Jul 30, 2016
  14. Junio C HamanoAug 1, 2016
  15. Jeff KingAug 1, 2016
  16. Junio C HamanoAug 1, 2016
  17. Josh TriplettJul 29, 2016
  18. Josh TriplettJul 29, 2016
  19. Junio C HamanoJul 29, 2016

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.