summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-11-01 13:58:27 +0100
committerJay Satiro <raysatiro@yahoo.com>2019-11-08 02:31:11 -0500
commit2762efd2575fd2a6aba327d3e5ad39e05a2ed37c (patch)
treeed850d02bdd3eca84607450fe025e1f24cd69edf
parent233f04b59a310672e600b7b2c2ca637541e4e364 (diff)
downloadcurl-bagder/checksrc-copyrightyear.tar.gz
checksrc: repair the copyrightyear checkbagder/checksrc-copyrightyear
- Consider a modified file to be committed this year. - Make the travis CHECKSRC also do COPYRIGHTYEAR scan. - Ignore 0 parents when getting latest commit date of file. since in the CI we're dealing with a truncated repo of last 50 commits, the file's most recent commit may not be available. when this happens git log and rev-list show the initial commit (ie first commit not to be truncated) but that's incorrect so ignore it. Ref: https://github.com/curl/curl/pull/4547 Closes https://github.com/curl/curl/pull/4549
-rw-r--r--.travis.yml4
-rwxr-xr-xlib/checksrc.pl13
2 files changed, 13 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml
index 3c4fb43e5..50adfe3ac 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -609,6 +609,10 @@ script:
make test-nonflaky
fi
if [ -n $CHECKSRC ]; then
+ echo "enable COPYRIGHTYEAR" > ./docs/examples/.checksrc
+ echo "enable COPYRIGHTYEAR" > ./lib/.checksrc
+ echo "enable COPYRIGHTYEAR" > ./src/.checksrc
+ echo "enable COPYRIGHTYEAR" > ./include/curl/.checksrc
make checksrc
fi
fi
diff --git a/lib/checksrc.pl b/lib/checksrc.pl
index b2cfa8355..834364561 100755
--- a/lib/checksrc.pl
+++ b/lib/checksrc.pl
@@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2011 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2011 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -717,12 +717,17 @@ sub scanfile {
my $commityear = undef;
@copyright = sort {$$b{year} cmp $$a{year}} @copyright;
+ # if the file is modified, assume commit year this year
if(`git status -s -- $file` =~ /^ [MARCU]/) {
$commityear = (localtime(time))[5] + 1900;
}
- elsif (`git rev-list --count origin/master..HEAD -- $file` !~ /^0/) {
- my $grl = `git rev-list --max-count=1 --timestamp HEAD -- $file`;
- $commityear = (localtime((split(/ /, $grl))[0]))[5] + 1900;
+ else {
+ # min-parents=1 to ignore wrong initial commit in truncated repos
+ my $grl = `git rev-list --max-count=1 --min-parents=1 --timestamp HEAD -- $file`;
+ if($grl) {
+ chomp $grl;
+ $commityear = (localtime((split(/ /, $grl))[0]))[5] + 1900;
+ }
}
if(defined($commityear) && scalar(@copyright) &&