diff options
-rw-r--r-- | include/git2/index.h | 13 | ||||
-rw-r--r-- | src/index.c | 5 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/git2/index.h b/include/git2/index.h index 2a0b001ff..bca9791c5 100644 --- a/include/git2/index.h +++ b/include/git2/index.h @@ -126,6 +126,19 @@ enum { GIT_EXTERN(int) git_index_open(git_index **index, const char *index_path); /** + * Create an in-memory index object. + * + * This index object cannot be read/written to the filesystem, + * but may be used to perform in-memory index operations. + * + * The index must be freed once it's no longer in use. + * + * @param index the pointer for the new index + * @return 0 or an error code + */ +GIT_EXTERN(int) git_index_new(git_index **index); + +/** * Free an existing index object. * * @param index an existing index object diff --git a/src/index.c b/src/index.c index ffa63f6a7..cb83015a6 100644 --- a/src/index.c +++ b/src/index.c @@ -287,6 +287,11 @@ int git_index_open(git_index **index_out, const char *index_path) return (index_path != NULL) ? git_index_read(index) : 0; } +int git_index_new(git_index **out) +{ + return git_index_open(out, NULL); +} + static void index_free(git_index *index) { git_index_entry *e; |