Re: [PATCH] checkpatch: warn about hunks which only add blank lines
Thomas Huth <[email protected]>
| Newsgroups | org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
On 18/08/2026 11.29, Denis V. Lunev wrote: > On 7/31/26 15:40, Denis V. Lunev wrote: >> This email originated from an IP that might not be authorized by the domain it was sent from. >> Do not click links or open attachments unless it is an email you expected to receive. >> Patches sometimes carry a hunk whose entire content is one or two >> added blank lines. It changes nothing, it makes the diff longer and >> it survives review because nobody looks twice at a blank line. The >> blank line itself is perfectly fine, the gratuitous hunk is not. >> >> Tally the added blank lines and the other changes of every hunk in >> the pre-scan loop which already walks the raw patch, and record the >> hunks which only add blanks. Such a hunk is then reported at the >> first blank line it adds, so the warning carries the usual file and >> line context. >> >> Signed-off-by: Denis V. Lunev <[email protected]> >> CC: Chao Liu <[email protected]> >> CC: "Daniel P. Berrange" <[email protected]> >> CC: "Philippe Mathieu-Daude" <[email protected]> >> CC: Thomas Huth <[email protected]> >> --- >> Note: this patch is sent on behalf of the yesterday finding inside IDE >> pull request. This should be found with a checkpatch. >> >> scripts/checkpatch.pl | 21 +++++++++++++++++++++ >> 1 file changed, 21 insertions(+) >> >> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl >> index 03f35e7501..dfa9878006 100755 >> --- a/scripts/checkpatch.pl >> +++ b/scripts/checkpatch.pl >> @@ -1567,6 +1567,10 @@ sub process { >> my $first_line = 0; >> my $p1_prefix = ''; >> >> + my %blank_only_hunk; >> + my $hunk_first_blank = 0; >> + my $hunk_has_change = 0; >> + >> my $prev_values = 'E'; >> >> # suppression flags >> @@ -1583,6 +1587,10 @@ sub process { >> $line = $rawline; >> >> if ($rawline=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) { >> + $blank_only_hunk{$hunk_first_blank} = 1 >> + if ($hunk_first_blank && !$hunk_has_change); >> + ($hunk_first_blank, $hunk_has_change) = (0, 0); >> + >> $realline=$1-1; >> if (defined $2) { >> $realcnt=$3+1; >> @@ -1633,6 +1641,13 @@ sub process { >> push(@lines, $line); >> >> if ($realcnt > 1) { >> + if ($rawline =~ /^\+\s*$/) { >> + $hunk_first_blank = $linenr >> + if (!$hunk_first_blank); >> + } elsif ($rawline =~ /^[-+]/) { >> + $hunk_has_change = 1; >> + } >> + >> $realcnt-- if ($line =~ /^(?:\+| |$)/); >> } else { >> $realcnt = 0; >> @@ -1641,6 +1656,8 @@ sub process { >> #print "==>$rawline\n"; >> #print "-->$line\n"; >> } >> + $blank_only_hunk{$hunk_first_blank} = 1 >> + if ($hunk_first_blank && !$hunk_has_change); >> >> $prefix = ''; >> >> @@ -1780,6 +1797,10 @@ sub process { >> >> $cnt_lines++ if ($realcnt != 0); >> >> + if ($blank_only_hunk{$linenr}) { >> + WARN("this hunk only adds blank lines\n" . $herecurr); >> + } >> + >> # Only allow Python 3 interpreter >> if ($realline == 1 && >> $line =~ /^\+#!\ *\/usr\/bin\/(?:env )?python$/) { >> >> base-commit: e1705a25aff35635c360bbaba4c2731d019a422a > Guys, > > does it make sense to continue discussion or this patch > goes to /dev/null as nobody is interested in? Hi, sorry, but I still don't have a proper clue whether this is really a good idea or not. There could also be valid cases where a hunk that adds a single blank line could be fine ... so I'd tend to rather not add this patch? What do others think? Thomas