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(-)


To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to