submodule-config: keep update strategy around
Currently submodule.<name>.update is only handled by git-submodule.sh. C code will start to need to make use of that value as more of the functionality of git-submodule.sh moves into library code in C. Add the update field to 'struct submodule' and populate it so it can be read as sm->update or from sm->update_command. Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
2a73b3dad0
commit
ea2fa5a338
@ -59,6 +59,7 @@ static void free_one_config(struct submodule_entry *entry)
|
||||
{
|
||||
free((void *) entry->config->path);
|
||||
free((void *) entry->config->name);
|
||||
free((void *) entry->config->update_strategy.command);
|
||||
free(entry->config);
|
||||
}
|
||||
|
||||
@ -194,6 +195,8 @@ static struct submodule *lookup_or_create_by_name(struct submodule_cache *cache,
|
||||
|
||||
submodule->path = NULL;
|
||||
submodule->url = NULL;
|
||||
submodule->update_strategy.type = SM_UPDATE_UNSPECIFIED;
|
||||
submodule->update_strategy.command = NULL;
|
||||
submodule->fetch_recurse = RECURSE_SUBMODULES_NONE;
|
||||
submodule->ignore = NULL;
|
||||
|
||||
@ -311,6 +314,16 @@ static int parse_config(const char *var, const char *value, void *data)
|
||||
free((void *) submodule->url);
|
||||
submodule->url = xstrdup(value);
|
||||
}
|
||||
} else if (!strcmp(item.buf, "update")) {
|
||||
if (!value)
|
||||
ret = config_error_nonbool(var);
|
||||
else if (!me->overwrite &&
|
||||
submodule->update_strategy.type != SM_UPDATE_UNSPECIFIED)
|
||||
warn_multiple_config(me->commit_sha1, submodule->name,
|
||||
"update");
|
||||
else if (parse_submodule_update_strategy(value,
|
||||
&submodule->update_strategy) < 0)
|
||||
die(_("invalid value for %s"), var);
|
||||
}
|
||||
|
||||
strbuf_release(&name);
|
||||
|
Reference in New Issue
Block a user