config: teach the fetch.recurseSubmodules option the 'on-demand' value
To enable the user to change the default behavior of "git fetch" and "git pull" regarding submodule recursion add the new "on-demand" value which has just been added to the "--recurse-submodules" command line option. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
8f0700dd33
commit
1fb2550202
@ -900,9 +900,13 @@ diff.wordRegex::
|
|||||||
characters are *ignorable* whitespace.
|
characters are *ignorable* whitespace.
|
||||||
|
|
||||||
fetch.recurseSubmodules::
|
fetch.recurseSubmodules::
|
||||||
A boolean value which changes the behavior for fetch and pull, the
|
This option can be either set to a boolean value or to 'on-demand'.
|
||||||
default is to not recursively fetch populated submodules unless
|
Setting it to a boolean changes the behavior of fetch and pull to
|
||||||
configured otherwise.
|
unconditionally recurse into submodules when set to true or to not
|
||||||
|
recurse at all when set to false. When set to 'on-demand' (the default
|
||||||
|
value), fetch and pull will only recurse into a populated submodule
|
||||||
|
when its superproject retrieves a commit that updates the submodule's
|
||||||
|
reference.
|
||||||
|
|
||||||
fetch.unpackLimit::
|
fetch.unpackLimit::
|
||||||
If the number of objects fetched over the git native
|
If the number of objects fetched over the git native
|
||||||
|
@ -71,7 +71,7 @@ int submodule_config(const char *var, const char *value, void *cb)
|
|||||||
if (!prefixcmp(var, "submodule."))
|
if (!prefixcmp(var, "submodule."))
|
||||||
return parse_submodule_config_option(var, value);
|
return parse_submodule_config_option(var, value);
|
||||||
else if (!strcmp(var, "fetch.recursesubmodules")) {
|
else if (!strcmp(var, "fetch.recursesubmodules")) {
|
||||||
config_fetch_recurse_submodules = git_config_bool(var, value);
|
config_fetch_recurse_submodules = parse_fetch_recurse_submodules_arg(var, value);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -372,4 +372,32 @@ test_expect_success "'--recurse-submodules=on-demand' stops when no new submodul
|
|||||||
test_cmp expect.err.file actual.err
|
test_cmp expect.err.file actual.err
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config" '
|
||||||
|
(
|
||||||
|
cd downstream &&
|
||||||
|
git fetch --recurse-submodules
|
||||||
|
) &&
|
||||||
|
add_upstream_commit &&
|
||||||
|
git config --global fetch.recurseSubmodules false &&
|
||||||
|
head1=$(git rev-parse --short HEAD) &&
|
||||||
|
git add submodule &&
|
||||||
|
git commit -m "new submodule" &&
|
||||||
|
head2=$(git rev-parse --short HEAD) &&
|
||||||
|
echo "From $pwd/." > expect.err.2 &&
|
||||||
|
echo " $head1..$head2 master -> origin/master" >> expect.err.2
|
||||||
|
head -2 expect.err >> expect.err.2 &&
|
||||||
|
(
|
||||||
|
cd downstream &&
|
||||||
|
git config fetch.recurseSubmodules on-demand &&
|
||||||
|
git fetch >../actual.out 2>../actual.err
|
||||||
|
) &&
|
||||||
|
git config --global --unset fetch.recurseSubmodules &&
|
||||||
|
(
|
||||||
|
cd downstream &&
|
||||||
|
git config --unset fetch.recurseSubmodules
|
||||||
|
) &&
|
||||||
|
test_cmp expect.out.sub actual.out &&
|
||||||
|
test_cmp expect.err.2 actual.err
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
x
Reference in New Issue
Block a user