summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Brandon Williams <bmwill@google.com>2017-08-03 11:19:52 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-08-03 13:11:01 -0700
commitfdfa9e97dbffdc6868a1a046456c0ad67dda9e29 (patch)
tree6fec7609ce4f82cc001f9a103032dd00772c6d9d
parentfetch: don't overlay config with submodule-config (diff)
downloadtgif-fdfa9e97dbffdc6868a1a046456c0ad67dda9e29.tar.xz
submodule: don't rely on overlayed config when setting diffopts
Don't rely on overlaying the repository's config on top of the submodule-config, instead query the repository's config directory for the ignore field. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--submodule.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/submodule.c b/submodule.c
index 59e3d0828f..a32043893b 100644
--- a/submodule.c
+++ b/submodule.c
@@ -165,8 +165,16 @@ void set_diffopt_flags_from_submodule_config(struct diff_options *diffopt,
{
const struct submodule *submodule = submodule_from_path(&null_oid, path);
if (submodule) {
- if (submodule->ignore)
- handle_ignore_submodules_arg(diffopt, submodule->ignore);
+ const char *ignore;
+ char *key;
+
+ key = xstrfmt("submodule.%s.ignore", submodule->name);
+ if (repo_config_get_string_const(the_repository, key, &ignore))
+ ignore = submodule->ignore;
+ free(key);
+
+ if (ignore)
+ handle_ignore_submodules_arg(diffopt, ignore);
else if (is_gitmodules_unmerged(&the_index))
DIFF_OPT_SET(diffopt, IGNORE_SUBMODULES);
}