From 2a884588b405c4dee78494119a123fb1878f3490 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Tue, 21 Sep 2010 17:17:10 +0300 Subject: Add write-back support for git_tree All the setter methods for git_tree have been added, including the setters for attributes on each git_tree_entry and methods to add/remove entries of the tree. Modified trees and trees created in-memory from scratch can be written back to the repository using git_object_write(). Signed-off-by: Vicent Marti --- src/tree.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/tree.h') diff --git a/src/tree.h b/src/tree.h index dd15b9b9b..118d2c3d6 100644 --- a/src/tree.h +++ b/src/tree.h @@ -4,9 +4,11 @@ #include #include "repository.h" +#define GIT_TREE_MAX_FILENAME 255 + struct git_tree_entry { unsigned int attr; - char *filename; + char filename[GIT_TREE_MAX_FILENAME]; git_oid oid; git_tree *owner; @@ -15,11 +17,13 @@ struct git_tree_entry { struct git_tree { git_object object; - git_tree_entry *entries; + git_tree_entry **entries; size_t entry_count; + size_t array_size; }; void git_tree__free(git_tree *tree); int git_tree__parse(git_tree *tree); +int git_tree__writeback(git_tree *tree, git_odb_source *src); #endif -- cgit v1.2.1