"
for i in $files ; do
- # get the last year this file was modified from the git log
- last_year=`git log -n 1 --date=short --format="format:%cd" $i | perl -pi -e 's/.*(\d\d\d\d)-.*/\1/g;'`
+ # get the last year this file was modified from the git log.
+ # we don't want to see patches that just updated the copyright
+ # year, so output the dates and log messages of the last 3
+ # commits, throw away all that mention both the words
+ # "update" and "copyright", and take the year of the first
+ # message that remains
+ #
+ # (it should be enough to look at the last 2 messages since
+ # ideally no two successive commits should have updated the
+ # copyright year. let's err on the safe side and take the last
+ # 3 commits.)
+ last_year=`git log -n 3 --date=short --format="format:%cd %s" $i | \
+ egrep -i -v "update.*copyright|copyright.*update" | \
+ head -n 1 | \
+ perl -pi -e 's/^(\d\d\d\d)-.*/\1/g;'`
# get the first year this file was modified from the actual
# file. this may predate the git log if the file was copied