summaryrefslogtreecommitdiff
path: root/t/unit-tests/u-hashmap.c
diff options
context:
space:
mode:
authorbrian m. carlson <sandals@crustytoothpaste.net>2025-10-09 21:56:19 +0000
committerJunio C Hamano <gitster@pobox.com>2025-10-09 17:46:14 -0700
commit6947ed321d271533237768354b64c145a8df1551 (patch)
treed7afa0760cfa48c24de8cc579237784d7d1627ee /t/unit-tests/u-hashmap.c
parent87264b7dde2be9e555243f0dce649b785407827e (diff)
docs: update offset order for pack index v3
The current design of pack index v3 has items in two different orders: sorted shortened object ID order and pack order. The shortened object IDs and the pack index offset values are in the former order and everything else is in the latter. This, however, poses some problems. We have many parts of the packfile code that expect to find out data about an object knowing only its index in pack order. With the current design, to find the pack offset after having looked up the index in pack order, we must then look up the full object ID and use that to look up the shortened object ID to find the pack offset, which is inconvenient, inefficient, and leads to poor cache usage. Instead, let's change the offset values to be looked up by pack order. This works better because once we know the pack order offset, we can find the full object name and its location in the pack with a simple index into their respective tables. This makes many operations much more efficient, especially with the functions we already have, and it avoids the need for the revindex with pack index v3. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/unit-tests/u-hashmap.c')
0 files changed, 0 insertions, 0 deletions