diff options
author | Axel Rasmussen <axelrasmussen@google.com> | 2015-08-29 13:59:20 -0700 |
---|---|---|
committer | Axel Rasmussen <axelrasmussen@google.com> | 2015-09-18 23:33:56 -0700 |
commit | 0226f7dd36c990e9bc1632adbc655fefc797513a (patch) | |
tree | 7077e9792dc75e9b7d74813914e2fe08010a8d0d /src/fileops.c | |
parent | 360dd4dafd30bced1dab1d516765e347d09b91ba (diff) | |
download | libgit2-0226f7dd36c990e9bc1632adbc655fefc797513a.tar.gz |
diff/index: respect USE_NSEC for racily clean file detection
Diffstat (limited to 'src/fileops.c')
-rw-r--r-- | src/fileops.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/fileops.c b/src/fileops.c index 57d2ce9c3..da1d8a0bb 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -1035,12 +1035,18 @@ int git_futils_filestamp_check( if (p_stat(path, &st) < 0) return GIT_ENOTFOUND; - if (stamp->mtime == (git_time_t)st.st_mtime && + if (stamp->mtime.tv_sec == st.st_mtim.tv_sec && +#if defined(GIT_USE_NSEC) + stamp->mtime.tv_nsec == st.st_mtim.tv_nsec && +#endif stamp->size == (git_off_t)st.st_size && stamp->ino == (unsigned int)st.st_ino) return 0; - stamp->mtime = (git_time_t)st.st_mtime; + stamp->mtime.tv_sec = st.st_mtim.tv_sec; +#if defined(GIT_USE_NSEC) + stamp->mtime.tv_nsec = st.st_mtim.tv_nsec; +#endif stamp->size = (git_off_t)st.st_size; stamp->ino = (unsigned int)st.st_ino; @@ -1063,7 +1069,7 @@ void git_futils_filestamp_set_from_stat( git_futils_filestamp *stamp, struct stat *st) { if (st) { - stamp->mtime = (git_time_t)st->st_mtime; + stamp->mtime = st->st_mtim; stamp->size = (git_off_t)st->st_size; stamp->ino = (unsigned int)st->st_ino; } else { |