summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Marti <tanoku@gmail.com>2012-11-01 20:28:28 +0100
committerVicent Marti <tanoku@gmail.com>2012-11-01 20:28:28 +0100
commit1e808f9cda598fef83ff93deb007212ebf61be6d (patch)
treeed40a431c2884cb87ea489640e4217463df9e325
parent43eeca04a7fe00332fe8c4723e29fa82a5304b13 (diff)
downloadlibgit2-index-open-cleanup.tar.gz
index: Add `git_index_new`index-open-cleanup
-rw-r--r--include/git2/index.h13
-rw-r--r--src/index.c5
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;