From 8fa29602d4cf8c9ec7d837f7308a9582a8372cb5 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 30 Mar 2008 12:39:25 -0700 Subject: [PATCH] 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-lib.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/diff-lib.c b/diff-lib.c index 069e4507ae..6e7ab29e34 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, -- 2.11.4.GIT