On Fri, 2022-09-09 at 09:40 +0200, niklas.soderlund@xxxxxxxxxxxx wrote: > On 2022-09-08 17:49:14 +0000, Philippe Schenker wrote: > > Thanks for adding me to cc. I will also add Stephen, as he also sent > > some comments on my submission the exact same problem. I'm supportive of > > your code as it has the nice advantage of suggesting the right format of > > the tag if it might be wrong. However it seems lot of stuff is slightly > > duplicated and lots of lines could be left away simplifying it greatly. It's not very possible to reduce the line count here. I mentioned the same thing in my first reply. > > > +# Check Fixes: styles is correct > > > + if (!$in_header_lines && $line =~ /^fixes:?/i) { > > > > I would check all lines that start with fixes, even if there is > > whitespace in front (and then failing later on...) > > > > if (!$in_header_lines && $line =~ /^\s*fixes:?/i) { I think that's a poor idea. You should really review git history for lines that start with fixes and look at the number of false positives that would give. Try this grep: $ git log -100000 --no-merges --grep="^\s*fixes" -i --format=email -P | \ grep -P -i "^\s*fixes)" | \ grep -P -v "^Fixes: [0-9a-f]{12,}' [...] That is a greater than 10% false positive rate. I think it's better to make sure that there is a likely SHA1 of some minimum length after the fixes line. And a relatively common defect is to have the word "commit" after fixes. e.g.: Fixes commit 554c0a3abf216 ("staging: Add rtl8723bs sdio wifi driver"). Fixes commit a2c60d42d97c ("Add files for new driver - part 16"). So maybe: if (!$in_header_lines && $line =~ /^\s*fixes:?\s*(?:commit\s*)?[0-9a-f]{5,}\b/i)