Weather balloon patch. Doesn't seem to help much in benchmarks; in fact I think it sometimes hurts a bit. Is it worthwhile just in case someone comes up with a ginormous tree that is really deep with few entries per tree? I'm leaning against it, but am sending the patch to at least show others that it has been considered. --- No signed-off-by, since I'm not sold on this patch and am somewhat leaning against it. It would need a better commit message anyway. :-) list-objects.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/list-objects.c b/list-objects.c index daa50bf..66e4ccc 100644 --- a/list-objects.c +++ b/list-objects.c @@ -61,13 +61,13 @@ static void process_tree(struct rev_info *revs, struct tree *tree, show_object_fn show, struct name_path *path, - const char *name) + const char *name, + int all_interesting) { struct object *obj = &tree->object; struct tree_desc desc; struct name_entry entry; struct name_path me; - int all_interesting = (revs->diffopt.nr_paths == 0); if (!revs->tree_objects) return; @@ -106,7 +106,8 @@ static void process_tree(struct rev_info *revs, if (S_ISDIR(entry.mode)) process_tree(revs, lookup_tree(entry.sha1), - show, &me, entry.path); + show, &me, entry.path, + all_interesting); else if (S_ISGITLINK(entry.mode)) process_gitlink(revs, entry.sha1, show, &me, entry.path); @@ -182,7 +183,7 @@ void traverse_commit_list(struct rev_info *revs, } if (obj->type == OBJ_TREE) { process_tree(revs, (struct tree *)obj, show_object, - NULL, name); + NULL, name, revs->diffopt.nr_paths == 0); continue; } if (obj->type == OBJ_BLOB) { -- 1.7.2.2.39.gf7e23 -- To unsubscribe from this list: 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