Jens Lehmann <Jens.Lehmann@xxxxxx> writes: > Until now you had to call "git submodule update" (without -N|--no-fetch > option) or something like "git submodule foreach git fetch" to fetch > new commits in populated submodules from their remote. > ... > diff --git a/builtin/fetch.c b/builtin/fetch.c > index d35f000..db3fba3 100644 > --- a/builtin/fetch.c > +++ b/builtin/fetch.c > ... > @@ -784,28 +790,36 @@ static int add_remote_or_group(const char *name, struct string_list *list) > return 1; > } > > -static int fetch_multiple(struct string_list *list) > +static void add_options_to_argv(int *argc, const char **argv) > { > - int i, result = 0; > - const char *argv[11] = { "fetch", "--append" }; > -... > +static int fetch_multiple(struct string_list *list) > +{ > + int i, result = 0; > + const char *argv[12] = { "fetch", "--append" }; This used to be 11; are we adding something new? Ahh, possibly "--recurse_submodules". > diff --git a/submodule.c b/submodule.c > index 91a4758..4d9b774 100644 > --- a/submodule.c > +++ b/submodule.c > @@ -63,7 +63,7 @@ void set_diffopt_flags_from_submodule_config(struct diff_options *diffopt, > } > } > > -static int submodule_config(const char *var, const char *value, void *cb) > +int submodule_config(const char *var, const char *value, void *cb) > { > if (!prefixcmp(var, "submodule.")) > return parse_submodule_config_option(var, value); > @@ -229,6 +229,70 @@ void show_submodule_summary(FILE *f, const char *path, > strbuf_release(&sb); > } > > +int fetch_populated_submodules(int num_options, const char **options, > + const char *prefix, int quiet) > +{ > + int i, result = 0, argc = 0; > + struct child_process cp; > + const char **argv; > + struct string_list_item *name_for_path; > + const char *work_tree = get_git_work_tree(); > + if (!work_tree) > + return 0; > + > + if (!the_index.initialized) > + if (read_cache() < 0) > + die("index file corrupt"); > + > + argv = xcalloc(num_options + 5, sizeof(const char *)); Where is this '5' coming from? "fetch" "--submodule-prefix", the prefix, and the terminating NULL? What did I miss? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html