From: Vegard Nossum Date: Tue, 22 Oct 2019 12:11:22 GMT Subject: Re: email as a bona fide git transport Message-ID: In-Reply-To: <1a259d8d-b3d1-b64e-07c3-ba143b42c442@oracle.com> On 10/20/19 8:28 AM, Vegard Nossum wrote: > > 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. I sent v2 of the patches (with metadata _after_ the diff) to the git list here: https://public-inbox.org/git/20191022114518.32055-1-vegard.nossum@oracle.com/T/#u As I wrote in there, we could already today start using git am --message-id when applying patches and this would provide something that a bot could annotate with git notes pointing to lore/LKML/LWN/whatever. I think that would already be a pretty nice improvement over today's situation. Sadly, since the beginning of 2018, this was only used for a measly ~0.14% of all non-merge commits in the kernel: $ git rev-list --count --no-merges --since='2018-01-01' --grep 'Message-Id: ' linus/master 178 $ git rev-list --count --no-merges --since='2018-01-01' linus/master 130777 So how can we spread the word about --message-id and get maintainers to actually use it? I don't suppose it's reasonable to change the 'git am' default setting? Vegard