git-svn: Eliminate temp file usage in libsvn_get_file()
[gitweb.git] / object.c
index 4d46e0d5e4285251e60d2a6d938f38355ac5d2c0..9adc87479bde2a0b2a0a0335aed12a9f485facff 100644 (file)
--- a/object.c
+++ b/object.c
@@ -9,7 +9,7 @@ struct object **objs;
 static int nr_objs;
 int obj_allocs;
 
-int track_object_refs = 1;
+int track_object_refs = 0;
 
 static int hashtable_index(const unsigned char *sha1)
 {
@@ -200,8 +200,11 @@ struct object *parse_object(const unsigned char *sha1)
                        obj = &blob->object;
                } else if (!strcmp(type, tree_type)) {
                        struct tree *tree = lookup_tree(sha1);
-                       parse_tree_buffer(tree, buffer, size);
                        obj = &tree->object;
+                       if (!tree->object.parsed) {
+                               parse_tree_buffer(tree, buffer, size);
+                               buffer = NULL;
+                       }
                } else if (!strcmp(type, commit_type)) {
                        struct commit *commit = lookup_commit(sha1);
                        parse_commit_buffer(commit, buffer, size);