On Mon, 5 Jun 2006, Linus Torvalds wrote: > > Whaah! That nice 6.33MB pack-file exploded to 14.5MB! > > And it's possibly broken by the fact that we've been renaming things > lately (ie the "rev-list.c" -> "builtin-rev-list.c" thing ends up not > finding things) No, it's even simpler. The breakage is entirely mine, and due to the tree-walking conversion of the "process_tree()" function. In that function, we used to have a local "const char *name" that _shadowed_ the incoming _argument_ with the same type, and the tree-walking conversion did not notice that the inner "name" should have been converted to "entry.path" - so it used the outer-level "name". Gaah. We should probably use -Wshadow or something, which would hopefully have warned about the re-use of the same variable name in two different scopes. Regardless, this fixes it. Linus --- diff --git a/builtin-rev-list.c b/builtin-rev-list.c index 17c04b9..e885624 100644 --- a/builtin-rev-list.c +++ b/builtin-rev-list.c @@ -135,9 +135,9 @@ static struct object_list **process_tree while (tree_entry(&desc, &entry)) { if (S_ISDIR(entry.mode)) - p = process_tree(lookup_tree(entry.sha1), p, &me, name); + p = process_tree(lookup_tree(entry.sha1), p, &me, entry.path); else - p = process_blob(lookup_blob(entry.sha1), p, &me, name); + p = process_blob(lookup_blob(entry.sha1), p, &me, entry.path); } 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