Merge part of 'sp/checkout'
[gitweb.git] / diff-files.c
index d24d11c28dbc2996a352c7adacef0d96cfad5fe6..b1c05b325a8f171fc67c204471db2cb5e98b0b50 100644 (file)
@@ -88,9 +88,8 @@ int main(int argc, const char **argv)
                }
                argv++; argc--;
        }
-       if (combine_merges) {
+       if (dense_combined_merges)
                diff_options.output_format = DIFF_FORMAT_PATCH;
-       }
 
        /* Find the directory, and set up the pathspec */
        pathspec = get_pathspec(prefix, argv + 1);
@@ -151,6 +150,8 @@ int main(int argc, const char **argv)
                                               nce->sha1, 20);
                                        combine.p.parent[stage-2].mode =
                                                DIFF_FILE_CANON_MODE(mode);
+                                       combine.p.parent[stage-2].status =
+                                               DIFF_STATUS_MODIFIED;
                                }
 
                                /* diff against the proper unmerged stage */
@@ -166,7 +167,8 @@ int main(int argc, const char **argv)
                        if (combine_merges && num_compare_stages == 2) {
                                show_combined_diff(&combine.p, 2,
                                                   dense_combined_merges,
-                                                  NULL);
+                                                  NULL,
+                                                  &diff_options);
                                free(combine.p.path);
                                continue;
                        }
@@ -191,7 +193,7 @@ int main(int argc, const char **argv)
                        show_file('-', ce);
                        continue;
                }
-               changed = ce_match_stat(ce, &st);
+               changed = ce_match_stat(ce, &st, 0);
                if (!changed && !diff_options.find_copies_harder)
                        continue;
                oldmode = ntohl(ce->ce_mode);