diff options
Diffstat (limited to 'third_party/git/repository.h')
-rw-r--r-- | third_party/git/repository.h | 52 |
1 files changed, 49 insertions, 3 deletions
diff --git a/third_party/git/repository.h b/third_party/git/repository.h index 4fb6a5885f79..bacf843d460d 100644 --- a/third_party/git/repository.h +++ b/third_party/git/repository.h @@ -11,6 +11,36 @@ struct pathspec; struct raw_object_store; struct submodule_cache; +enum untracked_cache_setting { + UNTRACKED_CACHE_UNSET = -1, + UNTRACKED_CACHE_REMOVE = 0, + UNTRACKED_CACHE_KEEP = 1, + UNTRACKED_CACHE_WRITE = 2 +}; + +enum fetch_negotiation_setting { + FETCH_NEGOTIATION_UNSET = -1, + FETCH_NEGOTIATION_NONE = 0, + FETCH_NEGOTIATION_DEFAULT = 1, + FETCH_NEGOTIATION_SKIPPING = 2, + FETCH_NEGOTIATION_NOOP = 3, +}; + +struct repo_settings { + int initialized; + + int core_commit_graph; + int commit_graph_read_changed_paths; + int gc_write_commit_graph; + int fetch_write_commit_graph; + + int index_version; + enum untracked_cache_setting core_untracked_cache; + + int pack_use_sparse; + enum fetch_negotiation_setting fetch_negotiation_algorithm; +}; + struct repository { /* Environment */ /* @@ -39,8 +69,12 @@ struct repository { */ struct parsed_object_pool *parsed_objects; - /* The store in which the refs are held. */ - struct ref_store *refs; + /* + * The store in which the refs are held. This should generally only be + * accessed via get_main_ref_store(), as that will lazily initialize + * the ref object. + */ + struct ref_store *refs_private; /* * Contains path to often used file names. @@ -72,6 +106,8 @@ struct repository { */ char *submodule_prefix; + struct repo_settings settings; + /* Subsystems */ /* * Repository's config which contains key-value pairs from the usual @@ -95,6 +131,9 @@ struct repository { /* A unique-id for tracing purposes. */ int trace2_repo_id; + /* True if commit-graph has been disabled within this process. */ + int commit_graph_disabled; + /* Configurations */ /* Indicate if a repository has a different 'commondir' from 'gitdir' */ @@ -139,7 +178,7 @@ void repo_clear(struct repository *repo); * be allocated if needed. * * Return the number of index entries in the populated index or a value less - * than zero if an error occured. If the repository's index has already been + * than zero if an error occurred. If the repository's index has already been * populated then the number of entries will simply be returned. */ int repo_read_index(struct repository *repo); @@ -157,5 +196,12 @@ int repo_read_index_unmerged(struct repository *); */ void repo_update_index_if_able(struct repository *, struct lock_file *); +void prepare_repo_settings(struct repository *r); + +/* + * Return 1 if upgrade repository format to target_version succeeded, + * 0 if no upgrade is necessary, and -1 when upgrade is not possible. + */ +int upgrade_repository_format(int target_version); #endif /* REPOSITORY_H */ |