pack-objects: refactor the packing list
commit2834bc27c16e4ae103768dd6dda530f0e46116af
authorVicent Marti <tanoku@gmail.com>
Thu, 24 Oct 2013 18:01:06 +0000 (24 14:01 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 24 Oct 2013 22:44:48 +0000 (24 15:44 -0700)
tree5c26ff9d0bdf39c34dc7cb1c56d96d730167fb48
parent92e5c77c3791567e299cc858a7ddfed410e2cec5
pack-objects: refactor the packing list

The hash table that stores the packing list for a given `pack-objects`
run was tightly coupled to the pack-objects code.

In this commit, we refactor the hash table and the underlying storage
array into a `packing_data` struct. The functionality for accessing and
adding entries to the packing list is hence accessible from other parts
of Git besides the `pack-objects` builtin.

This refactoring is a requirement for further patches in this series
that will require accessing the commit packing list from outside of
`pack-objects`.

The hash table implementation has been minimally altered: we now
use table sizes which are always a power of two, to ensure a uniform
index distribution in the array.

Signed-off-by: Vicent Marti <tanoku@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
builtin/pack-objects.c
pack-objects.c [new file with mode: 0644]
pack-objects.h [new file with mode: 0644]