Re: git-am doesn't strip CRLF line endings when the mbox is base64-encoded
- From
Todd Zullinger <tmz@pobox.com>
- Date
- Dec 18, 2019, 19:41 UTC
- Message-ID
- <20191218194144.GL17681@pobox.com>
- In-Reply-To
- <dece7350-7b58-bf19-9fdf-4ccf8df268fb@citrix.com>
George Dunlap wrote:
Show 22 quoted lines
> On 12/18/19 11:42 AM, George Dunlap wrote: >> 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 <20191130180301.5c39d8a4@lwn.net>¹. 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/
-- Todd