]> git.ipfire.org Git - thirdparty/git.git/blobdiff - diff-lib.c
Merge branch 'js/diff-cached-fsmonitor-fix' into jc/diff-cached-fsmonitor-fix
[thirdparty/git.git] / diff-lib.c
index 083e18dc9d071a3ab26b1a4a3ad67bb6d7438dcb..e533b436afb8541288131dbf27edc9da1f2e60a9 100644 (file)
@@ -1,16 +1,24 @@
 /*
  * Copyright (C) 2005 Junio C Hamano
  */
-#include "cache.h"
+#include "git-compat-util.h"
 #include "quote.h"
 #include "commit.h"
 #include "diff.h"
 #include "diffcore.h"
+#include "gettext.h"
+#include "hash.h"
+#include "hex.h"
+#include "object-name.h"
+#include "read-cache.h"
 #include "revision.h"
 #include "cache-tree.h"
 #include "unpack-trees.h"
 #include "refs.h"
+#include "repository.h"
 #include "submodule.h"
+#include "symlinks.h"
+#include "trace.h"
 #include "dir.h"
 #include "fsmonitor.h"
 #include "commit-reach.h"
@@ -581,7 +589,7 @@ void diff_get_merge_base(const struct rev_info *revs, struct object_id *mb)
        if (revs->pending.nr == 1) {
                struct object_id oid;
 
-               if (get_oid("HEAD", &oid))
+               if (repo_get_oid(the_repository, "HEAD", &oid))
                        die(_("unable to get HEAD"));
 
                mb_child[1] = lookup_commit_reference(the_repository, &oid);
@@ -664,8 +672,15 @@ int index_differs_from(struct repository *r,
        setup_revisions(0, NULL, &rev, &opt);
        rev.diffopt.flags.quick = 1;
        rev.diffopt.flags.exit_with_status = 1;
-       if (flags)
+       if (flags) {
                diff_flags_or(&rev.diffopt.flags, flags);
+               /*
+                * Now that flags are merged, honor override_submodule_config
+                * and ignore_submodules from passed flags.
+                */
+               if (flags->override_submodule_config)
+                       rev.diffopt.flags.ignore_submodules = flags->ignore_submodules;
+       }
        rev.diffopt.ita_invisible_in_index = ita_invisible_in_index;
        run_diff_index(&rev, 1);
        has_changes = rev.diffopt.flags.has_changes;
@@ -673,7 +688,7 @@ int index_differs_from(struct repository *r,
        return (has_changes != 0);
 }
 
-static struct strbuf *idiff_prefix_cb(struct diff_options *opt, void *data)
+static struct strbuf *idiff_prefix_cb(struct diff_options *opt UNUSED, void *data)
 {
        return data;
 }