Message ID | 20190315010334.5707-1-jacob.e.keller@intel.com |
---|---|
State | Awaiting Upstream |
Headers | show |
Series | checkpatch: fix camel case seeding when run with --root | expand |
> -----Original Message----- > From: Keller, Jacob E > Sent: Thursday, March 14, 2019 6:04 PM > To: linux-kernel@vger.kernel.org > Cc: Intel Wired LAN <intel-wired-lan@lists.osuosl.org>; netdev@vger.kernel.org; > Keller, Jacob E <jacob.e.keller@intel.com>; joe@perches.com > Subject: [PATCH] checkpatch: fix camel case seeding when run with --root > > checkpatch.pl avoids warning about camel case of some definitions by > seeding a file that tracks all of the currently committed camel case > definitions. > > To build this seed file, checkpatch.pl decides between using git or the > --root parameter. > > This works as long as you don't run checkpatch.pl from within > a different git tree that is not the Linux kernel. > > In this case, the check for ".git" will return true, and checkpatch will > attempt to seed a camel case file using the current directory. This > works fine if --root is not provided, but can result in an incorrect > camel case seed file resulting in false positive warnings. > > Fix this by checking for $root/.git instead, so that we use the --root > parameter properly when seeding the camel case list. > > Additionally, when generating the list of files to be checked, prefix > the $root path so that the correct file will be found. > > These changes allow checkpatch.pl to honor the --root parameter even if > being run from within another git repository. > > Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> > --- > (Resending with a not-invalid address for the netdev mailing list...) > Ping? Andy? Joe? This is a re-write of a rather old (couple of years old...) fix that I've been meaning to get around to submitting. I'd like to have this picked up since it resolves issues with using --root while inside another git tree. Thanks, Jake > scripts/checkpatch.pl | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index d0001fd1112d..358add495e18 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -903,8 +903,8 @@ 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`; > + if (-e "$root/.git") { > + my $git_last_include_commit = `cd $root && git log --no-merges -- > pretty=format:"%h%n" -1 -- include`; > chomp $git_last_include_commit; > $camelcase_cache = ".checkpatch- > camelcase.git.$git_last_include_commit"; > } else { > @@ -931,9 +931,10 @@ sub seed_camelcase_includes { > return; > } > > - if (-e ".git") { > - $files = `git ls-files "include/*.h"`; > + if (-e "$root/.git") { > + $files = `cd $root && git ls-files "include/*.h"`; > @include_files = split('\n', $files); > + @include_files = map("$root/$_", @include_files); > } > > foreach my $file (@include_files) { > -- > 2.18.0.219.gaf81d287a9da
On Wed, 2019-03-20 at 20:09 +0000, Keller, Jacob E wrote: > > -----Original Message----- > > From: Keller, Jacob E > > Sent: Thursday, March 14, 2019 6:04 PM > > To: linux-kernel@vger.kernel.org > > Cc: Intel Wired LAN <intel-wired-lan@lists.osuosl.org>; netdev@vger.kernel.org; > > Keller, Jacob E <jacob.e.keller@intel.com>; joe@perches.com > > Subject: [PATCH] checkpatch: fix camel case seeding when run with --root > > > > checkpatch.pl avoids warning about camel case of some definitions by > > seeding a file that tracks all of the currently committed camel case > > definitions. > > > > To build this seed file, checkpatch.pl decides between using git or the > > --root parameter. > > > > This works as long as you don't run checkpatch.pl from within > > a different git tree that is not the Linux kernel. Odd use case, but I'll forward it on as it doesn't seem to have any other effect. cheers, Joe
> -----Original Message----- > From: Joe Perches [mailto:joe@perches.com] > Sent: Wednesday, March 20, 2019 2:18 PM > To: Keller, Jacob E <jacob.e.keller@intel.com>; linux-kernel@vger.kernel.org; > apw@canonical.com; Joe Perches <golf@perches.com> > Cc: Intel Wired LAN <intel-wired-lan@lists.osuosl.org>; netdev@vger.kernel.org > Subject: Re: [PATCH] checkpatch: fix camel case seeding when run with --root > > On Wed, 2019-03-20 at 20:09 +0000, Keller, Jacob E wrote: > > > -----Original Message----- > > > From: Keller, Jacob E > > > Sent: Thursday, March 14, 2019 6:04 PM > > > To: linux-kernel@vger.kernel.org > > > Cc: Intel Wired LAN <intel-wired-lan@lists.osuosl.org>; netdev@vger.kernel.org; > > > Keller, Jacob E <jacob.e.keller@intel.com>; joe@perches.com > > > Subject: [PATCH] checkpatch: fix camel case seeding when run with --root > > > > > > checkpatch.pl avoids warning about camel case of some definitions by > > > seeding a file that tracks all of the currently committed camel case > > > definitions. > > > > > > To build this seed file, checkpatch.pl decides between using git or the > > > --root parameter. > > > > > > This works as long as you don't run checkpatch.pl from within > > > a different git tree that is not the Linux kernel. > > Odd use case, but I'll forward it on as it doesn't > seem to have any other effect. > > cheers, Joe We run checkpatch.pl on Linux driver code which is out-of-tree to start with, and then will eventually be migrated into the in-tree kernel later as we develop it. Without this patch, the use of checkpatch.pl with --root causes bogus hits with camel case issues. Thanks, Jake
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index d0001fd1112d..358add495e18 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -903,8 +903,8 @@ 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`; + if (-e "$root/.git") { + my $git_last_include_commit = `cd $root && git log --no-merges --pretty=format:"%h%n" -1 -- include`; chomp $git_last_include_commit; $camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit"; } else { @@ -931,9 +931,10 @@ sub seed_camelcase_includes { return; } - if (-e ".git") { - $files = `git ls-files "include/*.h"`; + if (-e "$root/.git") { + $files = `cd $root && git ls-files "include/*.h"`; @include_files = split('\n', $files); + @include_files = map("$root/$_", @include_files); } foreach my $file (@include_files) {
checkpatch.pl avoids warning about camel case of some definitions by seeding a file that tracks all of the currently committed camel case definitions. To build this seed file, checkpatch.pl decides between using git or the --root parameter. This works as long as you don't run checkpatch.pl from within a different git tree that is not the Linux kernel. In this case, the check for ".git" will return true, and checkpatch will attempt to seed a camel case file using the current directory. This works fine if --root is not provided, but can result in an incorrect camel case seed file resulting in false positive warnings. Fix this by checking for $root/.git instead, so that we use the --root parameter properly when seeding the camel case list. Additionally, when generating the list of files to be checked, prefix the $root path so that the correct file will be found. These changes allow checkpatch.pl to honor the --root parameter even if being run from within another git repository. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> --- (Resending with a not-invalid address for the netdev mailing list...) scripts/checkpatch.pl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)