On Mon, Jun 22, 2015 at 04:38:22AM -0400, Jeff King wrote: > > + prepare_packed_git(); > > + for (p = packed_git; p; p = p->next) { > > + open_pack_index(p); > > + } > > Yikes. The fact that you need to do this means that > for_each_packed_object is buggy, IMHO. I'll send a patch.
Here's that patch. And since I did not want to pile work on Charles, I went ahead and just implemented the patches I suggested in the other email. We may want to take patch 1 separately for the maint-track, as it is really a bug-fix (albeit one that I do not think actually affects anyone in practice right now). Patches 2-5 are useful even if we go with Charles' command, as they make cat-file better (cleanups and he new buffer option). Patches 6-7 implement the cat-file option that would be redundant with list-all-objects. By the way, in addition to not showing objects in order, list-all-objects (and my cat-file option) may show duplicates. Do we want to "sort -u" for the user? It might be nice for them to always get a de-duped and sorted list. Aside from the CPU cost of sorting, it does mean we'll allocate ~80MB for the kernel to store the sha1s. I guess that's not too much when you are talking about the kernel repo. I took the coward's way out and just mentioned the limitation in the documentation, but I'm happy to be persuaded. [1/7]: for_each_packed_object: automatically open pack index [2/7]: cat-file: minor style fix in options list [3/7]: cat-file: move batch_options definition to top of file [4/7]: cat-file: add --buffer option [5/7]: cat-file: stop returning value from batch_one_object [6/7]: cat-file: split batch_one_object into two stages [7/7]: cat-file: add --batch-all-objects option -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in