All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query
@ 2019-08-30 16:31 Sean Christopherson
  2019-08-30 16:37 ` Joe Perches
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Christopherson @ 2019-08-30 16:31 UTC (permalink / raw)
  To: Andy Whitcroft, Joe Perches; +Cc: linux-kernel

Git dropped the period from its "ambiguous SHA1" error message in commit
0c99171ad2 ("get_short_sha1: mark ambiguity error for translation"),
circa 2016.  Drop the period from checkpatch's associated query so as to
match both the old and new error messages.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
---
 scripts/checkpatch.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 93a7edfe0f05..ef3642c53100 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -962,7 +962,7 @@ sub git_commit_info {
 
 	return ($id, $desc) if ($#lines < 0);
 
-	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous\./) {
+	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous/) {
 # Maybe one day convert this block of bash into something that returns
 # all matching commit ids, but it's very slow...
 #
-- 
2.22.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query
  2019-08-30 16:31 [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query Sean Christopherson
@ 2019-08-30 16:37 ` Joe Perches
  2019-08-30 17:17   ` Sean Christopherson
  0 siblings, 1 reply; 8+ messages in thread
From: Joe Perches @ 2019-08-30 16:37 UTC (permalink / raw)
  To: Sean Christopherson, Andy Whitcroft, Andrew Morton; +Cc: linux-kernel

On Fri, 2019-08-30 at 09:31 -0700, Sean Christopherson wrote:
> Git dropped the period from its "ambiguous SHA1" error message in commit
> 0c99171ad2 ("get_short_sha1: mark ambiguity error for translation"),
> circa 2016.  Drop the period from checkpatch's associated query so as to
> match both the old and new error messages.
> 
> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
> ---
>  scripts/checkpatch.pl | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 93a7edfe0f05..ef3642c53100 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -962,7 +962,7 @@ sub git_commit_info {
>  
>  	return ($id, $desc) if ($#lines < 0);
>  
> -	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous\./) {
> +	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous/) {
>  # Maybe one day convert this block of bash into something that returns
>  # all matching commit ids, but it's very slow...
>  #

Thanks.

Did git ever change to actually support human readable
messages in multiple languages?

If so, this won't work for non-english output.

It probably doesn't matter though.

Acked-by: Joe Perches <joe@perches.com>



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query
  2019-08-30 16:37 ` Joe Perches
@ 2019-08-30 17:17   ` Sean Christopherson
  2019-08-30 18:01     ` Joe Perches
  0 siblings, 1 reply; 8+ messages in thread
From: Sean Christopherson @ 2019-08-30 17:17 UTC (permalink / raw)
  To: Joe Perches; +Cc: Andy Whitcroft, Andrew Morton, linux-kernel

On Fri, Aug 30, 2019 at 09:37:51AM -0700, Joe Perches wrote:
> On Fri, 2019-08-30 at 09:31 -0700, Sean Christopherson wrote:
> > Git dropped the period from its "ambiguous SHA1" error message in commit
> > 0c99171ad2 ("get_short_sha1: mark ambiguity error for translation"),
> > circa 2016.  Drop the period from checkpatch's associated query so as to
> > match both the old and new error messages.
> > 
> > Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
> > ---
> >  scripts/checkpatch.pl | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > index 93a7edfe0f05..ef3642c53100 100755
> > --- a/scripts/checkpatch.pl
> > +++ b/scripts/checkpatch.pl
> > @@ -962,7 +962,7 @@ sub git_commit_info {
> >  
> >  	return ($id, $desc) if ($#lines < 0);
> >  
> > -	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous\./) {
> > +	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous/) {
> >  # Maybe one day convert this block of bash into something that returns
> >  # all matching commit ids, but it's very slow...
> >  #
> 
> Thanks.
> 
> Did git ever change to actually support human readable
> messages in multiple languages?

Yep, e.g.:

  error: Kurzer SHA-1 745f ist mehrdeutig.

> If so, this won't work for non-english output.

Yep again.  The next check for 'fatal: ambiguous argument' obviously fails
as well and checkpatch ends up using git's error message as the id and
description.

  ERROR: Please use git ... - ie: 'commit error: Kurze ("")'

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query
  2019-08-30 17:17   ` Sean Christopherson
@ 2019-08-30 18:01     ` Joe Perches
  2019-08-30 18:29       ` Joe Perches
  2019-09-03 16:08       ` [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query Sean Christopherson
  0 siblings, 2 replies; 8+ messages in thread
From: Joe Perches @ 2019-08-30 18:01 UTC (permalink / raw)
  To: Sean Christopherson; +Cc: Andy Whitcroft, Andrew Morton, linux-kernel

On Fri, 2019-08-30 at 10:17 -0700, Sean Christopherson wrote:
> On Fri, Aug 30, 2019 at 09:37:51AM -0700, Joe Perches wrote:
> > On Fri, 2019-08-30 at 09:31 -0700, Sean Christopherson wrote:
> > > Git dropped the period from its "ambiguous SHA1" error message in commit
> > > 0c99171ad2 ("get_short_sha1: mark ambiguity error for translation"),
> > > circa 2016.  Drop the period from checkpatch's associated query so as to
> > > match both the old and new error messages.
> > > 
> > > Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
> > > ---
> > >  scripts/checkpatch.pl | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > > index 93a7edfe0f05..ef3642c53100 100755
> > > --- a/scripts/checkpatch.pl
> > > +++ b/scripts/checkpatch.pl
> > > @@ -962,7 +962,7 @@ sub git_commit_info {
> > >  
> > >  	return ($id, $desc) if ($#lines < 0);
> > >  
> > > -	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous\./) {
> > > +	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous/) {
> > >  # Maybe one day convert this block of bash into something that returns
> > >  # all matching commit ids, but it's very slow...
> > >  #
> > 
> > Thanks.
> > 
> > Did git ever change to actually support human readable
> > messages in multiple languages?
> 
> Yep, e.g.:
> 
>   error: Kurzer SHA-1 745f ist mehrdeutig.
> 
> > If so, this won't work for non-english output.
> 
> Yep again.  The next check for 'fatal: ambiguous argument' obviously fails
> as well and checkpatch ends up using git's error message as the id and
> description.
> 
>   ERROR: Please use git ... - ie: 'commit error: Kurze ("")'

Does git exit with unique failure codes?
If so, maybe the waitid/siginfo_t error could be used instead.



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query
  2019-08-30 18:01     ` Joe Perches
@ 2019-08-30 18:29       ` Joe Perches
  2019-09-01 19:29         ` [PATCH] checkpatch: Make git output use LANGUAGE=en_US.utf8 Joe Perches
  2019-09-03 16:08       ` [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query Sean Christopherson
  1 sibling, 1 reply; 8+ messages in thread
From: Joe Perches @ 2019-08-30 18:29 UTC (permalink / raw)
  To: Sean Christopherson; +Cc: Andy Whitcroft, Andrew Morton, linux-kernel

On Fri, 2019-08-30 at 11:01 -0700, Joe Perches wrote:
> On Fri, 2019-08-30 at 10:17 -0700, Sean Christopherson wrote:
> > On Fri, Aug 30, 2019 at 09:37:51AM -0700, Joe Perches wrote:
> > > On Fri, 2019-08-30 at 09:31 -0700, Sean Christopherson wrote:
> > > > Git dropped the period from its "ambiguous SHA1" error message in commit
> > > > 0c99171ad2 ("get_short_sha1: mark ambiguity error for translation"),
> > > > circa 2016.  Drop the period from checkpatch's associated query so as to
> > > > match both the old and new error messages.
> > > > 
> > > > Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
> > > > ---
> > > >  scripts/checkpatch.pl | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > > > index 93a7edfe0f05..ef3642c53100 100755
> > > > --- a/scripts/checkpatch.pl
> > > > +++ b/scripts/checkpatch.pl
> > > > @@ -962,7 +962,7 @@ sub git_commit_info {
> > > >  
> > > >  	return ($id, $desc) if ($#lines < 0);
> > > >  
> > > > -	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous\./) {
> > > > +	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous/) {
> > > >  # Maybe one day convert this block of bash into something that returns
> > > >  # all matching commit ids, but it's very slow...
> > > >  #
> > > 
> > > Thanks.
> > > 
> > > Did git ever change to actually support human readable
> > > messages in multiple languages?
> > 
> > Yep, e.g.:
> > 
> >   error: Kurzer SHA-1 745f ist mehrdeutig.
> > 
> > > If so, this won't work for non-english output.
> > 
> > Yep again.  The next check for 'fatal: ambiguous argument' obviously fails
> > as well and checkpatch ends up using git's error message as the id and
> > description.
> > 
> >   ERROR: Please use git ... - ie: 'commit error: Kurze ("")'
> 
> Does git exit with unique failure codes?
> If so, maybe the waitid/siginfo_t error could be used instead.
> 

Maybe something like this works?
---
 scripts/checkpatch.pl | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index f4b6127ff469..dc001b7899ed 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -62,6 +62,7 @@ my $conststructsfile = "$D/const_structs.checkpatch";
 my $typedefsfile = "";
 my $color = "auto";
 my $allow_c99_comments = 1; # Can be overridden by --ignore C99_COMMENT_TOLERANCE
+my $git_command ='export LANG=en_US.utf-8; git';
 
 sub help {
 	my ($exitcode) = @_;
@@ -918,7 +919,7 @@ sub seed_camelcase_includes {
 	$camelcase_seeded = 1;
 
 	if (-e ".git") {
-		my $git_last_include_commit = `git log --no-merges --pretty=format:"%h%n" -1 -- include`;
+		my $git_last_include_commit = `${git_command} log --no-merges --pretty=format:"%h%n" -1 -- include`;
 		chomp $git_last_include_commit;
 		$camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
 	} else {
@@ -946,7 +947,7 @@ sub seed_camelcase_includes {
 	}
 
 	if (-e ".git") {
-		$files = `git ls-files "include/*.h"`;
+		$files = `${git_command} ls-files "include/*.h"`;
 		@include_files = split('\n', $files);
 	}
 
@@ -970,7 +971,7 @@ sub git_commit_info {
 
 	return ($id, $desc) if ((which("git") eq "") || !(-e ".git"));
 
-	my $output = `git log --no-color --format='%H %s' -1 $commit 2>&1`;
+	my $output = `${git_command} log --no-color --format='%H %s' -1 $commit 2>&1`;
 	$output =~ s/^\s*//gm;
 	my @lines = split("\n", $output);
 
@@ -1020,7 +1021,7 @@ if ($git) {
 		} else {
 			$git_range = "-1 $commit_expr";
 		}
-		my $lines = `git log --no-color --no-merges --pretty=format:'%H %s' $git_range`;
+		my $lines = `${git_command} log --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));



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH] checkpatch: Make git output use LANGUAGE=en_US.utf8
  2019-08-30 18:29       ` Joe Perches
@ 2019-09-01 19:29         ` Joe Perches
  2019-09-03 15:19           ` Sean Christopherson
  0 siblings, 1 reply; 8+ messages in thread
From: Joe Perches @ 2019-09-01 19:29 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Andy Whitcroft, Sean Christopherson, linux-kernel

git output parsing depends on the language being en_US english.

Make the backtick execution of all `git <foo>` commands set the
LANGUAGE of the process to en_US.utf8 before executing the actual
command using `export LANGUAGE=en_US.utf8; git <foo>`.

Because the command is executed in a child process, the parent
LANGUAGE is unchanged.

Reported-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Joe Perches <joe@perches.com>
---
 scripts/checkpatch.pl | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index f4b6127ff469..113c017cc8e7 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -62,6 +62,8 @@ my $conststructsfile = "$D/const_structs.checkpatch";
 my $typedefsfile = "";
 my $color = "auto";
 my $allow_c99_comments = 1; # Can be overridden by --ignore C99_COMMENT_TOLERANCE
+# git output parsing needs US English output, so first set backtick child process LANGUAGE
+my $git_command ='export LANGUAGE=en_US.UTF-8; git';
 
 sub help {
 	my ($exitcode) = @_;
@@ -918,7 +920,7 @@ sub seed_camelcase_includes {
 	$camelcase_seeded = 1;
 
 	if (-e ".git") {
-		my $git_last_include_commit = `git log --no-merges --pretty=format:"%h%n" -1 -- include`;
+		my $git_last_include_commit = `${git_command} log --no-merges --pretty=format:"%h%n" -1 -- include`;
 		chomp $git_last_include_commit;
 		$camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
 	} else {
@@ -946,7 +948,7 @@ sub seed_camelcase_includes {
 	}
 
 	if (-e ".git") {
-		$files = `git ls-files "include/*.h"`;
+		$files = `${git_command} ls-files "include/*.h"`;
 		@include_files = split('\n', $files);
 	}
 
@@ -970,7 +972,7 @@ sub git_commit_info {
 
 	return ($id, $desc) if ((which("git") eq "") || !(-e ".git"));
 
-	my $output = `git log --no-color --format='%H %s' -1 $commit 2>&1`;
+	my $output = `${git_command} log --no-color --format='%H %s' -1 $commit 2>&1`;
 	$output =~ s/^\s*//gm;
 	my @lines = split("\n", $output);
 
@@ -1020,7 +1022,7 @@ if ($git) {
 		} else {
 			$git_range = "-1 $commit_expr";
 		}
-		my $lines = `git log --no-color --no-merges --pretty=format:'%H %s' $git_range`;
+		my $lines = `${git_command} log --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));



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] checkpatch: Make git output use LANGUAGE=en_US.utf8
  2019-09-01 19:29         ` [PATCH] checkpatch: Make git output use LANGUAGE=en_US.utf8 Joe Perches
@ 2019-09-03 15:19           ` Sean Christopherson
  0 siblings, 0 replies; 8+ messages in thread
From: Sean Christopherson @ 2019-09-03 15:19 UTC (permalink / raw)
  To: Joe Perches; +Cc: Andrew Morton, Andy Whitcroft, linux-kernel

On Sun, Sep 01, 2019 at 12:29:25PM -0700, Joe Perches wrote:
> git output parsing depends on the language being en_US english.
> 
> Make the backtick execution of all `git <foo>` commands set the
> LANGUAGE of the process to en_US.utf8 before executing the actual
> command using `export LANGUAGE=en_US.utf8; git <foo>`.
> 
> Because the command is executed in a child process, the parent
> LANGUAGE is unchanged.
> 
> Reported-by: Sean Christopherson <sean.j.christopherson@intel.com>
> Signed-off-by: Joe Perches <joe@perches.com>
> ---

Reviewed-and-tested-by: Sean Christopherson <sean.j.christopherson@intel.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query
  2019-08-30 18:01     ` Joe Perches
  2019-08-30 18:29       ` Joe Perches
@ 2019-09-03 16:08       ` Sean Christopherson
  1 sibling, 0 replies; 8+ messages in thread
From: Sean Christopherson @ 2019-09-03 16:08 UTC (permalink / raw)
  To: Joe Perches; +Cc: Andy Whitcroft, Andrew Morton, linux-kernel

On Fri, Aug 30, 2019 at 11:01:29AM -0700, Joe Perches wrote:
> On Fri, 2019-08-30 at 10:17 -0700, Sean Christopherson wrote:
> > On Fri, Aug 30, 2019 at 09:37:51AM -0700, Joe Perches wrote:
> > > On Fri, 2019-08-30 at 09:31 -0700, Sean Christopherson wrote:
> > > > Git dropped the period from its "ambiguous SHA1" error message in commit
> > > > 0c99171ad2 ("get_short_sha1: mark ambiguity error for translation"),
> > > > circa 2016.  Drop the period from checkpatch's associated query so as to
> > > > match both the old and new error messages.
> > > > 
> > > > Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
> > > > ---
> > > >  scripts/checkpatch.pl | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> > > > index 93a7edfe0f05..ef3642c53100 100755
> > > > --- a/scripts/checkpatch.pl
> > > > +++ b/scripts/checkpatch.pl
> > > > @@ -962,7 +962,7 @@ sub git_commit_info {
> > > >  
> > > >  	return ($id, $desc) if ($#lines < 0);
> > > >  
> > > > -	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous\./) {
> > > > +	if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous/) {
> > > >  # Maybe one day convert this block of bash into something that returns
> > > >  # all matching commit ids, but it's very slow...
> > > >  #
> > > 
> > > Thanks.
> > > 
> > > Did git ever change to actually support human readable
> > > messages in multiple languages?
> > 
> > Yep, e.g.:
> > 
> >   error: Kurzer SHA-1 745f ist mehrdeutig.
> > 
> > > If so, this won't work for non-english output.
> > 
> > Yep again.  The next check for 'fatal: ambiguous argument' obviously fails
> > as well and checkpatch ends up using git's error message as the id and
> > description.
> > 
> >   ERROR: Please use git ... - ie: 'commit error: Kurze ("")'
> 
> Does git exit with unique failure codes?

Nope, AFAICT usage errors get exit(129) and everything else gets exit(128).

> If so, maybe the waitid/siginfo_t error could be used instead.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-09-03 16:08 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-30 16:31 [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query Sean Christopherson
2019-08-30 16:37 ` Joe Perches
2019-08-30 17:17   ` Sean Christopherson
2019-08-30 18:01     ` Joe Perches
2019-08-30 18:29       ` Joe Perches
2019-09-01 19:29         ` [PATCH] checkpatch: Make git output use LANGUAGE=en_US.utf8 Joe Perches
2019-09-03 15:19           ` Sean Christopherson
2019-09-03 16:08       ` [PATCH] checkpatch: Remove obsolete period from "ambiguous SHA1" query Sean Christopherson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.