From: Junio C Hamano Date: Sun, 30 Mar 2008 19:39:25 +0000 (-0700) Subject: diff-files: mark an index entry we know is up-to-date as such X-Git-Tag: v1.5.6-rc0~91^2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=8fa29602d4cf8c9ec7d837f7308a9582a8372cb5;p=git.git diff-files: mark an index entry we know is up-to-date as such This does not make any difference when running diff-files alone, but if you internally run run_diff_files() and then run other operations further on the index, we do not have to run lstat(2) again on entries we already have checked. Signed-off-by: Junio C Hamano --- diff --git a/diff-lib.c b/diff-lib.c index 069e4507a..6e7ab29e3 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -476,8 +476,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,