Re: [PATCH v4 1/3] fetch/pull: Add the --recurse-submodules option
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:50:13
Jens Lehmann [off-list ref] writes:
quoted hunk
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".
quoted hunk
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?