diff options
author | John Wiegley <johnw@newartisans.com> | 2011-01-28 02:41:59 -0500 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2011-02-01 05:04:49 -0500 |
commit | 89f9fc6f4b1a17b8318a0f11a51c967f1504ed34 (patch) | |
tree | 985000b4ac77d501c4a7e057705fba9edcb1c10d | |
parent | 75e051c682255a3c9428200c20c733ec06137b99 (diff) | |
download | libgit2-89f9fc6f4b1a17b8318a0f11a51c967f1504ed34.tar.gz |
Make git_tree_clear_entries visible to the user
-rw-r--r-- | src/git2/tree.h | 10 | ||||
-rw-r--r-- | src/tree.c | 8 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/git2/tree.h b/src/git2/tree.h index fedf2b7c3..6f79ac455 100644 --- a/src/git2/tree.h +++ b/src/git2/tree.h @@ -205,6 +205,16 @@ GIT_EXTERN(int) git_tree_remove_entry_byindex(git_tree *tree, int idx); GIT_EXTERN(int) git_tree_remove_entry_byname(git_tree *tree, const char *filename); /** + * Clear all the entries in a tree. + * + * This will mark the tree as modified; the modified entry will + * be written back to disk on the next git_object_write(). + * + * @param tree Tree object whose entries are to be sorted + */ +GIT_EXTERN(void) git_tree_clear_entries(git_tree *tree); + +/** * Change the SHA1 id of a tree entry. * * This will mark the tree that contains the entry as modified; diff --git a/src/tree.c b/src/tree.c index c4def2a97..605af8b39 100644 --- a/src/tree.c +++ b/src/tree.c @@ -48,7 +48,7 @@ int entry_sort_cmp(const void *a, const void *b) return strcmp(entry_a->filename, entry_b->filename); } -static void clear_entries(git_tree *tree) +void git_tree_clear_entries(git_tree *tree) { unsigned int i; @@ -64,6 +64,8 @@ static void clear_entries(git_tree *tree) } git_vector_clear(&tree->entries); + + tree->object.modified = 1; } @@ -90,7 +92,7 @@ git_tree *git_tree__new(void) void git_tree__free(git_tree *tree) { - clear_entries(tree); + git_tree_clear_entries(tree); git_vector_free(&tree->entries); free(tree); } @@ -282,7 +284,7 @@ static int tree_parse_buffer(git_tree *tree, char *buffer, char *buffer_end) expected_size = (tree->object.source.raw.len / avg_entry_size) + 1; - clear_entries(tree); + git_tree_clear_entries(tree); while (buffer < buffer_end) { git_tree_entry *entry; |