From: Vegard Nossum Date: Sun, 20 Oct 2019 06:28:31 GMT Subject: Re: email as a bona fide git transport Message-ID: <1a259d8d-b3d1-b64e-07c3-ba143b42c442@oracle.com> In-Reply-To: <20191020031716.GA17475@1wt.eu> On 10/20/19 5:17 AM, Willy Tarreau wrote: > On Fri, Oct 18, 2019 at 03:14:56PM -0400, Theodore Y. Ts'o wrote: >> On Fri, Oct 18, 2019 at 06:50:51PM +0200, Vegard Nossum wrote: >>> 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. >> >> Could we cheat by having "git format-patch" add a "Diff-size" in the >> header which gives the number of lines in the diff so git am can just >> count lines to find the Trailer section? > > Be careful with this, it starts like this and ends up with non-editable > patches. I'd rather have git-am use best-effort detection of the end. Expect filesystem developers to come up with a format that uses extents ;-) > Also when dealing with stable backports, I've done a lot of > "cat foo.diff >> bar.patch" to fixup some patches in which I just had > to move some parts around. Having to count lines and edit a counter > somewhere is going to become really painful. I almost have some new patches ready for putting the metadata after the patch using a very bare-bones diff parser (it's actually not that bad), I just need to fix a few corner cases that are causing breakage in the git test suite. Vegard