]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'jc/fake-lstat'
authorJunio C Hamano <gitster@pobox.com>
Wed, 27 Dec 2023 22:52:24 +0000 (14:52 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 27 Dec 2023 22:52:24 +0000 (14:52 -0800)
A new helper to let us pretend that we called lstat() when we know
our cache_entry is up-to-date via fsmonitor.

* jc/fake-lstat:
  cache: add fake_lstat()

1  2 
statinfo.c

diff --cc statinfo.c
index 9367ca099cd114d56d7b2103b0e56fa4933f5781,45156109de72e93109264198c8d370fa1e543447..3c6bc049c15d44c33c064fecbbd2236571b2dadb
@@@ -28,9 -12,36 +28,36 @@@ void fill_stat_data(struct stat_data *s
        sd->sd_ino = st->st_ino;
        sd->sd_uid = st->st_uid;
        sd->sd_gid = st->st_gid;
 -      sd->sd_size = st->st_size;
 +      sd->sd_size = munge_st_size(st->st_size);
  }
  
+ static void set_times(struct stat *st, const struct stat_data *sd)
+ {
+       st->st_ctime = sd->sd_ctime.sec;
+       st->st_mtime = sd->sd_mtime.sec;
+ #ifdef NO_NSEC
+       ; /* nothing */
+ #else
+ #ifdef USE_ST_TIMESPEC
+       st->st_ctimespec.tv_nsec = sd->sd_ctime.nsec;
+       st->st_mtimespec.tv_nsec = sd->sd_mtime.nsec;
+ #else
+       st->st_ctim.tv_nsec = sd->sd_ctime.nsec;
+       st->st_mtim.tv_nsec = sd->sd_mtime.nsec;
+ #endif
+ #endif
+ }
+ void fake_lstat_data(const struct stat_data *sd, struct stat *st)
+ {
+       set_times(st, sd);
+       st->st_dev = sd->sd_dev;
+       st->st_ino = sd->sd_ino;
+       st->st_uid = sd->sd_uid;
+       st->st_gid = sd->sd_gid;
+       st->st_size = sd->sd_size;
+ }
  int match_stat_data(const struct stat_data *sd, struct stat *st)
  {
        int changed = 0;