Re: [RFC/PATCH 1/1] format-patch: add an option to record base tree info

From: Fengguang Wu
Date: Tue Feb 23 2016 - 07:00:25 EST


Hi Dan,

On Tue, Feb 23, 2016 at 01:32:53PM +0300, Dan Carpenter wrote:
> So this is the format for the first patch?
>
> base commit: 0233b800c838ddda41db318ee396320b3c21a560

What's in my mind is lines like

base tree/branch: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
base commit: afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc
base patch-id: a849260a843115dbac4b1a330d44256ee6b16d7b

The point is one piece of information per line, so that new lines can
be added trivially in future, like

base patch-subject: Linux 4.4
base tag: v4.4

The exact format can be improved wherever suitable. For example, use
more suitable key name part (eg. "base commit" => "base-commit") or
value part (eg. "$tree_url $branch" to "$tree_url#$branch").

> Can we change it to include the name of the public tree we are starting
> from?
>
> applies-to: 0233b800c838 git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git#master

No problem, just that I'd prefer breaking up such information into
multi "key: value" lines.

> Of course, my absolute prefered format would be:
>
> applies-to: net-next 0233b800c838
>
> I don't think that's possible though? I often write that sort of a line
> in my emails to Dave already.

Yeah, that'd be most human readable. It does require people (and
scripts) to reach consensus on the tree/branch name, which may only be
possible for well known trees.

> Fengguang was suggesting something like this if we have to include
> unmerged patches:
>
> applies-to: net-next 0233b800c838
> private patchset 1
> private patchset 2
>
> I don't think git knows what a patchset is.

Git may not need to have patchset concept. Suppose a developer's local
branch has

v4.4
private commit 1, subject: do aaa
private commit 2, subject: do bbb
private commit 3, subject: do ccc
private commit 4, subject: do ddd
private commit 5, subject: do eee

If he decided to send commits 1-2 as one patchset, and 3-5 as another
patchset to LKML. The 2 cover letters would look like (only showing
useful fields):

$ git format-patch commit 1..commit 2
[PATCH 0/2]
base commit: afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc

$ git format-patch commit 3..commit 5
[PATCH 0/3]
base patch-subject: do bbb

The 0day robot will be able to find the suitable base and re-create
exactly the same tree object for both the above 2 patchsets based on
the first one's "base commit" and the second one's "base patch-subject".

> We would have to include the subject line for each unmerged patch.

That's a good idea!

> I think we should only do that if there is a cover letter, otherwise
> the it's too noisy.

Or if no cover letter, the information can be included in the first
patch, ie. [PATCH 1/N].

Thanks,
Fengguang