All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.