[PATCH] checkpatch: add checks for fixes tags

From: Wen Yang
Date: Thu Oct 17 2019 - 08:37:15 EST


SHA1 should be at least 12 digits long, as suggested
by Stephen:
Https://lkml.org/lkml/2019/9/10/626
Https://lkml.org/lkml/2019/7/10/304

And the fixes tag should also be capitalized (Fixes:),
as suggested by David:
Https://lkml.org/lkml/2019/10/1/1067

Add checks to the above issues.

Signed-off-by: Wen Yang <wenyang@xxxxxxxxxxxxxxxxx>
Cc: Andy Whitcroft <apw@xxxxxxxxxxxxx> (maintainer:CHECKPATCH)
Cc: Joe Perches <joe@xxxxxxxxxxx> (maintainer:CHECKPATCH)
Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx (open list)
---
scripts/checkpatch.pl | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index a85d719df1f4..daefd0c546ff 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2925,7 +2925,7 @@ sub process {
}

# check for invalid commit id
- if ($in_commit_log && $line =~ /(^fixes:|\bcommit)\s+([0-9a-f]{6,40})\b/i) {
+ if ($in_commit_log && $line =~ /(\bcommit)\s+([0-9a-f]{6,40})\b/i) {
my $id;
my $description;
($id, $description) = git_commit_info($2, undef, undef);
@@ -2935,6 +2935,25 @@ sub process {
}
}

+# check for invalid fixes tag
+ if ($in_commit_log && $line =~ /(^fixes:)\s+([0-9a-f]{6,40})\b/i) {
+ my $id;
+ my $description;
+ ($id, $description) = git_commit_info($2, undef, undef);
+ if (!defined($id)) {
+ WARN("UNKNOWN_COMMIT_ID",
+ "Unknown commit id '$2', maybe rebased or not pulled?\n" . $herecurr);
+ }
+ if ($1 ne "Fixes:") {
+ WARN("FIXES_TAG_STYLE",
+ "The fixes tag should be capitalized (Fixes:).\n" . $hereprev);
+ }
+ if (length($2) < 12) {
+ WARN("FIXES_TAG_STYLE",
+ "SHA1 should be at least 12 digits long.\n" . $hereprev);
+ }
+ }
+
# ignore non-hunk lines and lines being removed
next if (!$hunk_line || $line =~ /^-/);

--
2.23.0