Add a warning for fixes tags that does not follow community conventions.
Showing the changes to scripts/checkpatch.pl (1 of 2 files). Show all
Unified · Split
| @@ -3146,6 +3146,50 @@ sub process { · 3145 unmodified lines | |||
| 3146 | } | 3146 | } |
| 3147 | } | 3147 | } |
| 3148 | 3148 | ||
| 3149 | # Check Fixes: styles is correct | ||
| 3150 | if (!$in_header_lines && | ||
| 3151 | $line =~ /^\s*fixes:?\s*(?:commit\s*)?[0-9a-f]{5,}\b/i) { | ||
| 3152 | my $orig_commit = ""; | ||
| 3153 | my $id = "0123456789ab"; | ||
| 3154 | my $title = "commit title"; | ||
| 3155 | my $tag_case = 1; | ||
| 3156 | my $tag_space = 1; | ||
| 3157 | my $id_length = 1; | ||
| 3158 | my $id_case = 1; | ||
| 3159 | my $title_has_quotes = 0; | ||
| 3160 | |||
| 3161 | if ($line =~ /(\s*fixes:?)\s+([0-9a-f]{5,})\s+($balanced_parens)/i) { | ||
| 3162 | my $tag = $1; | ||
| 3163 | $orig_commit = $2; | ||
| 3164 | $title = $3; | ||
| 3165 | |||
| 3166 | $tag_case = 0 if $tag eq "Fixes:"; | ||
| 3167 | $tag_space = 0 if ($line =~ /^fixes:? [0-9a-f]{5,} ($balanced_parens)/i); | ||
| 3168 | |||
| 3169 | $id_length = 0 if ($orig_commit =~ /^[0-9a-f]{12}$/i); | ||
| 3170 | $id_case = 0 if ($orig_commit !~ /[A-F]/); | ||
| 3171 | |||
| 3172 | # Always strip leading/trailing parens then double quotes if existing | ||
| 3173 | $title = substr($title, 1, -1); | ||
| 3174 | if ($title =~ /^".*"$/) { | ||
| 3175 | $title = substr($title, 1, -1); | ||
| 3176 | $title_has_quotes = 1; | ||
| 3177 | } | ||
| 3178 | } | ||
| 3179 | |||
| 3180 | my ($cid, $ctitle) = git_commit_info($orig_commit, $id, | ||
| 3181 | $title); | ||
| 3182 | |||
| 3183 | if ($ctitle ne $title || $tag_case || $tag_space || | ||
| 3184 | $id_length || $id_case || !$title_has_quotes) { | ||
| 3185 | if (WARN("BAD_FIXES_TAG", | ||
| 3186 | "Please use correct Fixes: style 'Fixes: <12 chars of sha1> (\"<title line>\")' - ie: 'Fixes: $cid (\"$ctitle\")'\n" . $herecurr) && | ||
| 3187 | $fix) { | ||
| 3188 | $fixed[$fixlinenr] = "Fixes: $cid (\"$ctitle\")"; | ||
| 3189 | } | ||
| 3190 | } | ||
| 3191 | } | ||
| 3192 | |||
| 3149 | # Check email subject for common tools that don't need to be mentioned | 3193 | # Check email subject for common tools that don't need to be mentioned |
| 3150 | if ($in_header_lines && | 3194 | if ($in_header_lines && |
| 3151 | $line =~ /^Subject:.*\b(?:checkpatch|sparse|smatch)\b[^:]/i) { | 3195 | $line =~ /^Subject:.*\b(?:checkpatch|sparse|smatch)\b[^:]/i) { |