lkml.org 
[lkml]   [2020]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH] checkpatch: Allow not using -f with files that are in git
    From
    Date
    If a file exists in git and checkpatch is used without the -f
    flag for scanning a file, then checkpatch will scan the file
    assuming it's a patch and emit:

    ERROR: Does not appear to be a unified-diff format patch

    Change the behavior to assume the -f flag if the file exists
    in git.

    Signed-off-by: Joe Perches <joe@perches.com>
    ---
    scripts/checkpatch.pl | 14 ++++++++++++++
    1 file changed, 14 insertions(+)

    diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
    index 79fc357b18cd..cdee7cfadc11 100755
    --- a/scripts/checkpatch.pl
    +++ b/scripts/checkpatch.pl
    @@ -976,6 +976,16 @@ sub seed_camelcase_includes {
    }
    }

    +sub git_is_single_file {
    + my ($filename) = @_;
    +
    + return 0 if ((which("git") eq "") || !(-e "$gitroot"));
    +
    + my $output = `${git_command} ls-files -- $filename`;
    + my $count = $output =~ tr/\n//;
    + return $count eq 1 && $output =~ m{^${filename}$};
    +}
    +
    sub git_commit_info {
    my ($commit, $id, $desc) = @_;

    @@ -1049,6 +1059,9 @@ my $vname;
    $allow_c99_comments = !defined $ignore_type{"C99_COMMENT_TOLERANCE"};
    for my $filename (@ARGV) {
    my $FILE;
    + my $is_git_file = git_is_single_file($filename);
    + my $oldfile = $file;
    + $file = 1 if ($is_git_file);
    if ($git) {
    open($FILE, '-|', "git format-patch -M --stdout -1 $filename") ||
    die "$P: $filename: git format-patch failed - $!\n";
    @@ -1093,6 +1106,7 @@ for my $filename (@ARGV) {
    @modifierListFile = ();
    @typeListFile = ();
    build_types();
    + $file = $oldfile if ($is_git_file);
    }

    if (!$quiet) {

    \
     
     \ /
      Last update: 2020-08-25 02:09    [W:2.863 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site