From: Johannes Sixt Date: Wed, 6 Jun 2007 08:11:55 +0000 (+0200) Subject: Accept dates before 2000/01/01 when specified as seconds since the epoch X-Git-Tag: v1.5.2.2~24 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/a1a5a6347b4ac1005c5d9c2b636e906bf6c8ec12 Accept dates before 2000/01/01 when specified as seconds since the epoch Tests with git-filter-branch on a repository that was converted from CVS and that has commits reaching back to 1999 revealed that it is necessary to parse dates before 2000/01/01 when they are specified as seconds since 1970/01/01. There is now still a limit, 100000000, which is 1973/03/03 09:46:40 UTC, in order to allow that dates are represented as 8 digits. Signed-off-by: Johannes Sixt Signed-off-by: Junio C Hamano --- diff --git a/date.c b/date.c index a9b59a289e..4690371e55 100644 --- a/date.c +++ b/date.c @@ -414,9 +414,11 @@ static int match_digit(const char *date, struct tm *tm, int *offset, int *tm_gmt num = strtoul(date, &end, 10); /* - * Seconds since 1970? We trigger on that for anything after Jan 1, 2000 + * Seconds since 1970? We trigger on that for any numbers with + * more than 8 digits. This is because we don't want to rule out + * numbers like 20070606 as a YYYYMMDD date. */ - if (num > 946684800) { + if (num >= 100000000) { time_t time = num; if (gmtime_r(&time, tm)) { *tm_gmt = 1;