Skip to content

Commit

Permalink
checkpatch: improve --git <commit-count> shortcut
Browse files Browse the repository at this point in the history
The --git <commit-count> shortcut can be confused by a tag with a dash
like v4.4-rc1.

Improve the test to verify the <commit-count> expression ends with a
dash followed by a numeric value.

Improve the git log result to verify the "<sha1> <subject>" output
as well.

Link: http://lkml.kernel.org/r/c4a3f759291d967641860c3a54bb81177f34325f.1462711962.git.joe@perches.com
Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
JoePerches authored and torvalds committed May 21, 2016
1 parent 0dea9f1 commit 28898fd
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions scripts/checkpatch.pl
Original file line number Diff line number Diff line change
Expand Up @@ -809,19 +809,17 @@ sub git_commit_info {
my @commits = ();
foreach my $commit_expr (@ARGV) {
my $git_range;
if ($commit_expr =~ m/-/) {
my @tmp = split(/-/, $commit_expr);
die "$P: incorrect git commit expression '$commit_expr' $!\n"
if (@tmp != 2);
$git_range = "-$tmp[1] $tmp[0]";
if ($commit_expr =~ m/^(.*)-(\d+)$/) {
$git_range = "-$2 $1";
} elsif ($commit_expr =~ m/\.\./) {
$git_range = "$commit_expr";
} else {
$git_range = "-1 $commit_expr";
}
my $lines = `git log --no-color --no-merges --pretty=format:'%H %s' $git_range`;
foreach my $line (split(/\n/, $lines)) {
$line =~ /(^\w+) (.*)/;
$line =~ /^([0-9a-fA-F]{40,40}) (.*)$/;
next if (!defined($1) || !defined($2));
my $sha1 = $1;
my $subject = $2;
unshift(@commits, $sha1);
Expand Down

0 comments on commit 28898fd

Please sign in to comment.