Merge branch 'us/unpack-trees-fsmonitor'
Users of oneway_merge() (like "reset --hard") learned to take advantage of fsmonitor to avoid unnecessary lstat(2) calls. * us/unpack-trees-fsmonitor: unpack-trees: skip stat on fsmonitor-valid files
This commit is contained in:
@ -1504,6 +1504,9 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
|
||||
o->merge_size = len;
|
||||
mark_all_ce_unused(o->src_index);
|
||||
|
||||
if (o->src_index->fsmonitor_last_update)
|
||||
o->result.fsmonitor_last_update = o->src_index->fsmonitor_last_update;
|
||||
|
||||
/*
|
||||
* Sparse checkout loop #1: set NEW_SKIP_WORKTREE on existing entries
|
||||
*/
|
||||
@ -2384,7 +2387,8 @@ int oneway_merge(const struct cache_entry * const *src,
|
||||
|
||||
if (old && same(old, a)) {
|
||||
int update = 0;
|
||||
if (o->reset && o->update && !ce_uptodate(old) && !ce_skip_worktree(old)) {
|
||||
if (o->reset && o->update && !ce_uptodate(old) && !ce_skip_worktree(old) &&
|
||||
!(old->ce_flags & CE_FSMONITOR_VALID)) {
|
||||
struct stat st;
|
||||
if (lstat(old->name, &st) ||
|
||||
ie_match_stat(o->src_index, old, &st, CE_MATCH_IGNORE_VALID|CE_MATCH_IGNORE_SKIP_WORKTREE))
|
||||
|
Reference in New Issue
Block a user