diff options
-rw-r--r-- | include/git2/index.h | 7 | ||||
-rw-r--r-- | src/index.c | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/git2/index.h b/include/git2/index.h index 83a18e160..d34ed0a92 100644 --- a/include/git2/index.h +++ b/include/git2/index.h @@ -173,6 +173,13 @@ GIT_EXTERN(int) git_index_write(git_index *index); GIT_EXTERN(int) git_index_find(git_index *index, const char *path); /** + * Remove all entries with equal path except last added + * + * @param index an existing index object + */ +GIT_EXTERN(void) git_index_uniq(git_index *index); + +/** * Add or update an index entry from a file in disk * * The file `path` must be relative to the repository's diff --git a/src/index.c b/src/index.c index fd905d007..dd33db92a 100644 --- a/src/index.c +++ b/src/index.c @@ -487,6 +487,11 @@ int git_index_find(git_index *index, const char *path) return git_vector_bsearch2(&index->entries, index_srch, path); } +void git_index_uniq(git_index *index) +{ + git_vector_uniq(&index->entries); +} + const git_index_entry_unmerged *git_index_get_unmerged_bypath(git_index *index, const char *path) { int pos; |