submodule--helper clone: check for configured submodules using helper

Use the 'is_submodule_initialized()' helper to check for configured
submodules instead of manually checking for the submodule's URL in the
config.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Brandon Williams 2017-03-16 15:29:47 -07:00 committed by Junio C Hamano
parent 25b31f1b73
commit ee92ab992f

View File

@ -759,7 +759,6 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
struct strbuf displaypath_sb = STRBUF_INIT; struct strbuf displaypath_sb = STRBUF_INIT;
struct strbuf sb = STRBUF_INIT; struct strbuf sb = STRBUF_INIT;
const char *displaypath = NULL; const char *displaypath = NULL;
char *url = NULL;
int needs_cloning = 0; int needs_cloning = 0;
if (ce_stage(ce)) { if (ce_stage(ce)) {
@ -793,15 +792,8 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
goto cleanup; goto cleanup;
} }
/* /* Check if the submodule has been initialized. */
* Looking up the url in .git/config. if (!is_submodule_initialized(ce->name)) {
* We must not fall back to .gitmodules as we only want
* to process configured submodules.
*/
strbuf_reset(&sb);
strbuf_addf(&sb, "submodule.%s.url", sub->name);
git_config_get_string(sb.buf, &url);
if (!url) {
next_submodule_warn_missing(suc, out, displaypath); next_submodule_warn_missing(suc, out, displaypath);
goto cleanup; goto cleanup;
} }
@ -835,7 +827,7 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
argv_array_push(&child->args, "--depth=1"); argv_array_push(&child->args, "--depth=1");
argv_array_pushl(&child->args, "--path", sub->path, NULL); argv_array_pushl(&child->args, "--path", sub->path, NULL);
argv_array_pushl(&child->args, "--name", sub->name, NULL); argv_array_pushl(&child->args, "--name", sub->name, NULL);
argv_array_pushl(&child->args, "--url", url, NULL); argv_array_pushl(&child->args, "--url", sub->url, NULL);
if (suc->references.nr) { if (suc->references.nr) {
struct string_list_item *item; struct string_list_item *item;
for_each_string_list_item(item, &suc->references) for_each_string_list_item(item, &suc->references)
@ -845,7 +837,6 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
argv_array_push(&child->args, suc->depth); argv_array_push(&child->args, suc->depth);
cleanup: cleanup:
free(url);
strbuf_reset(&displaypath_sb); strbuf_reset(&displaypath_sb);
strbuf_reset(&sb); strbuf_reset(&sb);