submodule: remove fetch.recursesubmodules from submodule-config parsing
Remove the 'fetch.recursesubmodules' configuration option from the general submodule-config parsing and instead rely on using 'config_from_gitmodules()' in order to maintain backwards compatibility with this config being placed in the '.gitmodules' file. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
f20e7c1ea2
commit
8fa2915971
@ -71,6 +71,9 @@ static int git_fetch_config(const char *k, const char *v, void *cb)
|
||||
if (!strcmp(k, "submodule.fetchjobs")) {
|
||||
max_children = parse_submodule_fetchjobs(k, v);
|
||||
return 0;
|
||||
} else if (!strcmp(k, "fetch.recursesubmodules")) {
|
||||
recurse_submodules = parse_fetch_recurse_submodules_arg(k, v);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return git_default_config(k, v, cb);
|
||||
@ -81,6 +84,9 @@ static int gitmodules_fetch_config(const char *var, const char *value, void *cb)
|
||||
if (!strcmp(var, "submodule.fetchjobs")) {
|
||||
max_children = parse_submodule_fetchjobs(var, value);
|
||||
return 0;
|
||||
} else if (!strcmp(var, "fetch.recursesubmodules")) {
|
||||
recurse_submodules = parse_fetch_recurse_submodules_arg(var, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -1355,7 +1361,6 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
|
||||
deepen = 1;
|
||||
|
||||
if (recurse_submodules != RECURSE_SUBMODULES_OFF) {
|
||||
set_config_fetch_recurse_submodules(recurse_submodules_default);
|
||||
gitmodules_config();
|
||||
git_config(submodule_config, NULL);
|
||||
}
|
||||
@ -1399,6 +1404,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
|
||||
result = fetch_populated_submodules(&options,
|
||||
submodule_prefix,
|
||||
recurse_submodules,
|
||||
recurse_submodules_default,
|
||||
verbosity < 0,
|
||||
max_children);
|
||||
argv_array_clear(&options);
|
||||
|
19
submodule.c
19
submodule.c
@ -20,7 +20,6 @@
|
||||
#include "worktree.h"
|
||||
#include "parse-options.h"
|
||||
|
||||
static int config_fetch_recurse_submodules = RECURSE_SUBMODULES_ON_DEMAND;
|
||||
static int config_update_recurse_submodules = RECURSE_SUBMODULES_OFF;
|
||||
static struct string_list changed_submodule_paths = STRING_LIST_INIT_DUP;
|
||||
static int initialized_fetch_ref_tips;
|
||||
@ -160,10 +159,6 @@ static int git_modules_config(const char *var, const char *value, void *cb)
|
||||
{
|
||||
if (starts_with(var, "submodule."))
|
||||
return parse_submodule_config_option(var, value);
|
||||
else if (!strcmp(var, "fetch.recursesubmodules")) {
|
||||
config_fetch_recurse_submodules = parse_fetch_recurse_submodules_arg(var, value);
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -714,11 +709,6 @@ done:
|
||||
clear_commit_marks(right, ~0);
|
||||
}
|
||||
|
||||
void set_config_fetch_recurse_submodules(int value)
|
||||
{
|
||||
config_fetch_recurse_submodules = value;
|
||||
}
|
||||
|
||||
int should_update_submodules(void)
|
||||
{
|
||||
return config_update_recurse_submodules == RECURSE_SUBMODULES_ON;
|
||||
@ -1164,10 +1154,11 @@ struct submodule_parallel_fetch {
|
||||
const char *work_tree;
|
||||
const char *prefix;
|
||||
int command_line_option;
|
||||
int default_option;
|
||||
int quiet;
|
||||
int result;
|
||||
};
|
||||
#define SPF_INIT {0, ARGV_ARRAY_INIT, NULL, NULL, 0, 0, 0}
|
||||
#define SPF_INIT {0, ARGV_ARRAY_INIT, NULL, NULL, 0, 0, 0, 0}
|
||||
|
||||
static int get_next_submodule(struct child_process *cp,
|
||||
struct strbuf *err, void *data, void **task_cb)
|
||||
@ -1205,10 +1196,10 @@ static int get_next_submodule(struct child_process *cp,
|
||||
default_argv = "on-demand";
|
||||
}
|
||||
} else {
|
||||
if ((config_fetch_recurse_submodules == RECURSE_SUBMODULES_OFF) ||
|
||||
if ((spf->default_option == RECURSE_SUBMODULES_OFF) ||
|
||||
gitmodules_is_unmerged)
|
||||
continue;
|
||||
if (config_fetch_recurse_submodules == RECURSE_SUBMODULES_ON_DEMAND) {
|
||||
if (spf->default_option == RECURSE_SUBMODULES_ON_DEMAND) {
|
||||
if (!unsorted_string_list_lookup(&changed_submodule_paths, ce->name))
|
||||
continue;
|
||||
default_argv = "on-demand";
|
||||
@ -1275,6 +1266,7 @@ static int fetch_finish(int retvalue, struct strbuf *err,
|
||||
|
||||
int fetch_populated_submodules(const struct argv_array *options,
|
||||
const char *prefix, int command_line_option,
|
||||
int default_option,
|
||||
int quiet, int max_parallel_jobs)
|
||||
{
|
||||
int i;
|
||||
@ -1282,6 +1274,7 @@ int fetch_populated_submodules(const struct argv_array *options,
|
||||
|
||||
spf.work_tree = get_git_work_tree();
|
||||
spf.command_line_option = command_line_option;
|
||||
spf.default_option = default_option;
|
||||
spf.quiet = quiet;
|
||||
spf.prefix = prefix;
|
||||
|
||||
|
@ -76,7 +76,6 @@ extern void show_submodule_inline_diff(FILE *f, const char *path,
|
||||
unsigned dirty_submodule, const char *meta,
|
||||
const char *del, const char *add, const char *reset,
|
||||
const struct diff_options *opt);
|
||||
extern void set_config_fetch_recurse_submodules(int value);
|
||||
/* Check if we want to update any submodule.*/
|
||||
extern int should_update_submodules(void);
|
||||
/*
|
||||
@ -87,6 +86,7 @@ extern const struct submodule *submodule_from_ce(const struct cache_entry *ce);
|
||||
extern void check_for_new_submodule_commits(struct object_id *oid);
|
||||
extern int fetch_populated_submodules(const struct argv_array *options,
|
||||
const char *prefix, int command_line_option,
|
||||
int default_option,
|
||||
int quiet, int max_parallel_jobs);
|
||||
extern unsigned is_submodule_modified(const char *path, int ignore_untracked);
|
||||
extern int submodule_uses_gitfile(const char *path);
|
||||
|
Loading…
Reference in New Issue
Block a user