Browse Source

repository: add index_state to struct repo

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Brandon Williams 8 years ago committed by Junio C Hamano
parent
commit
639e30b5b2
  1. 16
      repository.c
  2. 9
      repository.h

16
repository.c

@ -163,4 +163,20 @@ void repo_clear(struct repository *repo) @@ -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);
}

9
repository.h

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
#define REPOSITORY_H

struct config_set;
struct index_state;

struct repository {
/* Environment */
@ -49,6 +50,12 @@ struct repository { @@ -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); @@ -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 */

Loading…
Cancel
Save