Thread (4 messages) 4 messages, 2 authors, 2020-01-06

Re: git-am doesn't strip CRLF line endings when the mbox is base64-encoded

From: Todd Zullinger <hidden>
Date: 2019-12-18 19:41:53

George Dunlap wrote:
On 12/18/19 11:42 AM, George Dunlap wrote:
quoted
Using git 2.24.0 from Debian testing.

It seems that git-am will strip CRLF endings from mails before applying
patches when the mail isn't encoded in any way.  It will also decode
base64-encoded mails.  But it won't strip CRLF endings from
base64-encoded mails.

Attached are two mbox files for two different recent series.
plainenc.am applies cleanly with `git am`, while base64enc.am doesn't.

Poking around the man pages, it looks like part of the issue might be
that the CRLF stripping is done in `git mailsplit`, before the base64
encoding, rather than after.
Poking around -- it looks like the CRLF stripping would be better done
in `git mailinfo` after the decoding.

Also, this can *almost* be worked around using hooks -- there's an
`applypatch-msg` hook which can strip the CLRFs from the commit message,
but no hook (AFAICT) corresponding `applypatch-patch` which is run on
the patch itself before being applied.
This came up recently in [ref]¹.
I don't know if any of that discussion will prove useful to
you if you want to poke at this further or not.

¹ https://lore.kernel.org/git/20191130180301.5c39d8a4@lwn.net/ (local)

-- 
Todd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help