2020-02-12 23:33:29

by John Hubbard

[permalink] [raw]
Subject: [PATCH 1/1] checkpatch: support "base-commit:" format

In order to support the get-lore-mbox.py tool described in [1], I ran:

git format-patch --base=<commit> --cover-letter <revrange>

...which generated a "base-commit: <commit-hash>" tag at the end of the
cover letter. However, checkpatch.pl generated an error upon encounting
"base-commit:" in the cover letter:

"ERROR: Please use git commit description style..."

...because it found the "commit" keyword, and failed to recognize that
it was part of the "base-commit" phrase, and as such, should not be
subjected to the same commit description style rules.

Update checkpatch.pl to include a special case for "base-commit:", so
that that tag no longer generates a checkpatch error.

[1] https://lwn.net/Articles/811528/ "Better tools for kernel
developers"

Cc: Andy Whitcroft <[email protected]>
Cc: Joe Perches <[email protected]>
Cc: Konstantin Ryabitsev <[email protected]>
Cc: Jonathan Corbet <[email protected]>
Signed-off-by: John Hubbard <[email protected]>
---
scripts/checkpatch.pl | 1 +
1 file changed, 1 insertion(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index a63380c6b0d2..f241865cedb3 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2761,6 +2761,7 @@ sub process {

# Check for git id commit length and improperly formed commit descriptions
if ($in_commit_log && !$commit_log_possible_stack_dump &&
+ $line !~ /base-commit:/ &&
$line !~ /^\s*(?:Link|Patchwork|http|https|BugLink):/i &&
$line !~ /^This reverts commit [0-9a-f]{7,40}/ &&
($line =~ /\bcommit\s+[0-9a-f]{5,}\b/i ||
--
2.25.0


2020-02-13 01:08:02

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 1/1] checkpatch: support "base-commit:" format

On Wed, 2020-02-12 at 15:32 -0800, John Hubbard wrote:
> In order to support the get-lore-mbox.py tool described in [1], I ran:
>
> git format-patch --base=<commit> --cover-letter <revrange>
>
> ...which generated a "base-commit: <commit-hash>" tag at the end of the
> cover letter. However, checkpatch.pl generated an error upon encounting
> "base-commit:" in the cover letter:
>
> "ERROR: Please use git commit description style..."
>
> ...because it found the "commit" keyword, and failed to recognize that
> it was part of the "base-commit" phrase, and as such, should not be
> subjected to the same commit description style rules.
>
> Update checkpatch.pl to include a special case for "base-commit:", so
> that that tag no longer generates a checkpatch error.
>
> [1] https://lwn.net/Articles/811528/ "Better tools for kernel
> developers"
>
> Cc: Andy Whitcroft <[email protected]>
> Cc: Joe Perches <[email protected]>
> Cc: Konstantin Ryabitsev <[email protected]>
> Cc: Jonathan Corbet <[email protected]>
> Signed-off-by: John Hubbard <[email protected]>
> ---
> scripts/checkpatch.pl | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index a63380c6b0d2..f241865cedb3 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -2761,6 +2761,7 @@ sub process {
>
> # Check for git id commit length and improperly formed commit descriptions
> if ($in_commit_log && !$commit_log_possible_stack_dump &&
> + $line !~ /base-commit:/ &&

If this base-commit: entry is only at the start of line,
I presume this should actually be

$line !~ /^base-commit:/ &&
or maybe
$line !~ /^\s*base-commit:/ &&

> $line !~ /^\s*(?:Link|Patchwork|http|https|BugLink):/i &&
> $line !~ /^This reverts commit [0-9a-f]{7,40}/ &&
> ($line =~ /\bcommit\s+[0-9a-f]{5,}\b/i ||

2020-02-13 01:34:09

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 1/1] checkpatch: support "base-commit:" format

On Wed, 2020-02-12 at 17:06 -0800, Joe Perches wrote:
> On Wed, 2020-02-12 at 15:32 -0800, John Hubbard wrote:
> > In order to support the get-lore-mbox.py tool described in [1], I ran:
> >
> > git format-patch --base=<commit> --cover-letter <revrange>
> >
> > ...which generated a "base-commit: <commit-hash>" tag at the end of the
> > cover letter. However, checkpatch.pl generated an error upon encounting
> > "base-commit:" in the cover letter:
> >
> > "ERROR: Please use git commit description style..."
> >
> > ...because it found the "commit" keyword, and failed to recognize that
> > it was part of the "base-commit" phrase, and as such, should not be
> > subjected to the same commit description style rules.
> >
> > Update checkpatch.pl to include a special case for "base-commit:", so
> > that that tag no longer generates a checkpatch error.
[]
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> > @@ -2761,6 +2761,7 @@ sub process {
> >
> > # Check for git id commit length and improperly formed commit descriptions
> > if ($in_commit_log && !$commit_log_possible_stack_dump &&
> > + $line !~ /base-commit:/ &&
>
> If this base-commit: entry is only at the start of line,
> I presume this should actually be
>
> $line !~ /^base-commit:/ &&
> or maybe
> $line !~ /^\s*base-commit:/ &&
>
> > $line !~ /^\s*(?:Link|Patchwork|http|https|BugLink):/i &&

and probably better to just add it to this line instead like

$line !~ /^\s*(?:Link|Patchwork|http|https|BugLink|base-commit):/i &&


2020-02-13 04:28:56

by John Hubbard

[permalink] [raw]
Subject: Re: [PATCH 1/1] checkpatch: support "base-commit:" format

On 2/12/20 5:32 PM, Joe Perches wrote:
> On Wed, 2020-02-12 at 17:06 -0800, Joe Perches wrote:
>> On Wed, 2020-02-12 at 15:32 -0800, John Hubbard wrote:
>>> In order to support the get-lore-mbox.py tool described in [1], I ran:
>>>
>>> git format-patch --base=<commit> --cover-letter <revrange>
>>>
>>> ...which generated a "base-commit: <commit-hash>" tag at the end of the
>>> cover letter. However, checkpatch.pl generated an error upon encounting
>>> "base-commit:" in the cover letter:
>>>
>>> "ERROR: Please use git commit description style..."
>>>
>>> ...because it found the "commit" keyword, and failed to recognize that
>>> it was part of the "base-commit" phrase, and as such, should not be
>>> subjected to the same commit description style rules.
>>>
>>> Update checkpatch.pl to include a special case for "base-commit:", so
>>> that that tag no longer generates a checkpatch error.
> []
>>> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> []
>>> @@ -2761,6 +2761,7 @@ sub process {
>>>
>>> # Check for git id commit length and improperly formed commit descriptions
>>> if ($in_commit_log && !$commit_log_possible_stack_dump &&
>>> + $line !~ /base-commit:/ &&
>>
>> If this base-commit: entry is only at the start of line,


As far as I can tell, we should be able to rely on that, yes.


>> I presume this should actually be
>>
>> $line !~ /^base-commit:/ &&
>> or maybe
>> $line !~ /^\s*base-commit:/ &&
>>
>>> $line !~ /^\s*(?:Link|Patchwork|http|https|BugLink):/i &&
>
> and probably better to just add it to this line instead like
>
> $line !~ /^\s*(?:Link|Patchwork|http|https|BugLink|base-commit):/i &&
>

Yes, that looks nice. I'll send a v2 doing it that way.


thanks,
--
John Hubbard
NVIDIA