2021-07-06 23:17:40

by Palmer Dabbelt

[permalink] [raw]
Subject: [PATCH] checkpatch: Don't show signatures in git-log

From: Palmer Dabbelt <[email protected]>

I have git-log setup to show signatures. I've recently noticed this
breaking checkpatch error messages, which show something like

ERROR: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit gpg: Signatu (":05 PM PDT")'
#8:
the module region by 3a02764c372c ("riscv: Ensure BPF_JIT_REGION_START

instead of something more helpful, like

ERROR: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 3a02764c372c ("riscv: Ensure BPF_JIT_REGION_START aligned with PMD size")'
#8:
the module region by 3a02764c372c ("riscv: Ensure BPF_JIT_REGION_START

which shows up with this patch. I'm not sure if these just started
showing up for if I just noticed them or if they've been around forever.

I've only found it necessary to add --no-show-signature to the git-log
invocation in git_commit_info(), but a cursory glance indicates that the
other two invocations may suffer from similar problems so I've just
added it everywhere.

Signed-off-by: Palmer Dabbelt <[email protected]>
---
scripts/checkpatch.pl | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 461d4221e4a4..4df508b4915d 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1103,7 +1103,7 @@ sub seed_camelcase_includes {
$camelcase_seeded = 1;

if (-e "$gitroot") {
- my $git_last_include_commit = `${git_command} log --no-merges --pretty=format:"%h%n" -1 -- include`;
+ my $git_last_include_commit = `${git_command} log --no-show-signature --no-merges --pretty=format:"%h%n" -1 -- include`;
chomp $git_last_include_commit;
$camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
} else {
@@ -1165,7 +1165,7 @@ sub git_commit_info {

return ($id, $desc) if ((which("git") eq "") || !(-e "$gitroot"));

- my $output = `${git_command} log --no-color --format='%H %s' -1 $commit 2>&1`;
+ my $output = `${git_command} log --no-color --no-show-signature --format='%H %s' -1 $commit 2>&1`;
$output =~ s/^\s*//gm;
my @lines = split("\n", $output);

@@ -1215,7 +1215,7 @@ if ($git) {
} else {
$git_range = "-1 $commit_expr";
}
- my $lines = `${git_command} log --no-color --no-merges --pretty=format:'%H %s' $git_range`;
+ my $lines = `${git_command} log --no-show-signature --no-color --no-merges --pretty=format:'%H %s' $git_range`;
foreach my $line (split(/\n/, $lines)) {
$line =~ /^([0-9a-fA-F]{40,40}) (.*)$/;
next if (!defined($1) || !defined($2));
--
2.32.0.93.g670b81a890-goog


2021-07-07 02:04:27

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] checkpatch: Don't show signatures in git-log

On Tue, 2021-07-06 at 15:30 -0700, Palmer Dabbelt wrote:
> From: Palmer Dabbelt <[email protected]>
>
> I have git-log setup to show signatures. I've recently noticed this
> breaking checkpatch error messages, which show something like
>
> ????ERROR: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit gpg: Signatu (":05 PM PDT")'
> ????#8:
> ????the module region by 3a02764c372c ("riscv: Ensure BPF_JIT_REGION_START
>
> instead of something more helpful, like
>
> ????ERROR: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 3a02764c372c ("riscv: Ensure BPF_JIT_REGION_START aligned with PMD size")'
> ????#8:
> ????the module region by 3a02764c372c ("riscv: Ensure BPF_JIT_REGION_START
>
> which shows up with this patch. I'm not sure if these just started
> showing up for if I just noticed them or if they've been around forever.
>
> I've only found it necessary to add --no-show-signature to the git-log
> invocation in git_commit_info(), but a cursory glance indicates that the
> other two invocations may suffer from similar problems so I've just
> added it everywhere.

Perhaps this should be in some standardized $git_log_options argument
so that if there are more of these no-<foo> that need to be added, like
for instance, --no-notes, it'd be easier to add everywhere.

> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -1103,7 +1103,7 @@ sub seed_camelcase_includes {
> ? $camelcase_seeded = 1;

somwhere above:

our $git_log_no_opts = '--no-show-signature --no-color"

>
> ? if (-e "$gitroot") {
> - my $git_last_include_commit = `${git_command} log --no-merges --pretty=format:"%h%n" -1 -- include`;
> + my $git_last_include_commit = `${git_command} log --no-show-signature --no-merges --pretty=format:"%h%n" -1 -- include`;

So this could be:

my $git_last_include_commit = `${git_command} log $git_log_no_opts --no-merges --pretty=format:"%h%n" -1 -- include`;

> ? chomp $git_last_include_commit;
> ? $camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
> ? } else {
> @@ -1165,7 +1165,7 @@ sub git_commit_info {
> ?
> ? return ($id, $desc) if ((which("git") eq "") || !(-e "$gitroot"));
> ?
>
> - my $output = `${git_command} log --no-color --format='%H %s' -1 $commit 2>&1`;
> + my $output = `${git_command} log --no-color --no-show-signature --format='%H %s' -1 $commit 2>&1`;

my $output = `${git_command} log $git_log_no_opts --format='%H %s' -1 $commit 2>&1`;

etc...

> ? $output =~ s/^\s*//gm;
> ? my @lines = split("\n", $output);
>
> @@ -1215,7 +1215,7 @@ if ($git) {
> ? } else {
> ? $git_range = "-1 $commit_expr";
> ? }
> - my $lines = `${git_command} log --no-color --no-merges --pretty=format:'%H %s' $git_range`;
> + my $lines = `${git_command} log --no-show-signature --no-color --no-merges --pretty=format:'%H %s' $git_range`;

my $lines = `${git_command} log $git_log_no_opts --no-merges --pretty=format:'%H %s' $git_range`;

> ? foreach my $line (split(/\n/, $lines)) {
> ? $line =~ /^([0-9a-fA-F]{40,40}) (.*)$/;
> ? next if (!defined($1) || !defined($2));