Re: reftable [v7]: new ref storage format
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 16, 2017, 21:05 UTC
- Message-ID
- <xmqq60dnjka0.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <CAJo=hJsZcAM9sipdVr7TMD-FD2V2W6_pvMQ791EGCDsDkQ033w@mail.gmail.com>
Shawn Pearce <spearce@spearce.org> writes:
Show 19 quoted lines
> 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.