@ -2246,6 +2246,37 @@ static int module_config(int argc, const char **argv, const char *prefix)
usage_with_options(git_submodule_helper_usage, module_config_options);
usage_with_options(git_submodule_helper_usage, module_config_options);
}
}
static int module_set_url(int argc, const char **argv, const char *prefix)
{
int quiet = 0;
const char *newurl;
const char *path;
char *config_name;
struct option options[] = {
OPT__QUIET(&quiet, N_("Suppress output for setting url of a submodule")),
OPT_END()
};
const char *const usage[] = {
N_("git submodule--helper set-url [--quiet] <path> <newurl>"),
NULL
};
argc = parse_options(argc, argv, prefix, options, usage, 0);
if (argc != 2 || !(path = argv[0]) || !(newurl = argv[1]))
usage_with_options(usage, options);
config_name = xstrfmt("submodule.%s.url", path);
config_set_in_gitmodules_file_gently(config_name, newurl);
sync_submodule(path, prefix, quiet ? OPT_QUIET : 0);
free(config_name);
return 0;
}
#define SUPPORT_SUPER_PREFIX (1<<0)
#define SUPPORT_SUPER_PREFIX (1<<0)
struct cmd_struct {
struct cmd_struct {
@ -2276,6 +2307,7 @@ static struct cmd_struct commands[] = {
{"is-active", is_active, 0},
{"is-active", is_active, 0},
{"check-name", check_name, 0},
{"check-name", check_name, 0},
{"config", module_config, 0},
{"config", module_config, 0},
{"set-url", module_set_url, 0},
};
};
int cmd_submodule__helper(int argc, const char **argv, const char *prefix)
int cmd_submodule__helper(int argc, const char **argv, const char *prefix)