]> git.ipfire.org Git - thirdparty/git.git/commitdiff
environment: remove the global variable 'merge_log_config'
authorAyush Chandekar <ayu.chandekar@gmail.com>
Sun, 10 Aug 2025 23:45:45 +0000 (05:15 +0530)
committerJunio C Hamano <gitster@pobox.com>
Mon, 11 Aug 2025 16:16:55 +0000 (09:16 -0700)
The global variable 'merge_log_config', set via the "merge.log" or
"merge.summary" settings, is only used in 'cmd_fmt_merge_msg()' and
'cmd_merge()' to adjust the 'shortlog_len' variable.

Remove 'merge_log_config' globally and localize it in
'cmd_fmt_merge_msg()' and 'cmd_merge()'. Set its value by passing it in
'fmt_merge_msg_config()' by passing its pointer to the function via the
callback parameter.

This change is part of an ongoing effort to eliminate global variables,
improve modularity and help libify the codebase.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
Signed-off-by: Ayush Chandekar <ayu.chandekar@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fmt-merge-msg.c
builtin/merge.c
environment.c
fmt-merge-msg.c
fmt-merge-msg.h

index 3b6aac2cf7faab219ff171a5f5ae375349bfc1f7..4b24de32fb499afccdd7d72a8f15a890d51dfa29 100644 (file)
@@ -19,6 +19,7 @@ int cmd_fmt_merge_msg(int argc,
        const char *message = NULL;
        char *into_name = NULL;
        int shortlog_len = -1;
+       int merge_log_config = -1;
        struct option options[] = {
                {
                        .type = OPTION_INTEGER,
@@ -53,7 +54,7 @@ int cmd_fmt_merge_msg(int argc,
        int ret;
        struct fmt_merge_msg_opts opts;
 
-       git_config(fmt_merge_msg_config, NULL);
+       git_config(fmt_merge_msg_config, &merge_log_config);
        argc = parse_options(argc, argv, prefix, options, fmt_merge_msg_usage,
                             0);
        if (argc > 0)
index ce90e52fe451d673dbcd3d6e67b8c08d2c1f6758..1c921b12f5b7ded9a4c5911cb3b3ba879f3e3b1c 100644 (file)
@@ -1316,6 +1316,7 @@ int cmd_merge(int argc,
        struct commit_list *remoteheads = NULL, *p;
        void *branch_to_free;
        int orig_argc = argc;
+       int merge_log_config = -1;
 
        show_usage_with_options_if_asked(argc, argv,
                                         builtin_merge_usage, builtin_merge_options);
@@ -1334,7 +1335,7 @@ int cmd_merge(int argc,
                skip_prefix(branch, "refs/heads/", &branch);
 
        init_diff_ui_defaults();
-       git_config(git_merge_config, NULL);
+       git_config(git_merge_config, &merge_log_config);
 
        if (!branch || is_null_oid(&head_oid))
                head_commit = NULL;
index c61d773e7e8ff0dc1bc9b312dee0ca1f153e110d..2babf53aa3f0ad928cb20c4214c5947bced3e3a1 100644 (file)
@@ -67,7 +67,6 @@ int grafts_keep_true_parents;
 int core_apply_sparse_checkout;
 int core_sparse_checkout_cone;
 int sparse_expect_files_outside_of_patterns;
-int merge_log_config = -1;
 int precomposed_unicode = -1; /* see probe_utf8_pathname_composition() */
 unsigned long pack_size_limit_cfg;
 int max_allowed_tree_depth =
index 501b5acdd44c22c822597e6928a9db1f87d2d727..6bd395bb65d48f053c52580ab19e7fcd06ed0bbf 100644 (file)
@@ -26,13 +26,15 @@ static struct string_list suppress_dest_patterns = STRING_LIST_INIT_DUP;
 int fmt_merge_msg_config(const char *key, const char *value,
                         const struct config_context *ctx, void *cb)
 {
+       int *merge_log_config = cb;
+
        if (!strcmp(key, "merge.log") || !strcmp(key, "merge.summary")) {
                int is_bool;
-               merge_log_config = git_config_bool_or_int(key, value, ctx->kvi, &is_bool);
-               if (!is_bool && merge_log_config < 0)
+               *merge_log_config = git_config_bool_or_int(key, value, ctx->kvi, &is_bool);
+               if (!is_bool && *merge_log_config < 0)
                        return error("%s: negative length %s", key, value);
-               if (is_bool && merge_log_config)
-                       merge_log_config = DEFAULT_MERGE_LOG_LEN;
+               if (is_bool && *merge_log_config)
+                       *merge_log_config = DEFAULT_MERGE_LOG_LEN;
        } else if (!strcmp(key, "merge.branchdesc")) {
                use_branch_desc = git_config_bool(key, value);
        } else if (!strcmp(key, "merge.suppressdest")) {
index 73ca3e44652204867457092954d6f9d9ff04ad95..c066d837610fa5c95a9af725de7da5f4e0681648 100644 (file)
@@ -12,7 +12,6 @@ struct fmt_merge_msg_opts {
        const char *into_name;
 };
 
-extern int merge_log_config;
 int fmt_merge_msg_config(const char *key, const char *value,
                         const struct config_context *ctx, void *cb);
 int fmt_merge_msg(struct strbuf *in, struct strbuf *out,