{
free((void *) entry->config->path);
free((void *) entry->config->name);
+ free((void *) entry->config->branch);
free((void *) entry->config->update_strategy.command);
free(entry->config);
}
submodule->update_strategy.command = NULL;
submodule->fetch_recurse = RECURSE_SUBMODULES_NONE;
submodule->ignore = NULL;
+ submodule->branch = NULL;
+ submodule->recommend_shallow = -1;
hashcpy(submodule->gitmodules_sha1, gitmodules_sha1);
else if (parse_submodule_update_strategy(value,
&submodule->update_strategy) < 0)
die(_("invalid value for %s"), var);
+ } else if (!strcmp(item.buf, "shallow")) {
+ if (!me->overwrite && submodule->recommend_shallow != -1)
+ warn_multiple_config(me->commit_sha1, submodule->name,
+ "shallow");
+ else
+ submodule->recommend_shallow =
+ git_config_bool(var, value);
+ } else if (!strcmp(item.buf, "branch")) {
+ if (!me->overwrite && submodule->branch)
+ warn_multiple_config(me->commit_sha1, submodule->name,
+ "branch");
+ else {
+ free((void *)submodule->branch);
+ submodule->branch = xstrdup(value);
+ }
}
strbuf_release(&name);
int ret = 0;
if (is_null_sha1(commit_sha1)) {
- hashcpy(gitmodules_sha1, null_sha1);
+ hashclr(gitmodules_sha1);
return 1;
}
parameter.commit_sha1 = commit_sha1;
parameter.gitmodules_sha1 = sha1;
parameter.overwrite = 0;
- git_config_from_mem(parse_config, "submodule-blob", rev.buf,
+ git_config_from_mem(parse_config, CONFIG_ORIGIN_SUBMODULE_BLOB, rev.buf,
config, config_size, ¶meter);
strbuf_release(&rev);
free(config);