I think this fixes the http trouble with tree parser change in the "next" branch. -- >8 -- fetch.c: do not call process_tree() from process_tree(). This function reads a freshly fetched tree object, and schedules the objects pointed by it for further fetching, so calling lookup-tree and doing process_tree() recursively from there does not make much sense. We need to use process() on it to make sure we fetch it first. Signed-off-by: Junio C Hamano <junkio@xxxxxxx> --- diff --git a/fetch.c b/fetch.c index ec2d8c3..107504b 100644 --- a/fetch.c +++ b/fetch.c @@ -46,13 +46,20 @@ static int process_tree(struct tree *tre desc.buf = tree->buffer; desc.size = tree->size; while (tree_entry(&desc, &entry)) { + struct object *obj = NULL; + if (S_ISDIR(entry.mode)) { struct tree *tree = lookup_tree(entry.sha1); - process_tree(tree); - } else { + if (tree) + obj = &tree->object; + } + else { struct blob *blob = lookup_blob(entry.sha1); - process(&blob->object); + if (blob) + obj = &blob->object; } + if (!obj || process(obj)) + return -1; } free(tree->buffer); tree->buffer = NULL; - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html