This cleans up some mistakes I introduced in my previous series, and switches `git diff` to use the fsmonitor data. I've noticed that `git checkout HEAD` drops the fsmonitor data, which surprises me -- the following patch "fixes" that but broke tests, so there's something I clearly don't understand yet going on here: --- a/unpack-trees.c +++ b/unpack-trees.c @@ -1262,6 +1262,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options o->result.timestamp.nsec = o->src_index->timestamp.nsec; o->result.version = o->src_index->version; o->result.split_index = o->src_index->split_index; + o->result.fsmonitor_last_update = o->src_index->fsmonitor_last_update; if (o->result.split_index) o->result.split_index->refcount++; hashcpy(o->result.sha1, o->src_index->sha1); - Alex