summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 62ed009)
raw | patch | inline | side by side (parent: 62ed009)
author | Jens Lehmann <Jens.Lehmann@web.de> | |
Sat, 28 Aug 2010 14:50:07 +0000 (16:50 +0200) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Mon, 30 Aug 2010 07:37:37 +0000 (00:37 -0700) |
For "git status" and the diff family the submodule.*.ignore settings from
.git/config and .gitmodules can be used to override the default set via
diff.ignoreSubmodules on a per-submodule basis. Let's do this consistently
and teach checkout to use these settings too.
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
.git/config and .gitmodules can be used to override the default set via
diff.ignoreSubmodules on a per-submodule basis. Let's do this consistently
and teach checkout to use these settings too.
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/checkout.c | patch | blob | history | |
t/t2013-checkout-submodule.sh | patch | blob | history |
diff --git a/builtin/checkout.c b/builtin/checkout.c
index e73bfe3403e0d80aced9607321792bb60779b109..829442932f1711ecaea99180e7d3f6875f963832 100644 (file)
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
handle_ignore_submodules_arg(&opts->diff_options, value);
return 0;
}
+
+ if (!prefixcmp(var, "submodule."))
+ return parse_submodule_config_option(var, value);
+
return git_xmerge_config(var, value, NULL);
}
memset(&opts, 0, sizeof(opts));
memset(&new, 0, sizeof(new));
+ gitmodules_config();
git_config(git_checkout_config, &opts);
opts.track = BRANCH_TRACK_UNSPECIFIED;
index 3beb0b3ed7bb62ce004979ffc8910ef3b992a0a3..70edbb33e26c0ee6d5cec81d2417c8a830d6fab1 100755 (executable)
! test -s actual
'
+test_expect_success '"checkout <submodule>" honors submodule.*.ignore from .gitmodules' '
+ git config diff.ignoreSubmodules none &&
+ git config -f .gitmodules submodule.submodule.path submodule &&
+ git config -f .gitmodules submodule.submodule.ignore untracked &&
+ git checkout HEAD >actual 2>&1 &&
+ ! test -s actual
+'
+
+test_expect_success '"checkout <submodule>" honors submodule.*.ignore from .git/config' '
+ git config -f .gitmodules submodule.submodule.ignore none &&
+ git config submodule.submodule.path submodule &&
+ git config submodule.submodule.ignore all &&
+ git checkout HEAD >actual 2>&1 &&
+ ! test -s actual
+'
+
test_done