From: Vegard Nossum Date: Fri, 18 Oct 2019 16:50:51 GMT Subject: Re: email as a bona fide git transport Message-ID: In-Reply-To: <20191018161547.GG21137@mit.edu> On 10/18/19 6:15 PM, Theodore Y. Ts'o wrote: > On Fri, Oct 18, 2019 at 04:27:48PM +0200, Vegard Nossum wrote: >> commit ac30b08065cd55362a7244a3bbc8df3563cefaaa >> tree 8f09d9d6ed78f8617b2fe54fe9712990ba808546 >> parent 108b97dc372828f0e72e56bbb40cae8e1e83ece6 >> author Vegard Nossum 1570284959 +0200 >> committer Vegard Nossum 1571408340 +0200 >> gpgsig -----BEGIN PGP SIGNATURE----- > ... > > Would it perhaps be possible to put some or all of these headers after > the patch, as a set of "trailers"? That would make it easier for > human readers of the e-mail to get the bits that they most care > about.... namely, the patch itself. :-) > Yes, agreed. I started out using this approach, but I changed it because the implementation was a bit annoying: 'git am' runs 'git mailsplit', which just splits the email into two parts: 1) headers, changelog, and diffstat; 2) diff and signature. One of my PoC patches changes mailsplit to split the extra metadata into a third file. The problem I ran into with putting the metadata at the end was detecting where the diff ends. A comment in 'git apply' suggested that detecting the difference between "--" as a diff/signature separator and as part of the diff is nontrivial in the sense that you need to actually do some parsing and keep track of hunk sizes. I can try to put it at the end, but maybe the git people have some hints that would make the implementation easier? Is it okay to reimplement a simple diff parser in mailsplit? Thanks, Vegard