diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-05-05 19:16:26 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-05-05 19:16:26 -0700 |
commit | 867fa20fe929942fba2345adc591e6f5c74f8c11 (patch) | |
tree | d1604efd64b03b8a4149a208edf1785d55dda225 | |
parent | Merge branch 'bc/filter-branch' (diff) | |
parent | diff-files: mark an index entry we know is up-to-date as such (diff) | |
download | tgif-867fa20fe929942fba2345adc591e6f5c74f8c11.tar.xz |
Merge branch 'jc/lstat'
* jc/lstat:
diff-files: mark an index entry we know is up-to-date as such
write_index(): optimize ce_smudge_racily_clean_entry() calls with CE_UPTODATE
-rw-r--r-- | diff-lib.c | 7 | ||||
-rw-r--r-- | read-cache.c | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/diff-lib.c b/diff-lib.c index cfd629da48..9139e45fb9 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -479,8 +479,11 @@ int run_diff_files(struct rev_info *revs, unsigned int option) continue; } changed = ce_match_stat(ce, &st, ce_option); - if (!changed && !DIFF_OPT_TST(&revs->diffopt, FIND_COPIES_HARDER)) - continue; + if (!changed) { + ce_mark_uptodate(ce); + if (!DIFF_OPT_TST(&revs->diffopt, FIND_COPIES_HARDER)) + continue; + } oldmode = ce->ce_mode; newmode = ce_mode_from_stat(ce, st.st_mode); diff_change(&revs->diffopt, oldmode, newmode, diff --git a/read-cache.c b/read-cache.c index a92b25b59b..c3692f41ad 100644 --- a/read-cache.c +++ b/read-cache.c @@ -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; |