Shawn Pearce <spearce@xxxxxxxxxxx> writes: > 7th iteration of the reftable storage format. > > You can read a rendered version of this here: > https://googlers.googlesource.com/sop/jgit/+/reftable/Documentation/technical/reftable.md > > Changes from v6: > - Blocks are variable sized, and alignment is optional. > - ref index is required on variable sized multi-block files. > > - restart_count/offsets are again at the end of the block. > - value_type = 0x3 is only for symbolic references. > - "other" files cannot be stored in reftable. > > - object blocks are explicitly optional. > - object blocks use position (offset in bytes), not block id. > - removed complex log_chained format for log blocks > > - Layout uses log, ref file extensions > - Described reader algorithm to obtain a snapshot I read this version through pretending that I never read the previous iterations, and it still made sense to me, which is a good indication that the document is well self contained. I think I agree with all the simplication from v6. I found it a slightly odd that we do not insist that update_indices that appear in a single reftable file are consecutive, yet we require that min_update_index of a reftable file must be one greater than the max_update_index of a previous one. That is not a new issue in v7, though. Thanks.