[GSOC PATCH v2 0/2] builtin/fmt-merge-msg: remove dependency on global variables and 'the_repository'
- From
Ayush Chandekar <ayu.chandekar@gmail.com>
- Date
- Aug 10, 2025, 23:45 UTC
- Message-ID
- <cover.1754868681.git.ayu.chandekar@gmail.com>
- In-Reply-To
- <cover.1753804956.git.ayu.chandekar@gmail.com>
The aim of this patch series is to remove the definition '#define USE_THE_REPOSITORY_VARIABLE' from "builtin/fmt-merge-msg.c" by removing global variable 'merge_log_config' and the global 'the_repository'
This patch series contains two patches:
1 - Remove the global varaible 'merge_log_config' 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.2 - Remove the dependency of 'the_repository' in "builtin/fmt-merge-msg.c", allowing the removal
of the definition '#define USE_THE_REPOSITORY_VARIABLE'. Also add a test to make sure that
"git fmt-merge-msg -h" can be called with repository being NULL.Thanks to Junio and Phillip for reviewing my patch series and Christian for mentoring me!
Ayush Chandekar (2): environment: remove the global variable 'merge_log_config' builtin/fmt-merge-msg: stop depending on 'the_repository'
builtin/fmt-merge-msg.c | 6 +++--- builtin/merge.c | 3 ++- environment.c | 1 - fmt-merge-msg.c | 10 ++++++---- fmt-merge-msg.h | 1 - t/t1517-outside-repo.sh | 7 +++++++ 6 files changed, 18 insertions(+), 10 deletions(-)
Range-diff against v1:
1: c82620a1f5 < -: ---------- environment: remove the global variable 'merge_log_config'
-: ---------- > 1: 3aa014ed46 environment: remove the global variable 'merge_log_config'
2: 04d6f682a6 ! 2: 8e55516cda builtin/fmt-merge-msg: stop depending on 'the_repository'
@@ Commit message
builtin/fmt-merge-msg: stop depending on 'the_repository'
Refactor builtin/fmt-merge-msg.c to remove the dependancy on the global
- 'the_repository'. Replace all the occurrences of 'the_repository' with
- 'repo', where 'repo' is a pointer to 'struct repository' passed to the
- function 'cmd_fmt_merge_msg()' and thus remove the definition '#define
- USE_THE_REPOSITORY_VARIABLE'. Also, add a test to make sure that "git
- fmt-merge-msg -h" can be called outside a repository.
+ 'the_repository'. Remove the 'UNUSED' macro from the 'struct repository'
+ parameter and replace 'git_config()' with 'repo_config()' so that
+ configuration is read from the passed repository. Also, add a test to
+ make sure that "git fmt-merge-msg -h" can be called outside a
+ repository.
Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
@@ builtin/fmt-merge-msg.c: 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);
++ repo_config(repo, fmt_merge_msg_config, &merge_log_config);
argc = parse_options(argc, argv, prefix, options, fmt_merge_msg_usage,
0);
if (argc > 0)
- usage_with_options(fmt_merge_msg_usage, options);
-+ repo_config(repo, fmt_merge_msg_config, NULL);
-
-- adjust_shortlog_len(the_repository, &shortlog_len);
-+ adjust_shortlog_len(repo, &shortlog_len);
-
- if (inpath && strcmp(inpath, "-")) {
- in = fopen(inpath, "r");
## t/t1517-outside-repo.sh ##
@@ t/t1517-outside-repo.sh: test_expect_success 'prune does not crash with -h' '-- 2.49.0