diff options
author | Brandon Williams <bmwill@google.com> | 2017-06-22 11:43:43 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-06-23 18:24:34 -0700 |
commit | 639e30b5b2214c68c042215a279ac1fbb372d73d (patch) | |
tree | feb1abd69119562b7913d7094a8e1911f909c906 | |
parent | config: read config from a repository object (diff) | |
download | tgif-639e30b5b2214c68c042215a279ac1fbb372d73d.tar.xz |
repository: add index_state to struct repo
Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | repository.c | 16 | ||||
-rw-r--r-- | repository.h | 9 |
2 files changed, 25 insertions, 0 deletions
diff --git a/repository.c b/repository.c index 686a964ad6..6f6f4d91ef 100644 --- a/repository.c +++ b/repository.c @@ -163,4 +163,20 @@ void repo_clear(struct repository *repo) free(repo->config); repo->config = NULL; } + + if (repo->index) { + discard_index(repo->index); + free(repo->index); + repo->index = NULL; + } +} + +int repo_read_index(struct repository *repo) +{ + if (!repo->index) + repo->index = xcalloc(1, sizeof(*repo->index)); + else + discard_index(repo->index); + + return read_index_from(repo->index, repo->index_file); } diff --git a/repository.h b/repository.h index 8ae5e8653a..3a41568aa0 100644 --- a/repository.h +++ b/repository.h @@ -2,6 +2,7 @@ #define REPOSITORY_H struct config_set; +struct index_state; struct repository { /* Environment */ @@ -49,6 +50,12 @@ struct repository { */ struct config_set *config; + /* + * Repository's in-memory index. + * 'repo_read_index()' can be used to populate 'index'. + */ + struct index_state *index; + /* Configurations */ /* * Bit used during initialization to indicate if repository state (like @@ -71,4 +78,6 @@ extern void repo_set_worktree(struct repository *repo, const char *path); extern int repo_init(struct repository *repo, const char *gitdir, const char *worktree); extern void repo_clear(struct repository *repo); +extern int repo_read_index(struct repository *repo); + #endif /* REPOSITORY_H */ |