Re: git-am doesn't strip CRLF line endings when the mbox is base64-encoded
- From
- George Dunlap <george.dunlap@citrix.com>
- Date
- Dec 18, 2019, 12:15 UTC
- Message-ID
- <dece7350-7b58-bf19-9fdf-4ccf8df268fb@citrix.com>
- In-Reply-To
- <c44c3958-b0eb-22bd-bc35-04982706162f@citrix.com>
On 12/18/19 11:42 AM, George Dunlap wrote:
Show 13 quoted lines
> 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.
-George