Merge branch 'jc/lstat'
authorJunio C Hamano <gitster@pobox.com>
Tue, 6 May 2008 02:16:26 +0000 (19:16 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 6 May 2008 02:16:26 +0000 (19:16 -0700)
* 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

1  2 
diff-lib.c
diff --combined diff-lib.c
index cfd629da48526f5949124b5d9baeb52dfadd5f64,6e7ab29e343bd0aab10c54d5194527c233fa9e23..9139e45fb98b4cb62d4e9dd243d3dc45f631aaeb
@@@ -264,9 -264,6 +264,9 @@@ int setup_diff_no_index(struct rev_inf
                        DIFF_OPT_SET(&revs->diffopt, EXIT_WITH_STATUS);
                        break;
                }
 +      if (nongit && argc != i + 2)
 +              die("git diff [--no-index] takes two paths");
 +
        if (argc != i + 2 || (!is_outside_repo(argv[i + 1], nongit, prefix) &&
                                !is_outside_repo(argv[i], nongit, prefix)))
                return -1;
@@@ -479,8 -476,11 +479,11 @@@ int run_diff_files(struct rev_info *rev
                        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,