From: Junio C Hamano Date: Mon, 6 Jul 2026 22:50:21 +0000 (-0700) Subject: Merge branch 'ty/move-protect-hfs-ntfs' X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=13f5190881de9dcca1dae206f628c8e6faab9689;p=thirdparty%2Fgit.git Merge branch 'ty/move-protect-hfs-ntfs' The global configuration variables protect_hfs and protect_ntfs have been migrated into struct repo_config_values to tie them to per-repository configuration state. * ty/move-protect-hfs-ntfs: environment: use 'repo->initialized' for repo_protect_hfs() and repo_protect_ntfs() environment: move 'protect_hfs' and 'protect_ntfs' into 'repo_config_values' --- 13f5190881de9dcca1dae206f628c8e6faab9689 diff --cc environment.c index bee2cd621a,f34f6fc750..8f0c1c4f25 --- a/environment.c +++ b/environment.c @@@ -124,12 -134,26 +122,26 @@@ const char *getenv_safe(struct strvec * return argv->v[argv->nr - 1]; } -int is_bare_repository(void) +int is_bare_repository(struct repository *repo) { /* if core.bare is not 'false', let's see if there is a work tree */ - return is_bare_repository_cfg && !repo_get_work_tree(the_repository); + return repo->bare_cfg && !repo_get_work_tree(repo); } + int repo_protect_ntfs(struct repository *repo) + { + return (repo && repo->initialized) ? + repo_config_values(repo)->protect_ntfs : + PROTECT_NTFS_DEFAULT; + } + + int repo_protect_hfs(struct repository *repo) + { + return (repo && repo->initialized) ? + repo_config_values(repo)->protect_hfs : + PROTECT_HFS_DEFAULT; + } + int have_git_dir(void) { return startup_info->have_repository @@@ -712,13 -732,7 +724,15 @@@ void repo_config_values_init(struct rep { cfg->attributes_file = NULL; cfg->apply_sparse_checkout = 0; + cfg->protect_hfs = PROTECT_HFS_DEFAULT; + cfg->protect_ntfs = PROTECT_NTFS_DEFAULT; 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; } diff --cc environment.h index f5b9b33c90,b1ae4a70de..8aaedcfea3 --- a/environment.h +++ b/environment.h @@@ -91,17 -91,9 +91,19 @@@ struct repo_config_values /* section "core" config values */ char *attributes_file; int apply_sparse_checkout; + int trust_ctime; + int check_stat; + int zlib_compression_level; + int pack_compression_level; + int precomposed_unicode; + int core_sparse_checkout_cone; + int warn_on_object_refname_ambiguity; + int protect_hfs; + int protect_ntfs; + /* section "sparse" config values */ + int sparse_expect_files_outside_of_patterns; + /* section "branch" config values */ enum branch_track branch_track; }; @@@ -133,10 -125,16 +135,18 @@@ int git_default_config(const char *, co int git_default_core_config(const char *var, const char *value, const struct config_context *ctx, void *cb); + /* + * Getters for the `protect_hfs` and `protect_ntfs` fields of `struct repo_config_values`. + * They check `repo->initialized` to prevent calling `repo_config_values()` + * before the repository setup is fully complete or in non-git environments. + */ + int repo_protect_hfs(struct repository *repo); + int repo_protect_ntfs(struct repository *repo); + void repo_config_values_init(struct repo_config_values *cfg); +int is_bare_repository(struct repository *repo); + /* * TODO: All the below state either explicitly or implicitly relies on * `the_repository`. We should eventually get rid of these and make the @@@ -165,13 -175,18 +175,10 @@@ extern int has_symlinks extern int minimum_abbrev, default_abbrev; extern int ignore_case; extern int assume_unchanged; -extern int warn_on_object_refname_ambiguity; extern char *apply_default_whitespace; extern char *apply_default_ignorewhitespace; -extern int zlib_compression_level; -extern int pack_compression_level; extern unsigned long pack_size_limit_cfg; - extern int protect_hfs; - extern int protect_ntfs; -extern int precomposed_unicode; - -extern int core_sparse_checkout_cone; -extern int sparse_expect_files_outside_of_patterns; -- enum rebase_setup_type { AUTOREBASE_NEVER = 0, AUTOREBASE_LOCAL,