diff options
| author | Burak Kaan Karaçay <bkkaracay@gmail.com> | 2026-02-20 09:04:42 +0300 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2026-02-20 08:13:58 -0800 |
| commit | 6aea51bc3bf3c5318b97b5bddc405c29f1b23e8e (patch) | |
| tree | 782c9682b2cc2ed1561871888a8129d4507ea612 /mailmap.c | |
| parent | 999b09348d6302d018165b4b3d289d4579d08e9e (diff) | |
| download | git-6aea51bc3bf3c5318b97b5bddc405c29f1b23e8e.tar.xz | |
mailmap: drop global config variables
The 'mailmap.file' and 'mailmap.blob' configurations are currently
parsed and stored in the global variables 'git_mailmap_file' and
'git_mailmap_blob'. Since these values are typically only needed once
when initializing a mailmap, there is no need to keep them as global
state throughout the lifetime of the Git process.
To reduce global state, remove these global variables and instead use
'repo_config_get_*' functions to read the configuration on demand.
Signed-off-by: Burak Kaan Karaçay <bkkaracay@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'mailmap.c')
| -rw-r--r-- | mailmap.c | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -7,9 +7,7 @@ #include "object-name.h" #include "odb.h" #include "setup.h" - -char *git_mailmap_file; -char *git_mailmap_blob; +#include "config.h" struct mailmap_info { char *name; @@ -213,20 +211,29 @@ int read_mailmap_blob(struct repository *repo, struct string_list *map, int read_mailmap(struct repository *repo, struct string_list *map) { int err = 0; + char *mailmap_file = NULL, *mailmap_blob = NULL; + + repo_config_get_pathname(repo, "mailmap.file", &mailmap_file); + repo_config_get_string(repo, "mailmap.blob", &mailmap_blob); map->strdup_strings = 1; map->cmp = namemap_cmp; - if (!git_mailmap_blob && is_bare_repository()) - git_mailmap_blob = xstrdup("HEAD:.mailmap"); + if (!mailmap_blob && is_bare_repository()) + mailmap_blob = xstrdup("HEAD:.mailmap"); if (!startup_info->have_repository || !is_bare_repository()) err |= read_mailmap_file(map, ".mailmap", startup_info->have_repository ? MAILMAP_NOFOLLOW : 0); if (startup_info->have_repository) - err |= read_mailmap_blob(repo, map, git_mailmap_blob); - err |= read_mailmap_file(map, git_mailmap_file, 0); + err |= read_mailmap_blob(repo, map, mailmap_blob); + + err |= read_mailmap_file(map, mailmap_file, 0); + + free(mailmap_file); + free(mailmap_blob); + return err; } |
