pull: move options[] array into function scope
Unless there are good reasons, it is customary to have the options[] array used with the parse-options API declared in function scope rather than at file scope. Move builtin/pull.c:cmd_pull()’s options[] array into the function to match that convention. Signed-off-by: K Jayatheerth <jayatheerthkulkarni2005@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
K Jayatheerth committed
Dec 12, 2025 at 13:14 UTC
bab391761d1c7cff59d1c29ee546efc3e588473d
1 file changed
+141
-142
builtin/pull.c
+141
-142
@@ -119,148 +119,6 @@ static int opt_show_forced_updates = -1;
119
static const char *set_upstream;
120
static struct strvec opt_fetch = STRVEC_INIT;
121
122
-static struct option pull_options[] = {
123
- /* Shared options */
124
- OPT__VERBOSITY(&opt_verbosity),
125
- OPT_PASSTHRU(0, "progress", &opt_progress, NULL,
126
- N_("force progress reporting"),
127
- PARSE_OPT_NOARG),
128
- OPT_CALLBACK_F(0, "recurse-submodules",
129
- &recurse_submodules_cli, N_("on-demand"),
130
- N_("control for recursive fetching of submodules"),
131
- PARSE_OPT_OPTARG, option_fetch_parse_recurse_submodules),
132
-
133
- /* Options passed to git-merge or git-rebase */
134
- OPT_GROUP(N_("Options related to merging")),
135
- OPT_CALLBACK_F('r', "rebase", &opt_rebase,
136
- "(false|true|merges|interactive)",
137
- N_("incorporate changes by rebasing rather than merging"),
138
- PARSE_OPT_OPTARG, parse_opt_rebase),
139
- OPT_PASSTHRU('n', NULL, &opt_diffstat, NULL,
140
- N_("do not show a diffstat at the end of the merge"),
141
- PARSE_OPT_NOARG | PARSE_OPT_NONEG),
142
- OPT_PASSTHRU(0, "stat", &opt_diffstat, NULL,
143
- N_("show a diffstat at the end of the merge"),
144
- PARSE_OPT_NOARG),
145
- OPT_PASSTHRU(0, "summary", &opt_diffstat, NULL,
146
- N_("(synonym to --stat)"),
147
- PARSE_OPT_NOARG | PARSE_OPT_HIDDEN),
148
- OPT_PASSTHRU(0, "compact-summary", &opt_diffstat, NULL,
149
- N_("show a compact-summary at the end of the merge"),
150
- PARSE_OPT_NOARG),
151
- OPT_PASSTHRU(0, "log", &opt_log, N_("n"),
152
- N_("add (at most <n>) entries from shortlog to merge commit message"),
153
- PARSE_OPT_OPTARG),
154
- OPT_PASSTHRU(0, "signoff", &opt_signoff, NULL,
155
- N_("add a Signed-off-by trailer"),
156
- PARSE_OPT_OPTARG),
157
- OPT_PASSTHRU(0, "squash", &opt_squash, NULL,
158
- N_("create a single commit instead of doing a merge"),
159
- PARSE_OPT_NOARG),
160
- OPT_PASSTHRU(0, "commit", &opt_commit, NULL,
161
- N_("perform a commit if the merge succeeds (default)"),
162
- PARSE_OPT_NOARG),
163
- OPT_PASSTHRU(0, "edit", &opt_edit, NULL,
164
- N_("edit message before committing"),
165
- PARSE_OPT_NOARG),
166
- OPT_CLEANUP(&cleanup_arg),
167
- OPT_PASSTHRU(0, "ff", &opt_ff, NULL,
168
- N_("allow fast-forward"),
169
- PARSE_OPT_NOARG),
170
- OPT_PASSTHRU(0, "ff-only", &opt_ff, NULL,
171
- N_("abort if fast-forward is not possible"),
172
- PARSE_OPT_NOARG | PARSE_OPT_NONEG),
173
- OPT_PASSTHRU(0, "verify", &opt_verify, NULL,
174
- N_("control use of pre-merge-commit and commit-msg hooks"),
175
- PARSE_OPT_NOARG),
176
- OPT_PASSTHRU(0, "verify-signatures", &opt_verify_signatures, NULL,
177
- N_("verify that the named commit has a valid GPG signature"),
178
- PARSE_OPT_NOARG),
179
- OPT_BOOL(0, "autostash", &opt_autostash,
180
- N_("automatically stash/stash pop before and after")),
181
- OPT_PASSTHRU_ARGV('s', "strategy", &opt_strategies, N_("strategy"),
182
- N_("merge strategy to use"),
183
- 0),
184
- OPT_PASSTHRU_ARGV('X', "strategy-option", &opt_strategy_opts,
185
- N_("option=value"),
186
- N_("option for selected merge strategy"),
187
- 0),
188
- OPT_PASSTHRU('S', "gpg-sign", &opt_gpg_sign, N_("key-id"),
189
- N_("GPG sign commit"),
190
- PARSE_OPT_OPTARG),
191
- OPT_SET_INT(0, "allow-unrelated-histories",
192
- &opt_allow_unrelated_histories,
193
- N_("allow merging unrelated histories"), 1),
194
-
195
- /* Options passed to git-fetch */
196
- OPT_GROUP(N_("Options related to fetching")),
197
- OPT_PASSTHRU(0, "all", &opt_all, NULL,
198
- N_("fetch from all remotes"),
199
- PARSE_OPT_NOARG),
200
- OPT_PASSTHRU('a', "append", &opt_append, NULL,
201
- N_("append to .git/FETCH_HEAD instead of overwriting"),
202
- PARSE_OPT_NOARG),
203
- OPT_PASSTHRU(0, "upload-pack", &opt_upload_pack, N_("path"),
204
- N_("path to upload pack on remote end"),
205
- 0),
206
- OPT__FORCE(&opt_force, N_("force overwrite of local branch"), 0),
207
- OPT_PASSTHRU('t', "tags", &opt_tags, NULL,
208
- N_("fetch all tags and associated objects"),
209
- PARSE_OPT_NOARG),
210
- OPT_PASSTHRU('p', "prune", &opt_prune, NULL,
211
- N_("prune remote-tracking branches no longer on remote"),
212
- PARSE_OPT_NOARG),
213
- OPT_PASSTHRU('j', "jobs", &max_children, N_("n"),
214
- N_("number of submodules pulled in parallel"),
215
- PARSE_OPT_OPTARG),
216
- OPT_BOOL(0, "dry-run", &opt_dry_run,
217
- N_("dry run")),
218
- OPT_PASSTHRU('k', "keep", &opt_keep, NULL,
219
- N_("keep downloaded pack"),
220
- PARSE_OPT_NOARG),
221
- OPT_PASSTHRU(0, "depth", &opt_depth, N_("depth"),
222
- N_("deepen history of shallow clone"),
223
- 0),
224
- OPT_PASSTHRU_ARGV(0, "shallow-since", &opt_fetch, N_("time"),
225
- N_("deepen history of shallow repository based on time"),
226
- 0),
227
- OPT_PASSTHRU_ARGV(0, "shallow-exclude", &opt_fetch, N_("ref"),
228
- N_("deepen history of shallow clone, excluding ref"),
229
- 0),
230
- OPT_PASSTHRU_ARGV(0, "deepen", &opt_fetch, N_("n"),
231
- N_("deepen history of shallow clone"),
232
- 0),
233
- OPT_PASSTHRU(0, "unshallow", &opt_unshallow, NULL,
234
- N_("convert to a complete repository"),
235
- PARSE_OPT_NONEG | PARSE_OPT_NOARG),
236
- OPT_PASSTHRU(0, "update-shallow", &opt_update_shallow, NULL,
237
- N_("accept refs that update .git/shallow"),
238
- PARSE_OPT_NOARG),
239
- OPT_PASSTHRU(0, "refmap", &opt_refmap, N_("refmap"),
240
- N_("specify fetch refmap"),
241
- PARSE_OPT_NONEG),
242
- OPT_PASSTHRU_ARGV('o', "server-option", &opt_fetch,
243
- N_("server-specific"),
244
- N_("option to transmit"),
245
- 0),
246
- OPT_PASSTHRU('4', "ipv4", &opt_ipv4, NULL,
247
- N_("use IPv4 addresses only"),
248
- PARSE_OPT_NOARG),
249
- OPT_PASSTHRU('6', "ipv6", &opt_ipv6, NULL,
250
- N_("use IPv6 addresses only"),
251
- PARSE_OPT_NOARG),
252
- OPT_PASSTHRU_ARGV(0, "negotiation-tip", &opt_fetch, N_("revision"),
253
- N_("report that we have only objects reachable from this object"),
254
- 0),
255
- OPT_BOOL(0, "show-forced-updates", &opt_show_forced_updates,
256
- N_("check for forced-updates on all updated branches")),
257
- OPT_PASSTHRU(0, "set-upstream", &set_upstream, NULL,
258
- N_("set upstream for git pull/fetch"),
259
- PARSE_OPT_NOARG),
260
-
261
- OPT_END()
262
-};
263
-
122
/**
123
* Pushes "-q" or "-v" switches into arr to match the opt_verbosity level.
124
*/
@@ -1008,6 +866,147 @@ int cmd_pull(int argc,
866
int can_ff;
867
int divergent;
868
int ret;
869
+ static struct option pull_options[] = {
870
+ /* Shared options */
871
+ OPT__VERBOSITY(&opt_verbosity),
872
+ OPT_PASSTHRU(0, "progress", &opt_progress, NULL,
873
+ N_("force progress reporting"),
874
+ PARSE_OPT_NOARG),
875
+ OPT_CALLBACK_F(0, "recurse-submodules",
876
+ &recurse_submodules_cli, N_("on-demand"),
877
+ N_("control for recursive fetching of submodules"),
878
+ PARSE_OPT_OPTARG, option_fetch_parse_recurse_submodules),
879
+
880
+ /* Options passed to git-merge or git-rebase */
881
+ OPT_GROUP(N_("Options related to merging")),
882
+ OPT_CALLBACK_F('r', "rebase", &opt_rebase,
883
+ "(false|true|merges|interactive)",
884
+ N_("incorporate changes by rebasing rather than merging"),
885
+ PARSE_OPT_OPTARG, parse_opt_rebase),
886
+ OPT_PASSTHRU('n', NULL, &opt_diffstat, NULL,
887
+ N_("do not show a diffstat at the end of the merge"),
888
+ PARSE_OPT_NOARG | PARSE_OPT_NONEG),
889
+ OPT_PASSTHRU(0, "stat", &opt_diffstat, NULL,
890
+ N_("show a diffstat at the end of the merge"),
891
+ PARSE_OPT_NOARG),
892
+ OPT_PASSTHRU(0, "summary", &opt_diffstat, NULL,
893
+ N_("(synonym to --stat)"),
894
+ PARSE_OPT_NOARG | PARSE_OPT_HIDDEN),
895
+ OPT_PASSTHRU(0, "compact-summary", &opt_diffstat, NULL,
896
+ N_("show a compact-summary at the end of the merge"),
897
+ PARSE_OPT_NOARG),
898
+ OPT_PASSTHRU(0, "log", &opt_log, N_("n"),
899
+ N_("add (at most <n>) entries from shortlog to merge commit message"),
900
+ PARSE_OPT_OPTARG),
901
+ OPT_PASSTHRU(0, "signoff", &opt_signoff, NULL,
902
+ N_("add a Signed-off-by trailer"),
903
+ PARSE_OPT_OPTARG),
904
+ OPT_PASSTHRU(0, "squash", &opt_squash, NULL,
905
+ N_("create a single commit instead of doing a merge"),
906
+ PARSE_OPT_NOARG),
907
+ OPT_PASSTHRU(0, "commit", &opt_commit, NULL,
908
+ N_("perform a commit if the merge succeeds (default)"),
909
+ PARSE_OPT_NOARG),
910
+ OPT_PASSTHRU(0, "edit", &opt_edit, NULL,
911
+ N_("edit message before committing"),
912
+ PARSE_OPT_NOARG),
913
+ OPT_CLEANUP(&cleanup_arg),
914
+ OPT_PASSTHRU(0, "ff", &opt_ff, NULL,
915
+ N_("allow fast-forward"),
916
+ PARSE_OPT_NOARG),
917
+ OPT_PASSTHRU(0, "ff-only", &opt_ff, NULL,
918
+ N_("abort if fast-forward is not possible"),
919
+ PARSE_OPT_NOARG | PARSE_OPT_NONEG),
920
+ OPT_PASSTHRU(0, "verify", &opt_verify, NULL,
921
+ N_("control use of pre-merge-commit and commit-msg hooks"),
922
+ PARSE_OPT_NOARG),
923
+ OPT_PASSTHRU(0, "verify-signatures", &opt_verify_signatures, NULL,
924
+ N_("verify that the named commit has a valid GPG signature"),
925
+ PARSE_OPT_NOARG),
926
+ OPT_BOOL(0, "autostash", &opt_autostash,
927
+ N_("automatically stash/stash pop before and after")),
928
+ OPT_PASSTHRU_ARGV('s', "strategy", &opt_strategies, N_("strategy"),
929
+ N_("merge strategy to use"),
930
+ 0),
931
+ OPT_PASSTHRU_ARGV('X', "strategy-option", &opt_strategy_opts,
932
+ N_("option=value"),
933
+ N_("option for selected merge strategy"),
934
+ 0),
935
+ OPT_PASSTHRU('S', "gpg-sign", &opt_gpg_sign, N_("key-id"),
936
+ N_("GPG sign commit"),
937
+ PARSE_OPT_OPTARG),
938
+ OPT_SET_INT(0, "allow-unrelated-histories",
939
+ &opt_allow_unrelated_histories,
940
+ N_("allow merging unrelated histories"), 1),
941
+
942
+ /* Options passed to git-fetch */
943
+ OPT_GROUP(N_("Options related to fetching")),
944
+ OPT_PASSTHRU(0, "all", &opt_all, NULL,
945
+ N_("fetch from all remotes"),
946
+ PARSE_OPT_NOARG),
947
+ OPT_PASSTHRU('a', "append", &opt_append, NULL,
948
+ N_("append to .git/FETCH_HEAD instead of overwriting"),
949
+ PARSE_OPT_NOARG),
950
+ OPT_PASSTHRU(0, "upload-pack", &opt_upload_pack, N_("path"),
951
+ N_("path to upload pack on remote end"),
952
+ 0),
953
+ OPT__FORCE(&opt_force, N_("force overwrite of local branch"), 0),
954
+ OPT_PASSTHRU('t', "tags", &opt_tags, NULL,
955
+ N_("fetch all tags and associated objects"),
956
+ PARSE_OPT_NOARG),
957
+ OPT_PASSTHRU('p', "prune", &opt_prune, NULL,
958
+ N_("prune remote-tracking branches no longer on remote"),
959
+ PARSE_OPT_NOARG),
960
+ OPT_PASSTHRU('j', "jobs", &max_children, N_("n"),
961
+ N_("number of submodules pulled in parallel"),
962
+ PARSE_OPT_OPTARG),
963
+ OPT_BOOL(0, "dry-run", &opt_dry_run,
964
+ N_("dry run")),
965
+ OPT_PASSTHRU('k', "keep", &opt_keep, NULL,
966
+ N_("keep downloaded pack"),
967
+ PARSE_OPT_NOARG),
968
+ OPT_PASSTHRU(0, "depth", &opt_depth, N_("depth"),
969
+ N_("deepen history of shallow clone"),
970
+ 0),
971
+ OPT_PASSTHRU_ARGV(0, "shallow-since", &opt_fetch, N_("time"),
972
+ N_("deepen history of shallow repository based on time"),
973
+ 0),
974
+ OPT_PASSTHRU_ARGV(0, "shallow-exclude", &opt_fetch, N_("ref"),
975
+ N_("deepen history of shallow clone, excluding ref"),
976
+ 0),
977
+ OPT_PASSTHRU_ARGV(0, "deepen", &opt_fetch, N_("n"),
978
+ N_("deepen history of shallow clone"),
979
+ 0),
980
+ OPT_PASSTHRU(0, "unshallow", &opt_unshallow, NULL,
981
+ N_("convert to a complete repository"),
982
+ PARSE_OPT_NONEG | PARSE_OPT_NOARG),
983
+ OPT_PASSTHRU(0, "update-shallow", &opt_update_shallow, NULL,
984
+ N_("accept refs that update .git/shallow"),
985
+ PARSE_OPT_NOARG),
986
+ OPT_PASSTHRU(0, "refmap", &opt_refmap, N_("refmap"),
987
+ N_("specify fetch refmap"),
988
+ PARSE_OPT_NONEG),
989
+ OPT_PASSTHRU_ARGV('o', "server-option", &opt_fetch,
990
+ N_("server-specific"),
991
+ N_("option to transmit"),
992
+ 0),
993
+ OPT_PASSTHRU('4', "ipv4", &opt_ipv4, NULL,
994
+ N_("use IPv4 addresses only"),
995
+ PARSE_OPT_NOARG),
996
+ OPT_PASSTHRU('6', "ipv6", &opt_ipv6, NULL,
997
+ N_("use IPv6 addresses only"),
998
+ PARSE_OPT_NOARG),
999
+ OPT_PASSTHRU_ARGV(0, "negotiation-tip", &opt_fetch, N_("revision"),
1000
+ N_("report that we have only objects reachable from this object"),
1001
+ 0),
1002
+ OPT_BOOL(0, "show-forced-updates", &opt_show_forced_updates,
1003
+ N_("check for forced-updates on all updated branches")),
1004
+ OPT_PASSTHRU(0, "set-upstream", &set_upstream, NULL,
1005
+ N_("set upstream for git pull/fetch"),
1006
+ PARSE_OPT_NOARG),
1007
+
1008
+ OPT_END()
1009
+ };
1010
1011
if (!getenv("GIT_REFLOG_ACTION"))
1012
set_reflog_message(argc, argv);