diff options
author | Junio C Hamano <gitster@pobox.com> | 2022-02-16 17:32:33 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-02-16 17:32:33 -0800 |
commit | f1fc6ca2d27889be2f7829e15054bc8067ae9bc6 (patch) | |
tree | 3fb51df8e90ddd23c17c8a61a25df915ca6e7d73 /technical | |
parent | 0170485c457d7e861874a761fb76ee8de1a79d89 (diff) | |
download | git-htmldocs-f1fc6ca2d27889be2f7829e15054bc8067ae9bc6.tar.gz |
Autogenerated HTML docs for v2.35.1-193-g45fe28
Diffstat (limited to 'technical')
-rw-r--r-- | technical/multi-pack-index.html | 9 | ||||
-rw-r--r-- | technical/multi-pack-index.txt | 1 | ||||
-rw-r--r-- | technical/pack-format.html | 17 | ||||
-rw-r--r-- | technical/pack-format.txt | 13 |
4 files changed, 26 insertions, 14 deletions
diff --git a/technical/multi-pack-index.html b/technical/multi-pack-index.html index 574fd6257..41c16d409 100644 --- a/technical/multi-pack-index.html +++ b/technical/multi-pack-index.html @@ -786,6 +786,13 @@ An offset within the jth packfile for the object. If large offsets are required, we use another list of large
offsets similar to version 2 pack-indexes.
</p>
+<div class="ulist"><ul>
+<li>
+<p>
+An optional list of objects in pseudo-pack order (used with MIDX bitmaps).
+</p>
+</li>
+</ul></div>
</li>
</ul></div>
<div class="paragraph"><p>Thus, we can provide O(log N) lookup time for any number
@@ -905,7 +912,7 @@ Packfiles can be marked as "special" using empty files that share <div id="footer">
<div id="footer-text">
Last updated
- 2021-12-10 14:52:03 PST
+ 2022-02-16 17:29:08 PST
</div>
</div>
</body>
diff --git a/technical/multi-pack-index.txt b/technical/multi-pack-index.txt index b39c69da8..f2221d2b4 100644 --- a/technical/multi-pack-index.txt +++ b/technical/multi-pack-index.txt @@ -24,6 +24,7 @@ and their offsets into multiple packfiles. It contains: ** An offset within the jth packfile for the object. * If large offsets are required, we use another list of large offsets similar to version 2 pack-indexes. +- An optional list of objects in pseudo-pack order (used with MIDX bitmaps). Thus, we can provide O(log N) lookup time for any number of packfiles. diff --git a/technical/pack-format.html b/technical/pack-format.html index f332f12ea..6f99008ae 100644 --- a/technical/pack-format.html +++ b/technical/pack-format.html @@ -1273,6 +1273,13 @@ otherwise specified.</code></pre> <pre><code>[Optional] Object Large Offsets (ID: {'L', 'O', 'F', 'F'})
8-byte offsets into large packfiles.</code></pre>
</div></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>[Optional] Bitmap pack order (ID: {'R', 'I', 'D', 'X'})
+ A list of MIDX positions (one per object in the MIDX, num_objects in
+ total, each a 4-byte unsigned integer in network byte order), sorted
+ according to their relative bitmap/pseudo-pack positions.</code></pre>
+</div></div>
<div class="paragraph"><p>TRAILER:</p></div>
<div class="literalblock">
<div class="content">
@@ -1359,12 +1366,8 @@ Otherwise, <code>pack(o1) = pack(o2)</code>, and the objects are sorted in <div class="paragraph"><p>In short, a MIDX’s pseudo-pack is the de-duplicated concatenation of
objects in packs stored by the MIDX, laid out in pack order, and the
packs arranged in MIDX order (with the preferred pack coming first).</p></div>
-<div class="paragraph"><p>Finally, note that the MIDX’s reverse index is not stored as a chunk in
-the multi-pack-index itself. This is done because the reverse index
-includes the checksum of the pack or MIDX to which it belongs, which
-makes it impossible to write in the MIDX. To avoid races when rewriting
-the MIDX, a MIDX reverse index includes the MIDX’s checksum in its
-filename (e.g., <code>multi-pack-index-xyz.rev</code>).</p></div>
+<div class="paragraph"><p>The MIDX’s reverse index is stored in the optional <em>RIDX</em> chunk within
+the MIDX itself.</p></div>
</div>
</div>
</div>
@@ -1372,7 +1375,7 @@ filename (e.g., <code>multi-pack-index-xyz.rev</code>).</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2021-04-08 14:46:44 PDT
+ 2022-02-16 17:29:08 PST
</div>
</div>
</body>
diff --git a/technical/pack-format.txt b/technical/pack-format.txt index 8d2f42f29..6d3efb7d1 100644 --- a/technical/pack-format.txt +++ b/technical/pack-format.txt @@ -376,6 +376,11 @@ CHUNK DATA: [Optional] Object Large Offsets (ID: {'L', 'O', 'F', 'F'}) 8-byte offsets into large packfiles. + [Optional] Bitmap pack order (ID: {'R', 'I', 'D', 'X'}) + A list of MIDX positions (one per object in the MIDX, num_objects in + total, each a 4-byte unsigned integer in network byte order), sorted + according to their relative bitmap/pseudo-pack positions. + TRAILER: Index checksum of the above contents. @@ -456,9 +461,5 @@ In short, a MIDX's pseudo-pack is the de-duplicated concatenation of objects in packs stored by the MIDX, laid out in pack order, and the packs arranged in MIDX order (with the preferred pack coming first). -Finally, note that the MIDX's reverse index is not stored as a chunk in -the multi-pack-index itself. This is done because the reverse index -includes the checksum of the pack or MIDX to which it belongs, which -makes it impossible to write in the MIDX. To avoid races when rewriting -the MIDX, a MIDX reverse index includes the MIDX's checksum in its -filename (e.g., `multi-pack-index-xyz.rev`). +The MIDX's reverse index is stored in the optional 'RIDX' chunk within +the MIDX itself. |