Merge branch 'ma/doc-pack-format-varint-for-sizes'
Doc update. * ma/doc-pack-format-varint-for-sizes: pack-format.txt: document sizes at start of delta data
This commit is contained in:
commit
16a8055dae
@ -55,6 +55,18 @@ Valid object types are:
|
|||||||
|
|
||||||
Type 5 is reserved for future expansion. Type 0 is invalid.
|
Type 5 is reserved for future expansion. Type 0 is invalid.
|
||||||
|
|
||||||
|
=== Size encoding
|
||||||
|
|
||||||
|
This document uses the following "size encoding" of non-negative
|
||||||
|
integers: From each byte, the seven least significant bits are
|
||||||
|
used to form the resulting integer. As long as the most significant
|
||||||
|
bit is 1, this process continues; the byte with MSB 0 provides the
|
||||||
|
last seven bits. The seven-bit chunks are concatenated. Later
|
||||||
|
values are more significant.
|
||||||
|
|
||||||
|
This size encoding should not be confused with the "offset encoding",
|
||||||
|
which is also used in this document.
|
||||||
|
|
||||||
=== Deltified representation
|
=== Deltified representation
|
||||||
|
|
||||||
Conceptually there are only four object types: commit, tree, tag and
|
Conceptually there are only four object types: commit, tree, tag and
|
||||||
@ -73,7 +85,10 @@ Ref-delta can also refer to an object outside the pack (i.e. the
|
|||||||
so-called "thin pack"). When stored on disk however, the pack should
|
so-called "thin pack"). When stored on disk however, the pack should
|
||||||
be self contained to avoid cyclic dependency.
|
be self contained to avoid cyclic dependency.
|
||||||
|
|
||||||
The delta data is a sequence of instructions to reconstruct an object
|
The delta data starts with the size of the base object and the
|
||||||
|
size of the object to be reconstructed. These sizes are
|
||||||
|
encoded using the size encoding from above. The remainder of
|
||||||
|
the delta data is a sequence of instructions to reconstruct the object
|
||||||
from the base object. If the base object is deltified, it must be
|
from the base object. If the base object is deltified, it must be
|
||||||
converted to canonical form first. Each instruction appends more and
|
converted to canonical form first. Each instruction appends more and
|
||||||
more data to the target object until it's complete. There are two
|
more data to the target object until it's complete. There are two
|
||||||
|
Loading…
Reference in New Issue
Block a user