This series describes and implements a reverse index for the multi-pack index, based on a "pseudo-pack" which can be uniquely described by the multi-pack index. The details of the pseudo-pack, and multi-pack reverse index are laid out in detail in the sixth patch. This is in support of multi-pack reachability bitmaps, which contain objects from the multi-pack index. Likewise, an object's bit position in a multi-pack reachability bitmap is determined by its position with that multi-pack index's pseudo pack. In this series, there are no users of the multi-pack index, so this series is mainly about laying the groundwork for implementing multi-pack bitmaps. This series is the final prerequisite needed before we can implement multi-pack bitmaps, which will come in the next series[1]. Since tb/pack-revindex-on-disk is queued to be merged to 'master', but hasn't yet been merged, this series is based on that branch. Thanks in advance for your review of this series, and all of the many other series in support of multi-pack bitmaps. [1]: If you're curious, you can find the patches in the tb/multi-pack-bitmaps branch of my fork at https://github.com/ttaylorr/git. Taylor Blau (9): t/helper/test-read-midx.c: add '--show-objects' midx: allow marking a pack as preferred midx: don't free midx_name early midx: keep track of the checksum midx: make some functions non-static Documentation/technical: describe multi-pack reverse indexes pack-revindex: read multi-pack reverse indexes pack-write.c: extract 'write_rev_file_order' pack-revindex: write multi-pack reverse indexes Documentation/git-multi-pack-index.txt | 11 +- Documentation/technical/multi-pack-index.txt | 5 +- Documentation/technical/pack-format.txt | 83 +++++++ builtin/multi-pack-index.c | 10 +- builtin/repack.c | 2 +- midx.c | 239 ++++++++++++++++++- midx.h | 11 +- pack-revindex.c | 112 +++++++++ pack-revindex.h | 46 ++++ pack-write.c | 39 ++- pack.h | 1 + packfile.c | 3 + t/helper/test-read-midx.c | 24 +- t/t5319-multi-pack-index.sh | 39 +++ 14 files changed, 591 insertions(+), 34 deletions(-) -- 2.30.0.667.g81c0cbc6fd