提交 4e53d6a5 编写于 作者: S Stefan Beller 提交者: Junio C Hamano

builtin/push.c: respect 'submodule.recurse' option

The closest mapping from the boolean 'submodule.recurse' set to "yes"
to the variety of submodule push modes is "on-demand", so implement that.
Signed-off-by: NStefan Beller <sbeller@google.com>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 9071c078
......@@ -498,6 +498,10 @@ static int git_push_config(const char *k, const char *v, void *cb)
const char *value;
if (!git_config_get_value("push.recursesubmodules", &value))
recurse_submodules = parse_push_recurse_submodules_arg(k, value);
} else if (!strcmp(k, "submodule.recurse")) {
int val = git_config_bool(k, v) ?
RECURSE_SUBMODULES_ON_DEMAND : RECURSE_SUBMODULES_OFF;
recurse_submodules = val;
}
return git_default_config(k, v, NULL);
......
......@@ -126,6 +126,27 @@ test_expect_success 'push succeeds if submodule commit not on remote but using o
)
'
test_expect_success 'push succeeds if submodule commit not on remote but using auto-on-demand via submodule.recurse config' '
(
cd work/gar/bage &&
>recurse-on-demand-from-submodule-recurse-config &&
git add recurse-on-demand-from-submodule-recurse-config &&
git commit -m "Recurse submodule.recurse from config junk"
) &&
(
cd work &&
git add gar/bage &&
git commit -m "Recurse submodule.recurse from config for gar/bage" &&
git -c submodule.recurse push ../pub.git master &&
# Check that the supermodule commit got there
git fetch ../pub.git &&
git diff --quiet FETCH_HEAD master &&
# Check that the submodule commit got there too
cd gar/bage &&
git diff --quiet origin/master master
)
'
test_expect_success 'push recurse-submodules on command line overrides config' '
(
cd work/gar/bage &&
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册