Subject: [GSOC PATCH 0/2] mailmap: reduce global state

From: Burak Kaan Karaçay <[email-masked]>
Date: Thu, 19 Feb 2026 15:59:52 +0300

Hi,

I am an applicant for GSoC 2026, aiming for the "Refactoring in order to
reduce Git's global state" project. I have already submitted my
microproject, so please treat this series simply as an extra
familiarization exercise to better understand the codebase and the goals
of the project.

The project description mainly focuses on 'environment.c' but I noticed
that an Outreachy intern is currently working in that area. To avoid
stepping on anyone's toes or duplicating work, I decided to look for
other subsystems and chose 'mailmap.c', which currently relies on
'the_repository' and global configuration variables.

This patch series aims to reduce the global variable dependency of the
mailmap subsystem:

  - Patch 1 eliminates the implicit 'the_repository' dependency in the
    'read_mailmap' and 'read_mailmap_blob' functions by adding a
    'struct repository' parameter.

  - Patch 2 removes the 'git_mailmap_file' and 'git_mailmap_blob' global
    variables, shifting to on-demand configuration reading via the config
    set helpers and using local variables.

Thanks.

Burak Kaan Karaçay (2):
  mailmap: stop using the_repository
  mailmap: drop global config variables

 builtin/blame.c         |  2 +-
 builtin/cat-file.c      |  2 +-
 builtin/check-mailmap.c |  4 ++--
 builtin/commit.c        |  2 +-
 builtin/log.c           |  2 +-
 builtin/shortlog.c      |  2 +-
 environment.c           | 19 -------------------
 mailmap.c               | 30 +++++++++++++++++++-----------
 mailmap.h               |  8 +++-----
 pretty.c                |  2 +-
 ref-filter.c            |  2 +-
 11 files changed, 31 insertions(+), 44 deletions(-)

-- 
2.52.0