mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Merge branch 'kj/pull-options-decl-cleanup' into jch
* kj/pull-options-decl-cleanup: pull: move options[] array into function scope
This commit is contained in:
283
builtin/pull.c
283
builtin/pull.c
@@ -119,148 +119,6 @@ static int opt_show_forced_updates = -1;
|
||||
static const char *set_upstream;
|
||||
static struct strvec opt_fetch = STRVEC_INIT;
|
||||
|
||||
static struct option pull_options[] = {
|
||||
/* Shared options */
|
||||
OPT__VERBOSITY(&opt_verbosity),
|
||||
OPT_PASSTHRU(0, "progress", &opt_progress, NULL,
|
||||
N_("force progress reporting"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_CALLBACK_F(0, "recurse-submodules",
|
||||
&recurse_submodules_cli, N_("on-demand"),
|
||||
N_("control for recursive fetching of submodules"),
|
||||
PARSE_OPT_OPTARG, option_fetch_parse_recurse_submodules),
|
||||
|
||||
/* Options passed to git-merge or git-rebase */
|
||||
OPT_GROUP(N_("Options related to merging")),
|
||||
OPT_CALLBACK_F('r', "rebase", &opt_rebase,
|
||||
"(false|true|merges|interactive)",
|
||||
N_("incorporate changes by rebasing rather than merging"),
|
||||
PARSE_OPT_OPTARG, parse_opt_rebase),
|
||||
OPT_PASSTHRU('n', NULL, &opt_diffstat, NULL,
|
||||
N_("do not show a diffstat at the end of the merge"),
|
||||
PARSE_OPT_NOARG | PARSE_OPT_NONEG),
|
||||
OPT_PASSTHRU(0, "stat", &opt_diffstat, NULL,
|
||||
N_("show a diffstat at the end of the merge"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "summary", &opt_diffstat, NULL,
|
||||
N_("(synonym to --stat)"),
|
||||
PARSE_OPT_NOARG | PARSE_OPT_HIDDEN),
|
||||
OPT_PASSTHRU(0, "compact-summary", &opt_diffstat, NULL,
|
||||
N_("show a compact-summary at the end of the merge"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "log", &opt_log, N_("n"),
|
||||
N_("add (at most <n>) entries from shortlog to merge commit message"),
|
||||
PARSE_OPT_OPTARG),
|
||||
OPT_PASSTHRU(0, "signoff", &opt_signoff, NULL,
|
||||
N_("add a Signed-off-by trailer"),
|
||||
PARSE_OPT_OPTARG),
|
||||
OPT_PASSTHRU(0, "squash", &opt_squash, NULL,
|
||||
N_("create a single commit instead of doing a merge"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "commit", &opt_commit, NULL,
|
||||
N_("perform a commit if the merge succeeds (default)"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "edit", &opt_edit, NULL,
|
||||
N_("edit message before committing"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_CLEANUP(&cleanup_arg),
|
||||
OPT_PASSTHRU(0, "ff", &opt_ff, NULL,
|
||||
N_("allow fast-forward"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "ff-only", &opt_ff, NULL,
|
||||
N_("abort if fast-forward is not possible"),
|
||||
PARSE_OPT_NOARG | PARSE_OPT_NONEG),
|
||||
OPT_PASSTHRU(0, "verify", &opt_verify, NULL,
|
||||
N_("control use of pre-merge-commit and commit-msg hooks"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "verify-signatures", &opt_verify_signatures, NULL,
|
||||
N_("verify that the named commit has a valid GPG signature"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_BOOL(0, "autostash", &opt_autostash,
|
||||
N_("automatically stash/stash pop before and after")),
|
||||
OPT_PASSTHRU_ARGV('s', "strategy", &opt_strategies, N_("strategy"),
|
||||
N_("merge strategy to use"),
|
||||
0),
|
||||
OPT_PASSTHRU_ARGV('X', "strategy-option", &opt_strategy_opts,
|
||||
N_("option=value"),
|
||||
N_("option for selected merge strategy"),
|
||||
0),
|
||||
OPT_PASSTHRU('S', "gpg-sign", &opt_gpg_sign, N_("key-id"),
|
||||
N_("GPG sign commit"),
|
||||
PARSE_OPT_OPTARG),
|
||||
OPT_SET_INT(0, "allow-unrelated-histories",
|
||||
&opt_allow_unrelated_histories,
|
||||
N_("allow merging unrelated histories"), 1),
|
||||
|
||||
/* Options passed to git-fetch */
|
||||
OPT_GROUP(N_("Options related to fetching")),
|
||||
OPT_PASSTHRU(0, "all", &opt_all, NULL,
|
||||
N_("fetch from all remotes"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU('a', "append", &opt_append, NULL,
|
||||
N_("append to .git/FETCH_HEAD instead of overwriting"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "upload-pack", &opt_upload_pack, N_("path"),
|
||||
N_("path to upload pack on remote end"),
|
||||
0),
|
||||
OPT__FORCE(&opt_force, N_("force overwrite of local branch"), 0),
|
||||
OPT_PASSTHRU('t', "tags", &opt_tags, NULL,
|
||||
N_("fetch all tags and associated objects"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU('p', "prune", &opt_prune, NULL,
|
||||
N_("prune remote-tracking branches no longer on remote"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU('j', "jobs", &max_children, N_("n"),
|
||||
N_("number of submodules pulled in parallel"),
|
||||
PARSE_OPT_OPTARG),
|
||||
OPT_BOOL(0, "dry-run", &opt_dry_run,
|
||||
N_("dry run")),
|
||||
OPT_PASSTHRU('k', "keep", &opt_keep, NULL,
|
||||
N_("keep downloaded pack"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "depth", &opt_depth, N_("depth"),
|
||||
N_("deepen history of shallow clone"),
|
||||
0),
|
||||
OPT_PASSTHRU_ARGV(0, "shallow-since", &opt_fetch, N_("time"),
|
||||
N_("deepen history of shallow repository based on time"),
|
||||
0),
|
||||
OPT_PASSTHRU_ARGV(0, "shallow-exclude", &opt_fetch, N_("ref"),
|
||||
N_("deepen history of shallow clone, excluding ref"),
|
||||
0),
|
||||
OPT_PASSTHRU_ARGV(0, "deepen", &opt_fetch, N_("n"),
|
||||
N_("deepen history of shallow clone"),
|
||||
0),
|
||||
OPT_PASSTHRU(0, "unshallow", &opt_unshallow, NULL,
|
||||
N_("convert to a complete repository"),
|
||||
PARSE_OPT_NONEG | PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "update-shallow", &opt_update_shallow, NULL,
|
||||
N_("accept refs that update .git/shallow"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "refmap", &opt_refmap, N_("refmap"),
|
||||
N_("specify fetch refmap"),
|
||||
PARSE_OPT_NONEG),
|
||||
OPT_PASSTHRU_ARGV('o', "server-option", &opt_fetch,
|
||||
N_("server-specific"),
|
||||
N_("option to transmit"),
|
||||
0),
|
||||
OPT_PASSTHRU('4', "ipv4", &opt_ipv4, NULL,
|
||||
N_("use IPv4 addresses only"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU('6', "ipv6", &opt_ipv6, NULL,
|
||||
N_("use IPv6 addresses only"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU_ARGV(0, "negotiation-tip", &opt_fetch, N_("revision"),
|
||||
N_("report that we have only objects reachable from this object"),
|
||||
0),
|
||||
OPT_BOOL(0, "show-forced-updates", &opt_show_forced_updates,
|
||||
N_("check for forced-updates on all updated branches")),
|
||||
OPT_PASSTHRU(0, "set-upstream", &set_upstream, NULL,
|
||||
N_("set upstream for git pull/fetch"),
|
||||
PARSE_OPT_NOARG),
|
||||
|
||||
OPT_END()
|
||||
};
|
||||
|
||||
/**
|
||||
* Pushes "-q" or "-v" switches into arr to match the opt_verbosity level.
|
||||
*/
|
||||
@@ -1008,6 +866,147 @@ int cmd_pull(int argc,
|
||||
int can_ff;
|
||||
int divergent;
|
||||
int ret;
|
||||
static struct option pull_options[] = {
|
||||
/* Shared options */
|
||||
OPT__VERBOSITY(&opt_verbosity),
|
||||
OPT_PASSTHRU(0, "progress", &opt_progress, NULL,
|
||||
N_("force progress reporting"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_CALLBACK_F(0, "recurse-submodules",
|
||||
&recurse_submodules_cli, N_("on-demand"),
|
||||
N_("control for recursive fetching of submodules"),
|
||||
PARSE_OPT_OPTARG, option_fetch_parse_recurse_submodules),
|
||||
|
||||
/* Options passed to git-merge or git-rebase */
|
||||
OPT_GROUP(N_("Options related to merging")),
|
||||
OPT_CALLBACK_F('r', "rebase", &opt_rebase,
|
||||
"(false|true|merges|interactive)",
|
||||
N_("incorporate changes by rebasing rather than merging"),
|
||||
PARSE_OPT_OPTARG, parse_opt_rebase),
|
||||
OPT_PASSTHRU('n', NULL, &opt_diffstat, NULL,
|
||||
N_("do not show a diffstat at the end of the merge"),
|
||||
PARSE_OPT_NOARG | PARSE_OPT_NONEG),
|
||||
OPT_PASSTHRU(0, "stat", &opt_diffstat, NULL,
|
||||
N_("show a diffstat at the end of the merge"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "summary", &opt_diffstat, NULL,
|
||||
N_("(synonym to --stat)"),
|
||||
PARSE_OPT_NOARG | PARSE_OPT_HIDDEN),
|
||||
OPT_PASSTHRU(0, "compact-summary", &opt_diffstat, NULL,
|
||||
N_("show a compact-summary at the end of the merge"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "log", &opt_log, N_("n"),
|
||||
N_("add (at most <n>) entries from shortlog to merge commit message"),
|
||||
PARSE_OPT_OPTARG),
|
||||
OPT_PASSTHRU(0, "signoff", &opt_signoff, NULL,
|
||||
N_("add a Signed-off-by trailer"),
|
||||
PARSE_OPT_OPTARG),
|
||||
OPT_PASSTHRU(0, "squash", &opt_squash, NULL,
|
||||
N_("create a single commit instead of doing a merge"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "commit", &opt_commit, NULL,
|
||||
N_("perform a commit if the merge succeeds (default)"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "edit", &opt_edit, NULL,
|
||||
N_("edit message before committing"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_CLEANUP(&cleanup_arg),
|
||||
OPT_PASSTHRU(0, "ff", &opt_ff, NULL,
|
||||
N_("allow fast-forward"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "ff-only", &opt_ff, NULL,
|
||||
N_("abort if fast-forward is not possible"),
|
||||
PARSE_OPT_NOARG | PARSE_OPT_NONEG),
|
||||
OPT_PASSTHRU(0, "verify", &opt_verify, NULL,
|
||||
N_("control use of pre-merge-commit and commit-msg hooks"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "verify-signatures", &opt_verify_signatures, NULL,
|
||||
N_("verify that the named commit has a valid GPG signature"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_BOOL(0, "autostash", &opt_autostash,
|
||||
N_("automatically stash/stash pop before and after")),
|
||||
OPT_PASSTHRU_ARGV('s', "strategy", &opt_strategies, N_("strategy"),
|
||||
N_("merge strategy to use"),
|
||||
0),
|
||||
OPT_PASSTHRU_ARGV('X', "strategy-option", &opt_strategy_opts,
|
||||
N_("option=value"),
|
||||
N_("option for selected merge strategy"),
|
||||
0),
|
||||
OPT_PASSTHRU('S', "gpg-sign", &opt_gpg_sign, N_("key-id"),
|
||||
N_("GPG sign commit"),
|
||||
PARSE_OPT_OPTARG),
|
||||
OPT_SET_INT(0, "allow-unrelated-histories",
|
||||
&opt_allow_unrelated_histories,
|
||||
N_("allow merging unrelated histories"), 1),
|
||||
|
||||
/* Options passed to git-fetch */
|
||||
OPT_GROUP(N_("Options related to fetching")),
|
||||
OPT_PASSTHRU(0, "all", &opt_all, NULL,
|
||||
N_("fetch from all remotes"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU('a', "append", &opt_append, NULL,
|
||||
N_("append to .git/FETCH_HEAD instead of overwriting"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "upload-pack", &opt_upload_pack, N_("path"),
|
||||
N_("path to upload pack on remote end"),
|
||||
0),
|
||||
OPT__FORCE(&opt_force, N_("force overwrite of local branch"), 0),
|
||||
OPT_PASSTHRU('t', "tags", &opt_tags, NULL,
|
||||
N_("fetch all tags and associated objects"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU('p', "prune", &opt_prune, NULL,
|
||||
N_("prune remote-tracking branches no longer on remote"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU('j', "jobs", &max_children, N_("n"),
|
||||
N_("number of submodules pulled in parallel"),
|
||||
PARSE_OPT_OPTARG),
|
||||
OPT_BOOL(0, "dry-run", &opt_dry_run,
|
||||
N_("dry run")),
|
||||
OPT_PASSTHRU('k', "keep", &opt_keep, NULL,
|
||||
N_("keep downloaded pack"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "depth", &opt_depth, N_("depth"),
|
||||
N_("deepen history of shallow clone"),
|
||||
0),
|
||||
OPT_PASSTHRU_ARGV(0, "shallow-since", &opt_fetch, N_("time"),
|
||||
N_("deepen history of shallow repository based on time"),
|
||||
0),
|
||||
OPT_PASSTHRU_ARGV(0, "shallow-exclude", &opt_fetch, N_("ref"),
|
||||
N_("deepen history of shallow clone, excluding ref"),
|
||||
0),
|
||||
OPT_PASSTHRU_ARGV(0, "deepen", &opt_fetch, N_("n"),
|
||||
N_("deepen history of shallow clone"),
|
||||
0),
|
||||
OPT_PASSTHRU(0, "unshallow", &opt_unshallow, NULL,
|
||||
N_("convert to a complete repository"),
|
||||
PARSE_OPT_NONEG | PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "update-shallow", &opt_update_shallow, NULL,
|
||||
N_("accept refs that update .git/shallow"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU(0, "refmap", &opt_refmap, N_("refmap"),
|
||||
N_("specify fetch refmap"),
|
||||
PARSE_OPT_NONEG),
|
||||
OPT_PASSTHRU_ARGV('o', "server-option", &opt_fetch,
|
||||
N_("server-specific"),
|
||||
N_("option to transmit"),
|
||||
0),
|
||||
OPT_PASSTHRU('4', "ipv4", &opt_ipv4, NULL,
|
||||
N_("use IPv4 addresses only"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU('6', "ipv6", &opt_ipv6, NULL,
|
||||
N_("use IPv6 addresses only"),
|
||||
PARSE_OPT_NOARG),
|
||||
OPT_PASSTHRU_ARGV(0, "negotiation-tip", &opt_fetch, N_("revision"),
|
||||
N_("report that we have only objects reachable from this object"),
|
||||
0),
|
||||
OPT_BOOL(0, "show-forced-updates", &opt_show_forced_updates,
|
||||
N_("check for forced-updates on all updated branches")),
|
||||
OPT_PASSTHRU(0, "set-upstream", &set_upstream, NULL,
|
||||
N_("set upstream for git pull/fetch"),
|
||||
PARSE_OPT_NOARG),
|
||||
|
||||
OPT_END()
|
||||
};
|
||||
|
||||
if (!getenv("GIT_REFLOG_ACTION"))
|
||||
set_reflog_message(argc, argv);
|
||||
|
||||
Reference in New Issue
Block a user