This makes index-pack recognize pack v4. It still lacks: - the ability to walk through multi-base trees - thin pack support The first is not easy to solve imo and but does not impact us in short term because pack-objects probably will not learn to produce such trees any time soon. The second should be done after pack-objects can produce thin packs, else it's hard to verify that the code works as expected. This bases on Nico's tree, which does not really match the series this post is replied to due to some format changes. I don't know, maybe we could share more code with packv4-parse.c. Right now I just need something that works and somewhat maintainable. Nguyễn Thái Ngọc Duy (12): pack v4: split pv4_create_dict() out of load_dict() index-pack: split out varint decoding code index-pack: do not allocate buffer for unpacking deltas in the first pass index-pack: split inflate/digest code out of unpack_entry_data index-pack: parse v4 header and dictionaries index-pack: make sure all objects are registered in v4's SHA-1 table index-pack: parse v4 commit format index-pack: parse v4 tree format index-pack: move delta base queuing code to unpack_raw_entry index-pack: record all delta bases in v4 (tree and ref-delta) index-pack: skip looking for ofs-deltas in v4 as they are not allowed index-pack: resolve v4 one-base trees builtin/index-pack.c | 679 ++++++++++++++++++++++++++++++++++++++++++++------- packv4-parse.c | 63 ++--- packv4-parse.h | 8 + 3 files changed, 627 insertions(+), 123 deletions(-) -- 1.8.2.83.gc99314b -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html