Skip to content

Commit

Permalink
write_index(): optimize ce_smudge_racily_clean_entry() calls with CE_…
Browse files Browse the repository at this point in the history
…UPTODATE

When writing the index out, we need to check the work tree again to see if
an entry whose timestamp indicates that it could be "racily clean", in
order to smudge it if it is stat-clean but with modified contents.

However, we can skip this step for entries marked with CE_UPTODATE,
which are known to be the really clean (i.e. the one we already have
checked when we prepared the index).  This will reduce lstat(2) calls
necessary in git-status.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Apr 13, 2008
1 parent f43e2fd commit e06c43c
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion read-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -1370,7 +1370,7 @@ int write_index(const struct index_state *istate, int newfd)
struct cache_entry *ce = cache[i];
if (ce->ce_flags & CE_REMOVE)
continue;
if (is_racy_timestamp(istate, ce))
if (!ce_uptodate(ce) && is_racy_timestamp(istate, ce))
ce_smudge_racily_clean_entry(ce);
if (ce_write_entry(&c, newfd, ce) < 0)
return -1;
Expand Down

0 comments on commit e06c43c

Please sign in to comment.