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


Reply via email to