summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authorSam Vilain <sam.vilain@catalyst.net.nz>2007-06-06 22:25:17 +1200
committerJunio C Hamano <gitster@pobox.com>2007-06-06 15:43:18 -0700
commite2ac7cb5fbcf1407003aa07cdcd14141527ea2e3 (patch)
treebcdce634d9bb7632aa6c3c7677bcf4d2209e0aa4 /object.c
parent23fcdc79713c47a6a0d50762b9311c9933a60d3f (diff)
downloadgit-e2ac7cb5fbcf1407003aa07cdcd14141527ea2e3.tar.gz
Don't assume tree entries that are not dirs are blobs
When scanning the trees in track_tree_refs() there is a "lazy" test that assumes that entries are either directories or files. Don't do that. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'object.c')
-rw-r--r--object.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/object.c b/object.c
index cfc4969ed9..16793d9958 100644
--- a/object.c
+++ b/object.c
@@ -160,8 +160,11 @@ struct object *parse_object_buffer(const unsigned char *sha1, enum object_type t
parse_tag_buffer(tag, buffer, size);
obj = &tag->object;
} else {
+ warning("object %s has unknown type id %d\n", sha1_to_hex(sha1), type);
obj = NULL;
}
+ if (obj && obj->type == OBJ_NONE)
+ obj->type = type;
*eaten_p = eaten;
return obj;
}