Re: [RFC][PATCH] checkpatch: Properly warn if Change-Id comes after first Signed-off-by line

From: Joe Perches
Date: Mon Feb 24 2020 - 21:13:42 EST


On Mon, 2020-02-24 at 23:58 +0000, John Stultz wrote:
> Quite often, the Change-Id may be between Signed-off-by: lines or
> at the end of them. Unfortunately checkpatch won't catch these
> cases as it disables in_commit_log when it catches the first
> Signed-off-by line.
>
> This has bitten me many many times.

Hmm. When is change-id used in your workflow?

> I suspect this patch will break other use cases, so it probably
> shouldn't be merged, but I wanted to share it just to help
> illustrate the problem.
>
> Cc: Andy Whitcroft <apw@xxxxxxxxxxxxx>
> Cc: Joe Perches <joe@xxxxxxxxxxx>
> Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>

Yes, I expect this will break things.

And it's probably better to not add a Signed-off-by: when
you intend this not to be merged.

> ---
> scripts/checkpatch.pl | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index a63380c6b0d2..a55340a9e3ea 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -2609,7 +2609,8 @@ sub process {
> # Check the patch for a signoff:
> if ($line =~ /^\s*signed-off-by:/i) {
> $signoff++;
> - $in_commit_log = 0;
> + #Disabling in_commit_log here breaks Change-Id checking in some cases
> + #$in_commit_log = 0;
> if ($author ne '') {
> my $l = $line;
> $l =~ s/"//g;