| #ifndef REPO_SETTINGS_H |
| #define REPO_SETTINGS_H |
| |
| struct fsmonitor_settings; |
| struct repository; |
| |
| enum untracked_cache_setting { |
| UNTRACKED_CACHE_KEEP, |
| UNTRACKED_CACHE_REMOVE, |
| UNTRACKED_CACHE_WRITE, |
| }; |
| |
| enum fetch_negotiation_setting { |
| FETCH_NEGOTIATION_CONSECUTIVE, |
| FETCH_NEGOTIATION_SKIPPING, |
| FETCH_NEGOTIATION_NOOP, |
| }; |
| |
| enum log_refs_config { |
| LOG_REFS_UNSET = -1, |
| LOG_REFS_NONE = 0, |
| LOG_REFS_NORMAL, |
| LOG_REFS_ALWAYS |
| }; |
| |
| struct repo_settings { |
| int initialized; |
| |
| int core_commit_graph; |
| int commit_graph_generation_version; |
| int commit_graph_changed_paths_version; |
| int gc_write_commit_graph; |
| int fetch_write_commit_graph; |
| int command_requires_full_index; |
| int sparse_index; |
| int pack_read_reverse_index; |
| int pack_use_bitmap_boundary_traversal; |
| int pack_use_multi_pack_reuse; |
| |
| /* |
| * Does this repository have core.useReplaceRefs=true (on by |
| * default)? This provides a repository-scoped version of this |
| * config, though it could be disabled process-wide via some Git |
| * builtins or the --no-replace-objects option. See |
| * replace_refs_enabled() for more details. |
| */ |
| int read_replace_refs; |
| |
| struct fsmonitor_settings *fsmonitor; /* lazily loaded */ |
| |
| int index_version; |
| int index_skip_hash; |
| enum untracked_cache_setting core_untracked_cache; |
| |
| int pack_use_sparse; |
| enum fetch_negotiation_setting fetch_negotiation_algorithm; |
| |
| int core_multi_pack_index; |
| int warn_ambiguous_refs; /* lazily loaded via accessor */ |
| }; |
| #define REPO_SETTINGS_INIT { \ |
| .index_version = -1, \ |
| .core_untracked_cache = UNTRACKED_CACHE_KEEP, \ |
| .fetch_negotiation_algorithm = FETCH_NEGOTIATION_CONSECUTIVE, \ |
| .warn_ambiguous_refs = -1, \ |
| } |
| |
| void prepare_repo_settings(struct repository *r); |
| |
| /* Read the value for "core.logAllRefUpdates". */ |
| enum log_refs_config repo_settings_get_log_all_ref_updates(struct repository *repo); |
| /* Read the value for "core.warnAmbiguousRefs". */ |
| int repo_settings_get_warn_ambiguous_refs(struct repository *repo); |
| |
| #endif /* REPO_SETTINGS_H */ |