From: "Joy via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: "Patrick Steinhardt>" <ps@pks.im>,
"Kristoffer Haugsbakk>" <kristofferhaugsbakk@fastmail.com>,
"Christian Couder>" <christian.couder@gmail.com>,
"Usman Akinyemi>" <usmanakinyemi202@gmail.com>,
Joie Joie <soniqjjj@gmail.com>, Patrick Steinhardt <ps@pks.im>,
Joy <soniqjjj@gmail.com>
Subject: [PATCH v3 0/2] [Outreachy] config: move pack size limit into repo config
Date: Tue, 03 Nov 2026 12:48:36 +0000 [thread overview]
Message-ID: <pull.2271.v3.git.1793710118.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2271.git.1792522587065.gitgitgadget@gmail.com>
This series moves pack.packsizelimit from a standalone global variable into
struct repo_config_values, as part of the ongoing effort to reduce Git's
reliance on global state and make its code easier to reuse as a library.
The series includes two patches:
1. Update repo_config_values_init() to use memset() for
zero-initialization, while keeping the defaults that require explicit
values.
2. Move the pack size limit into repo_config_values and update the relevant
code to read it from there.
Changes since v1
================
Thanks to Patrick Steinhardt for reviewing the first version and suggesting
the initialization cleanup.
Following his feedback, I've:
* Added a preparatory patch to simplify how repository configuration values
are initialized.
* Reworked the main commit message to explain the existing problem before
describing the change.
* Removed the need to explicitly initialize the new pack size limit field
to zero.
Testing
=======
I built Git and ran the relevant configuration and pack-object tests:
* make -j2 — passed.
* t1300-config.sh — 518 successful tests.
* t5300-pack-object.sh — 63 passed, 2 skipped, 0 failed.
Both test runs reported permission errors during cleanup after the tests had
completed.
Joy Gundu (2):
repo: zero-initialize configuration values
config: move pack size limit into repo config
builtin/pack-objects.c | 2 +-
environment.c | 19 +++----------------
environment.h | 3 +--
object-file.c | 6 ++++--
4 files changed, 9 insertions(+), 21 deletions(-)
base-commit: 47fdf2208c5b94c8cc01c106b8f7c85efb91c926
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2271%2FJoiejoie1%2Foutreachy%2Fglobal-state-mini-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2271/Joiejoie1/outreachy/global-state-mini-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/2271
Range-diff vs v2:
1: df93a2a86c ! 1: dc18b66976 repo: zero-initialize configuration values
@@ Metadata
## Commit message ##
repo: zero-initialize configuration values
+ When initializing struct repo_config_values, we explicitly initialize
+ several members to zero or NULL. This adds unnecessary boilerplate as
+ more configuration values are added to the structure.
+
+ Zero-initialize the entire structure with memset() instead, leaving
+ only members with non-zero defaults to be initialized individually.
+
Signed-off-by: Joy Gundu <soniqjjj@gmail.com>
## environment.c ##
@@ environment.c: int git_default_config(const char *var, const char *value,
cfg->has_symlinks = platform_has_symlinks();
- cfg->use_nanosec = 0;
- /* section "sparse" config values */
+- /* section "sparse" config values */
- cfg->sparse_expect_files_outside_of_patterns = 0;
/* section "branch" config values */
2: 05ae50b5da ! 2: ba34e82a0a config: move pack size limit into repo config
@@ environment.c: int git_default_config(const char *var, const char *value,
return 0;
}
+@@ environment.c: void repo_config_values_init(struct repo_config_values *cfg)
+ cfg->trust_executable_bit = 1;
+ cfg->has_symlinks = platform_has_symlinks();
+
+-
+ /* section "branch" config values */
+ cfg->branch_track = BRANCH_TRACK_REMOTE;
+ }
## environment.h ##
@@ environment.h: struct repo_config_values {
--
gitgitgadget
next prev parent reply other threads:[~2026-11-03 12:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-20 18:56 [PATCH] config: move pack size limit into repo config Joy via GitGitGadget
2026-10-20 19:02 ` Kristoffer Haugsbakk
2026-10-21 8:09 ` Patrick Steinhardt
2026-10-21 12:23 ` Joie Joie
2026-10-22 9:47 ` [PATCH v2 0/2] " Joy via GitGitGadget
2026-10-22 9:47 ` [PATCH v2 1/2] repo: zero-initialize configuration values Joy Gundu via GitGitGadget
2026-10-22 11:30 ` Patrick Steinhardt
2026-10-23 12:00 ` Joie Joie
2026-10-26 7:30 ` Patrick Steinhardt
2026-10-22 9:47 ` [PATCH v2 2/2] config: move pack size limit into repo config Joy Gundu via GitGitGadget
2026-10-22 11:30 ` Patrick Steinhardt
2026-10-22 11:30 ` [PATCH v2 0/2] " Patrick Steinhardt
2026-11-03 12:48 ` Joy via GitGitGadget [this message]
2026-11-03 12:48 ` [PATCH v3 1/2] repo: zero-initialize configuration values Joy Gundu via GitGitGadget
2026-11-03 12:48 ` [PATCH v3 2/2] config: move pack size limit into repo config Joy Gundu via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.2271.v3.git.1793710118.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=kristofferhaugsbakk@fastmail.com \
--cc=ps@pks.im \
--cc=soniqjjj@gmail.com \
--cc=usmanakinyemi202@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox