Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 30 additions & 19 deletions environment.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,23 +119,23 @@ int is_bare_repository(struct repository *repo)

int repo_protect_ntfs(struct repository *repo)
{
return (repo && repo->initialized) ?
repo_config_values(repo)->protect_ntfs :
PROTECT_NTFS_DEFAULT;
return 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;
return 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;
return repo->initialized
? repo_config_values(repo)->ignore_case
: 0;
}

int repo_trust_executable_bit(struct repository *repo)
Expand Down Expand Up @@ -745,31 +745,42 @@ int git_default_config(const char *var, const char *value,

void repo_config_values_init(struct repo_config_values *cfg)
{
/* core */
cfg->attributes_file = NULL;
cfg->excludes_file = NULL;
cfg->editor_program = NULL;
cfg->pager_program = NULL;
cfg->askpass_program = NULL;
cfg->apply_default_whitespace = NULL;
cfg->apply_default_ignorewhitespace = NULL;
cfg->push_default = PUSH_DEFAULT_UNSPECIFIED;
cfg->autorebase = AUTOREBASE_NEVER;
cfg->object_creation_mode = OBJECT_CREATION_MODE;
cfg->apply_sparse_checkout = 0;
cfg->trust_ctime = 1;
cfg->check_stat = 1;
cfg->zlib_compression_level = Z_BEST_SPEED;
cfg->precomposed_unicode = -1;
cfg->core_sparse_checkout_cone = 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();

/* apply */
cfg->apply_default_whitespace = NULL;
cfg->apply_default_ignorewhitespace = NULL;

/* branch */
cfg->autorebase = AUTOREBASE_NEVER;
cfg->branch_track = BRANCH_TRACK_REMOTE;
cfg->trust_ctime = 1;
cfg->check_stat = 1;
cfg->zlib_compression_level = Z_BEST_SPEED;

/* pack */
cfg->pack_compression_level = Z_DEFAULT_COMPRESSION;
cfg->precomposed_unicode = -1; /* see probe_utf8_pathname_composition() */
cfg->core_sparse_checkout_cone = 0;

/* push */
cfg->push_default = PUSH_DEFAULT_UNSPECIFIED;

/* sparse */
cfg->sparse_expect_files_outside_of_patterns = 0;
cfg->warn_on_object_refname_ambiguity = 1;
}

void repo_config_values_clear(struct repo_config_values *cfg)
Expand Down
31 changes: 16 additions & 15 deletions environment.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,16 +121,11 @@ struct repo_config_values {
char *editor_program;
char *pager_program;
char *askpass_program;
char *apply_default_whitespace;
char *apply_default_ignorewhitespace;
enum push_default_type push_default;
enum rebase_setup_type autorebase;
enum object_creation_mode object_creation_mode;
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;
Expand All @@ -140,11 +135,22 @@ struct repo_config_values {
int trust_executable_bit;
int has_symlinks;

/* section "sparse" config values */
int sparse_expect_files_outside_of_patterns;
/* section "apply" config values */
char *apply_default_whitespace;
char *apply_default_ignorewhitespace;

/* section "branch" config values */
enum rebase_setup_type autorebase; /* mapped from branch.autoSetupRebase */
enum branch_track branch_track;

/* section "pack" config values */
int pack_compression_level;

/* section "push" config values */
enum push_default_type push_default;

/* section "sparse" config values */
int sparse_expect_files_outside_of_patterns;
};

struct repo_config_values *repo_config_values(struct repository *repo);
Expand Down Expand Up @@ -175,18 +181,13 @@ 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.
* Getters for configuration variables in `struct repo_config_values`.
* These functions handle uninitialized repositories or non-git
* environments by returning appropriate default values.
*/
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);

int repo_trust_executable_bit(struct repository *repo);
Expand Down
Loading