[PATCH RFC] internals: define revlog version 2

Jun Wu quark at fb.com
Tue May 16 12:34:51 EDT 2017



Excerpts from Gregory Szorc's message of 2017-05-15 22:15:49 -0700:
> [...]
> Note that in its current design, we /could/ shoehorn encoding related
> per-revision flags into revlog version 1. However, it is a bit
> constraining. You would need to design this such that a per-revision
> flag indicated the new behavior (such as to be compatible with the
> existing format). Then, you would need to define the encoding format
> outside of the revlog, such as in a repo requirements file. While
> certainly possible, I think this places too many constraints on
> operations. For example, we may want to encode changelogs differently
> from manifests differently from filelogs. We may even wish to encode
> different filelogs differently! Having the default encoding in the
> revlog itself buys you the flexibility to experiment with these
> changes easily.

Not directly related. But since we're designing a new revlog, I'd like to
get other known suboptimal design addressed too.

An important one in my head is filelog metadata, which leads to hacks and
inefficiencies. I think we need abstractions for storing revision and
metadata (and their sizes) separately.

> [...] 


More information about the Mercurial-devel mailing list