]> git.ipfire.org Git - thirdparty/git.git/commit - pack-revindex.h
pack-revindex: store entries directly in packed_git
authorJeff King <peff@peff.net>
Mon, 21 Dec 2015 06:20:33 +0000 (01:20 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 21 Dec 2015 22:36:28 +0000 (14:36 -0800)
commit9d98bbf5785708da4effc9b8f34ba6e18d726625
tree26258229df1ac0124b99f7d0005fb00ea6db77fc
parentf4015337daf130944393296550dd7d8a9c172325
pack-revindex: store entries directly in packed_git

A pack_revindex struct has two elements: the revindex
entries themselves, and a pointer to the packed_git. We need
both to do lookups, because only the latter knows things
like the number of objects in the pack.

Now that packed_git contains the pack_revindex struct it's
just as easy to pass around the packed_git itself, and we do
not need the extra back-pointer.

We can instead just store the entries directly in the pack.
All functions which took a pack_revindex now just take a
packed_git. We still lazy-load in find_pack_revindex, so
most callers are unaffected.

The exception is the bitmap code, which computes the
revindex and caches the pointer when we load the bitmaps. We
can continue to load, drop the extra cache pointer, and just
access bitmap_git.pack.revindex directly.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h
pack-bitmap.c
pack-revindex.c
pack-revindex.h