Re: [PATCH] scripts/checkpatch.pl: add a check for the patch level (patch -p)
On Fri, Dec 21, 2007 at 06:12:02PM +, Andy Whitcroft wrote: > On Tue, Dec 18, 2007 at 06:46:41AM +0100, Borislav Petkov wrote: > > On Mon, Dec 17, 2007 at 08:11:05AM +0100, Borislav Petkov wrote: > > > > A slightly microoptimized version 1.1: > > > > --- > > From: Borislav Petkov <[EMAIL PROTECTED]> > > > > > > Check the patch level of the single hunks in a patch file, however only when > > checkpatch.pl is called from within the kernel tree. > > > > Signed-off-by: Borislav Petkov <[EMAIL PROTECTED]> > > -- > > > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > > index 579f50f..3eda27b 100755 > > --- a/scripts/checkpatch.pl > > +++ b/scripts/checkpatch.pl > > @@ -653,6 +653,18 @@ sub CHK { > > } > > } > > > > +sub check_patchlevel { > > + > > + if ($tree) { > > + my ($path) = @_; > > + $path =~ s![^/]*/!!; > > + > > + if (!stat($path)) { > > + WARN("Check the patchlevel (hint: patch option -p)"); > > + } > > + } > > Hmmm that will trigger on all patches which create new files if I am > grokking you correctly. > > I would have thought this would pretty easy to check from the form of > the names. Hmmm. Yep, I thought that too. Still, this way of checking the patch level using the relative file pathname in the kernel tree seemed pretty straightforward so i sent it. Off the top of my head, we could check for "/dev/null" on the "---" line and skip that hunk... like so: --- From: Borislav Petkov <[EMAIL PROTECTED]> Check the patch level of the diff hunks in a patch text file. It works only when checkpatch.pl is called from within the kernel tree. The only case it misses is when the patch creates a new file and the patchlevel is wrong. However, this cannot be checked for reliably using this approach of stat()ing the relative url of the patched file. scripts/checkpatch.pl | 22 ++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 579f50f..0fe80fb 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -653,6 +653,22 @@ sub CHK { } } +sub check_patchlevel { + + if ($tree) { + my ($path, $prev) = @_; + +# don't do any checking if it's a newly created file + return if $prev =~ m!/dev/null!; + + $path =~ s![^/]*/!!; + + if (!stat($path)) { + WARN("Check the patchlevel (hint: patch option -p)"); + } + } +} + sub process { my $filename = shift; my @lines = @_; @@ -713,10 +729,16 @@ sub process { #extract the filename as it passes if ($line=~/^\+\+\+\s+(\S+)/) { $realfile=$1; + + if ($realfile) { + check_patchlevel($realfile, $lines[$linenr-2]); + } + $realfile =~ [EMAIL PROTECTED]/]*/@@; $in_comment = 0; next; } + #extract the line range in the file after the patch is applied if ($line=~/[EMAIL PROTECTED]@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? [EMAIL PROTECTED]@/) { $is_patch = 1; -- Regards/Gruß, Boris. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] scripts/checkpatch.pl: add a check for the patch level (patch -p)
On Tue, Dec 18, 2007 at 06:46:41AM +0100, Borislav Petkov wrote: > On Mon, Dec 17, 2007 at 08:11:05AM +0100, Borislav Petkov wrote: > > A slightly microoptimized version 1.1: > > --- > From: Borislav Petkov <[EMAIL PROTECTED]> > > > Check the patch level of the single hunks in a patch file, however only when > checkpatch.pl is called from within the kernel tree. > > Signed-off-by: Borislav Petkov <[EMAIL PROTECTED]> > -- > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index 579f50f..3eda27b 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -653,6 +653,18 @@ sub CHK { > } > } > > +sub check_patchlevel { > + > + if ($tree) { > + my ($path) = @_; > + $path =~ s![^/]*/!!; > + > + if (!stat($path)) { > + WARN("Check the patchlevel (hint: patch option -p)"); > + } > + } Hmmm that will trigger on all patches which create new files if I am grokking you correctly. I would have thought this would pretty easy to check from the form of the names. Hmmm. > +} > + > sub process { > my $filename = shift; > my @lines = @_; > @@ -713,10 +725,16 @@ sub process { > #extract the filename as it passes > if ($line=~/^\+\+\+\s+(\S+)/) { > $realfile=$1; > + > + if ($realfile) { > + check_patchlevel($realfile); > + } > + > $realfile =~ [EMAIL PROTECTED]/]*/@@; > $in_comment = 0; > next; > } > + > #extract the line range in the file after the patch is applied > if ($line=~/[EMAIL PROTECTED]@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? > [EMAIL PROTECTED]@/) { > $is_patch = 1; -apw -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] scripts/checkpatch.pl: add a check for the patch level (patch -p)
On Mon, Dec 17, 2007 at 08:11:05AM +0100, Borislav Petkov wrote: A slightly microoptimized version 1.1: --- From: Borislav Petkov <[EMAIL PROTECTED]> Check the patch level of the single hunks in a patch file, however only when checkpatch.pl is called from within the kernel tree. Signed-off-by: Borislav Petkov <[EMAIL PROTECTED]> -- diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 579f50f..3eda27b 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -653,6 +653,18 @@ sub CHK { } } +sub check_patchlevel { + + if ($tree) { + my ($path) = @_; + $path =~ s![^/]*/!!; + + if (!stat($path)) { + WARN("Check the patchlevel (hint: patch option -p)"); + } + } +} + sub process { my $filename = shift; my @lines = @_; @@ -713,10 +725,16 @@ sub process { #extract the filename as it passes if ($line=~/^\+\+\+\s+(\S+)/) { $realfile=$1; + + if ($realfile) { + check_patchlevel($realfile); + } + $realfile =~ [EMAIL PROTECTED]/]*/@@; $in_comment = 0; next; } + #extract the line range in the file after the patch is applied if ($line=~/[EMAIL PROTECTED]@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? [EMAIL PROTECTED]@/) { $is_patch = 1; -- Regards/Gruß, Boris. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] scripts/checkpatch.pl: add a check for the patch level (patch -p)
Being bitten by this several times myself here's a quick hack for checking the patch level of the diffs in a patch file. It works only when checkpatch.pl is called from within the kernel tree. --- Signed-off-by: Borislav Petkov <[EMAIL PROTECTED]> -- scripts/checkpatch.pl | 18 ++ 1 files changed, 18 insertions(+), 0 deletions(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 579f50f..b1329fc 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -653,6 +653,18 @@ sub CHK { } } +sub check_patchlevel { + + my ($path) = @_; + $path =~ s![^/]*/!!; + + if ($tree) { + if (!stat($path)) { + WARN("Check the patchlevel (hint: patch option -p)"); + } + } +} + sub process { my $filename = shift; my @lines = @_; @@ -713,10 +725,16 @@ sub process { #extract the filename as it passes if ($line=~/^\+\+\+\s+(\S+)/) { $realfile=$1; + + if ($realfile) { + check_patchlevel($realfile); + } + $realfile =~ [EMAIL PROTECTED]/]*/@@; $in_comment = 0; next; } + #extract the line range in the file after the patch is applied if ($line=~/[EMAIL PROTECTED]@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? [EMAIL PROTECTED]@/) { $is_patch = 1; -- Regards/Gruß, Boris. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/