checkout bugfix: use stat.mtime instead of stat.ctime in two places
Commite1afca4fd
"write_index(): update index_state->timestamp after flushing to disk" on 2009-02-23 used stat.ctime to record the timestamp of the index-file. This is wrong, so fix this and use the correct stat.mtime timestamp instead. Commit110c46a909
"Not all systems use st_[cm]tim field for ns resolution file timestamp" on 2009-03-08, has a similar bug for the builtin-fetch-pack.c file. Signed-off-by: Kjetil Barvik <barvik@broadpark.no> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d7371a2d4d
commit
5bcf109cdf
@ -807,7 +807,7 @@ struct ref *fetch_pack(struct fetch_pack_args *my_args,
|
|||||||
die("shallow file was removed during fetch");
|
die("shallow file was removed during fetch");
|
||||||
} else if (st.st_mtime != mtime.sec
|
} else if (st.st_mtime != mtime.sec
|
||||||
#ifdef USE_NSEC
|
#ifdef USE_NSEC
|
||||||
|| ST_CTIME_NSEC(st) != mtime.nsec
|
|| ST_MTIME_NSEC(st) != mtime.nsec
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
die("shallow file was changed during fetch");
|
die("shallow file was changed during fetch");
|
||||||
|
@ -1563,8 +1563,8 @@ int write_index(struct index_state *istate, int newfd)
|
|||||||
|
|
||||||
if (ce_flush(&c, newfd) || fstat(newfd, &st))
|
if (ce_flush(&c, newfd) || fstat(newfd, &st))
|
||||||
return -1;
|
return -1;
|
||||||
istate->timestamp.sec = (unsigned int)st.st_ctime;
|
istate->timestamp.sec = (unsigned int)st.st_mtime;
|
||||||
istate->timestamp.nsec = ST_CTIME_NSEC(st);
|
istate->timestamp.nsec = ST_MTIME_NSEC(st);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user