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 <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
41cf68a85c
commit
a1a5a6347b
6
date.c
6
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);
|
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;
|
time_t time = num;
|
||||||
if (gmtime_r(&time, tm)) {
|
if (gmtime_r(&time, tm)) {
|
||||||
*tm_gmt = 1;
|
*tm_gmt = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user