Re: [PATCH v4 2/3] environment: align repo_config_values_init with struct declaration
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 20, 2026, 17:45 UTC
- Message-ID
- <xmqqa4qgsn20.fsf@gitster.g>
- In-Reply-To
- <5693baa9923afd20333c0eb016cc5949f8dfc423.1787231825.git.ben.knoble@gmail.com>
"D. Ben Knoble" <ben.knoble@gmail.com> writes:
Show 6 quoted lines
> The order of assignments in repo_config_values_init is chaotic and hard > to follow, especially when comparing with the struct definition to > ensure all members are initialized. As new members will be added in the > future, make it easier to validate changes by aligning the two. > > Refactor assignment order with no behavioral changes.
After reading the above three times, I am tempted to slightly tweak the above:
... comparing with the definition of 'struct repo_config_values' to
ensure ...Other than that, great improvement.
Thanks.
Show 50 quoted lines
>
> Signed-off-by: D. Ben Knoble <ben.knoble@gmail.com>
> ---
> environment.c | 19 ++++++++++++-------
> 1 file changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/environment.c b/environment.c
> index 76ee65e62b..6676e6f5ae 100644
> --- a/environment.c
> +++ b/environment.c
> @@ -745,6 +745,7 @@ int git_default_config(const char *var, const char *value,
>
> void repo_config_values_init(struct repo_config_values *cfg)
> {
> + /* section "core" config values */
> cfg->attributes_file = NULL;
> cfg->excludes_file = NULL;
> cfg->editor_program = NULL;
> @@ -756,20 +757,24 @@ void repo_config_values_init(struct repo_config_values *cfg)
> cfg->autorebase = AUTOREBASE_NEVER;
> cfg->object_creation_mode = OBJECT_CREATION_MODE;
> cfg->apply_sparse_checkout = 0;
> - cfg->protect_hfs = PROTECT_HFS_DEFAULT;
> - cfg->protect_ntfs = PROTECT_NTFS_DEFAULT;
> - cfg->ignore_case = 0;
> - cfg->trust_executable_bit = 1;
> - cfg->has_symlinks = platform_has_symlinks();
> - cfg->branch_track = BRANCH_TRACK_REMOTE;
> cfg->trust_ctime = 1;
> cfg->check_stat = 1;
> cfg->zlib_compression_level = Z_BEST_SPEED;
> cfg->pack_compression_level = Z_DEFAULT_COMPRESSION;
> cfg->precomposed_unicode = -1; /* see probe_utf8_pathname_composition() */
> cfg->core_sparse_checkout_cone = 0;
> - cfg->sparse_expect_files_outside_of_patterns = 0;
> cfg->warn_on_object_refname_ambiguity = 1;
> + cfg->protect_hfs = PROTECT_HFS_DEFAULT;
> + cfg->protect_ntfs = PROTECT_NTFS_DEFAULT;
> + cfg->ignore_case = 0;
> + cfg->trust_executable_bit = 1;
> + cfg->has_symlinks = platform_has_symlinks();
> +
> + /* section "sparse" config values */
> + cfg->sparse_expect_files_outside_of_patterns = 0;
> +
> + /* section "branch" config values */
> + cfg->branch_track = BRANCH_TRACK_REMOTE;
> }
>
> void repo_config_values_clear(struct repo_config_values *cfg)