internals: minor rewriting of revlogs documentation
In preparation for formalizing revlog version 2.
Differential Revision: https://phab.mercurial-scm.org/D5558
--- a/mercurial/help/internals/revlogs.txt Thu Jan 10 19:25:07 2019 -0800
+++ b/mercurial/help/internals/revlogs.txt Wed Jan 09 15:33:44 2019 -0800
@@ -11,8 +11,8 @@
links to its *parent* entries. The collective metadata is referred
to as the *index* and the revision data is the *data*.
-Revision data is stored as a series of compressed deltas against previous
-revisions.
+Revision data is stored as a series of compressed deltas against
+ancestor revisions.
Revlogs are written in an append-only fashion. We never need to rewrite
a file to insert nor do we need to remove data. Rolling back in-progress
@@ -35,9 +35,6 @@
significant half of the integer is the format/version short. The other
short holds feature flags that dictate behavior of the revlog.
-Only 1 bit of the format/version short is currently used. Remaining
-bits are reserved for future use.
-
The following values for the format/version short are defined:
0
@@ -53,15 +50,24 @@
beyond 32-bit header.
The feature flags short consists of bit flags. Where 0 is the least
-significant bit, the following bit offsets define flags:
+significant bit. The bit flags vary by revlog version.
+
+Version 0 revlogs have no defined flags and the presence of a flag
+is considered an error.
+
+Version 1 revlogs have the following flags at the specified bit offsets:
0
Store revision data inline.
1
Generaldelta encoding.
-2-15
- Reserved for future use.
+Version 2 revlogs have the following flags at the specified bit offsets:
+
+0
+ Store revision data inline.
+1
+ Generaldelta encoding.
The following header values are common: