]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ty/migrate-ignorecase' into jch
authorJunio C Hamano <gitster@pobox.com>
Wed, 24 Jun 2026 20:21:13 +0000 (13:21 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 24 Jun 2026 20:21:13 +0000 (13:21 -0700)
The global configuration variable ignore_case (representing the
core.ignorecase configuration) has been migrated into struct
repo_config_values to tie it to a specific repository instance.

* ty/migrate-ignorecase:
  config: use repo_ignore_case() to access core.ignorecase
  environment: move ignore_case into repo_config_values

1  2 
apply.c
builtin/fetch.c
builtin/mv.c
dir.c
environment.c
environment.h
read-cache.c
refs/files-backend.c
submodule.c
unpack-trees.c

diff --cc apply.c
Simple merge
diff --cc builtin/fetch.c
Simple merge
diff --cc builtin/mv.c
Simple merge
diff --cc dir.c
Simple merge
diff --cc environment.c
index 8f0c1c4f2501934830b9e4addd4a9880d584196c,c288c3613d72ccbc7b7fd4fa2bc9cef581dc07df..c663113e8a6dcc4f87ed1db320db6ba4867281da
@@@ -42,10 -42,13 +42,9 @@@ static int pack_compression_seen
  static int zlib_compression_seen;
  
  int trust_executable_bit = 1;
 -int trust_ctime = 1;
 -int check_stat = 1;
  int has_symlinks = 1;
  int minimum_abbrev = 4, default_abbrev = -1;
- int ignore_case;
  int assume_unchanged;
 -int is_bare_repository_cfg = -1; /* unspecified */
 -int warn_on_object_refname_ambiguity = 1;
  char *git_commit_encoding;
  char *git_log_output_encoding;
  char *apply_default_whitespace;
@@@ -122,26 -135,19 +121,33 @@@ 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 repo_ignore_case(struct repository *repo)
+ {
+       return (repo && repo->initialized) ?
+               repo_config_values(repo)->ignore_case :
+               0;
+ }
  int have_git_dir(void)
  {
        return startup_info->have_repository
@@@ -724,15 -726,6 +730,16 @@@ 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->ignore_case = 0;
        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 8aaedcfea36c472926352f535df429d2a2ab022e,c15121db659cb375c9d3a60111809ccf6e2f5b8c..acfb670be107a0c2ab35b7396a1506902c65b920
@@@ -91,19 -91,8 +91,20 @@@ 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;
+       int ignore_case;
  
 +      /* section "sparse" config values */
 +      int sparse_expect_files_outside_of_patterns;
 +
        /* section "branch" config values */
        enum branch_track branch_track;
  };
@@@ -135,18 -124,15 +136,25 @@@ 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);
 +
+ /*
+  * Getter for the `ignore_case` field of `struct repo_config_values`.
+  * It checks `repo->initialized` to prevent calling repo_config_values()`
+  * before the repository setup is fully complete or in non-git environments.
+  */
+ int repo_ignore_case(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
   */
  int have_git_dir(void);
  
 -extern int is_bare_repository_cfg;
 -int is_bare_repository(void);
 -extern char *git_work_tree_cfg;
 -
  /* Environment bits from configuration mechanism */
  extern int trust_executable_bit;
 -extern int trust_ctime;
 -extern int check_stat;
  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 precomposed_unicode;
 -extern int protect_hfs;
 -extern int protect_ntfs;
 -
 -extern int core_sparse_checkout_cone;
 -extern int sparse_expect_files_outside_of_patterns;
 -
  enum rebase_setup_type {
        AUTOREBASE_NEVER = 0,
        AUTOREBASE_LOCAL,
diff --cc read-cache.c
Simple merge
Simple merge
diff --cc submodule.c
Simple merge
diff --cc unpack-trees.c
Simple merge