diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-09-20 15:46:08 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-09-20 15:46:08 -0700 |
commit | de44de3d9e71db785a0bbd06a6ddad8d2c38dd67 (patch) | |
tree | 6ded4cd8380b37ba1b9144d972bf0a6217de78aa /technical | |
parent | c6d56e8fea997f642ab3ba5e420139151d198f55 (diff) | |
download | git-htmldocs-de44de3d9e71db785a0bbd06a6ddad8d2c38dd67.tar.gz |
Autogenerated HTML docs for v2.33.0-514-g99c99
Diffstat (limited to 'technical')
29 files changed, 98 insertions, 53 deletions
diff --git a/technical/api-error-handling.html b/technical/api-error-handling.html index 8cf595ae0..cd5d79c8f 100644 --- a/technical/api-error-handling.html +++ b/technical/api-error-handling.html @@ -857,7 +857,7 @@ a message, pass a strbuf that is explicitly ignored:</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2021-04-29 23:03:30 PDT
+ 2021-04-29 23:16:11 PDT
</div>
</div>
</body>
diff --git a/technical/api-index.html b/technical/api-index.html index 92e189bcc..1d2a4aa68 100644 --- a/technical/api-index.html +++ b/technical/api-index.html @@ -775,7 +775,7 @@ documents them.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2021-08-16 14:18:44 PDT
+ 2021-09-20 15:44:13 PDT
</div>
</div>
</body>
diff --git a/technical/api-merge.html b/technical/api-merge.html index b2ddb05bd..1ba0328d2 100644 --- a/technical/api-merge.html +++ b/technical/api-merge.html @@ -801,7 +801,7 @@ and <code>diff.c</code> for examples.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2020-03-10 08:03:13 PDT
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/api-parse-options.html b/technical/api-parse-options.html index f22b69fc1..16293e240 100644 --- a/technical/api-parse-options.html +++ b/technical/api-parse-options.html @@ -1290,7 +1290,7 @@ for real-world examples.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2020-08-10 16:30:08 PDT
+ 2020-08-10 16:45:05 PDT
</div>
</div>
</body>
diff --git a/technical/api-simple-ipc.html b/technical/api-simple-ipc.html index d99956601..ca42461fa 100644 --- a/technical/api-simple-ipc.html +++ b/technical/api-simple-ipc.html @@ -840,7 +840,7 @@ layer to focus on the application at hand.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2021-04-02 15:10:10 PDT
+ 2021-04-02 18:34:47 PDT
</div>
</div>
</body>
diff --git a/technical/api-trace2.html b/technical/api-trace2.html index 97bffdf59..86a4886bd 100644 --- a/technical/api-trace2.html +++ b/technical/api-trace2.html @@ -2175,7 +2175,7 @@ Trace2 targets (and convert <key> to a "category"). <div id="footer">
<div id="footer-text">
Last updated
- 2021-08-24 16:18:46 PDT
+ 2021-08-24 17:58:56 PDT
</div>
</div>
</body>
diff --git a/technical/bitmap-format.txt b/technical/bitmap-format.txt index f8c18a0f7..04b3ec217 100644 --- a/technical/bitmap-format.txt +++ b/technical/bitmap-format.txt @@ -1,6 +1,44 @@ GIT bitmap v1 format ==================== +== Pack and multi-pack bitmaps + +Bitmaps store reachability information about the set of objects in a packfile, +or a multi-pack index (MIDX). The former is defined obviously, and the latter is +defined as the union of objects in packs contained in the MIDX. + +A bitmap may belong to either one pack, or the repository's multi-pack index (if +it exists). A repository may have at most one bitmap. + +An object is uniquely described by its bit position within a bitmap: + + - If the bitmap belongs to a packfile, the __n__th bit corresponds to + the __n__th object in pack order. For a function `offset` which maps + objects to their byte offset within a pack, pack order is defined as + follows: + + o1 <= o2 <==> offset(o1) <= offset(o2) + + - If the bitmap belongs to a MIDX, the __n__th bit corresponds to the + __n__th object in MIDX order. With an additional function `pack` which + maps objects to the pack they were selected from by the MIDX, MIDX order + is defined as follows: + + o1 <= o2 <==> pack(o1) <= pack(o2) /\ offset(o1) <= offset(o2) + + The ordering between packs is done according to the MIDX's .rev file. + Notably, the preferred pack sorts ahead of all other packs. + +The on-disk representation (described below) of a bitmap is the same regardless +of whether or not that bitmap belongs to a packfile or a MIDX. The only +difference is the interpretation of the bits, which is described above. + +Certain bitmap extensions are supported (see: Appendix B). No extensions are +required for bitmaps corresponding to packfiles. For bitmaps that correspond to +MIDXs, both the bit-cache and rev-cache extensions are required. + +== On-disk format + - A header appears at the beginning: 4-byte signature: {'B', 'I', 'T', 'M'} @@ -14,17 +52,19 @@ GIT bitmap v1 format The following flags are supported: - BITMAP_OPT_FULL_DAG (0x1) REQUIRED - This flag must always be present. It implies that the bitmap - index has been generated for a packfile with full closure - (i.e. where every single object in the packfile can find - its parent links inside the same packfile). This is a - requirement for the bitmap index format, also present in JGit, - that greatly reduces the complexity of the implementation. + This flag must always be present. It implies that the + bitmap index has been generated for a packfile or + multi-pack index (MIDX) with full closure (i.e. where + every single object in the packfile/MIDX can find its + parent links inside the same packfile/MIDX). This is a + requirement for the bitmap index format, also present in + JGit, that greatly reduces the complexity of the + implementation. - BITMAP_OPT_HASH_CACHE (0x4) If present, the end of the bitmap file contains `N` 32-bit name-hash values, one per object in the - pack. The format and meaning of the name-hash is + pack/MIDX. The format and meaning of the name-hash is described below. 4-byte entry count (network byte order) @@ -33,7 +73,8 @@ GIT bitmap v1 format 20-byte checksum - The SHA1 checksum of the pack this bitmap index belongs to. + The SHA1 checksum of the pack/MIDX this bitmap index + belongs to. - 4 EWAH bitmaps that act as type indexes @@ -50,7 +91,7 @@ GIT bitmap v1 format - Tags In each bitmap, the `n`th bit is set to true if the `n`th object - in the packfile is of that type. + in the packfile or multi-pack index is of that type. The obvious consequence is that the OR of all 4 bitmaps will result in a full set (all bits set), and the AND of all 4 bitmaps will @@ -62,8 +103,9 @@ GIT bitmap v1 format Each entry contains the following: - 4-byte object position (network byte order) - The position **in the index for the packfile** where the - bitmap for this commit is found. + The position **in the index for the packfile or + multi-pack index** where the bitmap for this commit is + found. - 1-byte XOR-offset The xor offset used to compress this bitmap. For an entry @@ -146,10 +188,11 @@ Name-hash cache --------------- If the BITMAP_OPT_HASH_CACHE flag is set, the end of the bitmap contains -a cache of 32-bit values, one per object in the pack. The value at +a cache of 32-bit values, one per object in the pack/MIDX. The value at position `i` is the hash of the pathname at which the `i`th object -(counting in index order) in the pack can be found. This can be fed -into the delta heuristics to compare objects with similar pathnames. +(counting in index or multi-pack index order) in the pack/MIDX can be found. +This can be fed into the delta heuristics to compare objects with similar +pathnames. The hash algorithm used is: diff --git a/technical/hash-function-transition.html b/technical/hash-function-transition.html index eff8f554c..99f5a33fe 100644 --- a/technical/hash-function-transition.html +++ b/technical/hash-function-transition.html @@ -2087,7 +2087,7 @@ See the history of this file in git.git for the history of subsequent <div id="footer">
<div id="footer-text">
Last updated
- 2021-07-13 17:37:55 PDT
+ 2021-07-14 15:10:10 PDT
</div>
</div>
</body>
diff --git a/technical/http-protocol.html b/technical/http-protocol.html index d3b848ce4..3e2af9fad 100644 --- a/technical/http-protocol.html +++ b/technical/http-protocol.html @@ -951,6 +951,8 @@ S: 0000</code></pre> <div class="paragraph"><p>The client may send Extra Parameters (see
Documentation/technical/pack-protocol.txt) as a colon-separated string
in the Git-Protocol HTTP header.</p></div>
+<div class="paragraph"><p>Uses the <code>--http-backend-info-refs</code> option to
+<a href="../git-upload-pack.html">git-upload-pack(1)</a>.</p></div>
<div class="sect3">
<h4 id="_dumb_server_response">Dumb Server Response</h4>
<div class="paragraph"><p>Dumb servers MUST respond with the dumb server reply format.</p></div>
@@ -1248,7 +1250,7 @@ link:technical/protocol-capabilities.html</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2020-08-19 16:37:10 PDT
+ 2021-09-20 15:44:03 PDT
</div>
</div>
</body>
diff --git a/technical/http-protocol.txt b/technical/http-protocol.txt index 96d89ea9b..cc5126cfe 100644 --- a/technical/http-protocol.txt +++ b/technical/http-protocol.txt @@ -225,6 +225,9 @@ The client may send Extra Parameters (see Documentation/technical/pack-protocol.txt) as a colon-separated string in the Git-Protocol HTTP header. +Uses the `--http-backend-info-refs` option to +linkgit:git-upload-pack[1]. + Dumb Server Response ^^^^^^^^^^^^^^^^^^^^ Dumb servers MUST respond with the dumb server reply format. diff --git a/technical/index-format.html b/technical/index-format.html index ded27b5ce..0c5784a85 100644 --- a/technical/index-format.html +++ b/technical/index-format.html @@ -1464,7 +1464,7 @@ this extension.</code></pre> <div id="footer">
<div id="footer-text">
Last updated
- 2021-04-29 23:03:30 PDT
+ 2021-04-29 23:16:11 PDT
</div>
</div>
</body>
diff --git a/technical/long-running-process-protocol.html b/technical/long-running-process-protocol.html index 730362be7..53466767a 100644 --- a/technical/long-running-process-protocol.html +++ b/technical/long-running-process-protocol.html @@ -795,7 +795,7 @@ process has stopped.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2020-03-10 08:03:13 PDT
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/multi-pack-index.html b/technical/multi-pack-index.html index 4c337fbfd..9b9e25afe 100644 --- a/technical/multi-pack-index.html +++ b/technical/multi-pack-index.html @@ -864,14 +864,10 @@ The multi-pack-index allows many packfiles, especially in a context </li>
<li>
<p>
-The reachability bitmap is currently paired directly with a single
- packfile, using the pack-order as the object order to hopefully
- compress the bitmaps well using run-length encoding. This could be
- extended to pair a reachability bitmap with a multi-pack-index. If
- the multi-pack-index is extended to store a "stable object order"
+If the multi-pack-index is extended to store a "stable object order"
(a function Order(hash) = integer that is constant for a given hash,
- even as the multi-pack-index is updated) then a reachability bitmap
- could point to a multi-pack-index and be updated independently.
+ even as the multi-pack-index is updated) then MIDX bitmaps could be
+ updated independently of the MIDX.
</p>
</li>
<li>
@@ -913,7 +909,7 @@ The partial clone feature records special "promisor" packs that <div id="footer">
<div id="footer-text">
Last updated
- 2021-04-08 14:45:29 PDT
+ 2021-09-20 15:44:03 PDT
</div>
</div>
</body>
diff --git a/technical/multi-pack-index.txt b/technical/multi-pack-index.txt index fb688976c..1a73c3ee2 100644 --- a/technical/multi-pack-index.txt +++ b/technical/multi-pack-index.txt @@ -71,14 +71,10 @@ Future Work still reducing the number of binary searches required for object lookups. -- The reachability bitmap is currently paired directly with a single - packfile, using the pack-order as the object order to hopefully - compress the bitmaps well using run-length encoding. This could be - extended to pair a reachability bitmap with a multi-pack-index. If - the multi-pack-index is extended to store a "stable object order" +- If the multi-pack-index is extended to store a "stable object order" (a function Order(hash) = integer that is constant for a given hash, - even as the multi-pack-index is updated) then a reachability bitmap - could point to a multi-pack-index and be updated independently. + even as the multi-pack-index is updated) then MIDX bitmaps could be + updated independently of the MIDX. - Packfiles can be marked as "special" using empty files that share the initial name but replace ".pack" with ".keep" or ".promisor". diff --git a/technical/pack-format.html b/technical/pack-format.html index b3002425b..d28ea6f5d 100644 --- a/technical/pack-format.html +++ b/technical/pack-format.html @@ -1372,7 +1372,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:45:29 PDT
+ 2021-04-08 14:46:44 PDT
</div>
</div>
</body>
diff --git a/technical/pack-heuristics.html b/technical/pack-heuristics.html index 3e6da3f62..4257c61fb 100644 --- a/technical/pack-heuristics.html +++ b/technical/pack-heuristics.html @@ -1343,7 +1343,7 @@ so obvious that they never go anywhere.</code></pre> <div id="footer">
<div id="footer-text">
Last updated
- 2014-01-13 15:35:15 PST
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/pack-protocol.html b/technical/pack-protocol.html index ff3743398..5a86d3bb3 100644 --- a/technical/pack-protocol.html +++ b/technical/pack-protocol.html @@ -1470,7 +1470,7 @@ can be rejected.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2020-09-25 15:47:14 PDT
+ 2020-09-27 15:31:51 PDT
</div>
</div>
</body>
diff --git a/technical/parallel-checkout.html b/technical/parallel-checkout.html index 47ef20dda..c1e5e79ca 100644 --- a/technical/parallel-checkout.html +++ b/technical/parallel-checkout.html @@ -1075,7 +1075,7 @@ err |= run_parallel_checkout(&state, pc_workers, pc_threshold, NULL, NULL);< <div id="footer">
<div id="footer-text">
Last updated
- 2021-04-29 23:03:30 PDT
+ 2021-04-29 23:16:11 PDT
</div>
</div>
</body>
diff --git a/technical/partial-clone.html b/technical/partial-clone.html index 628de3281..4845a681d 100644 --- a/technical/partial-clone.html +++ b/technical/partial-clone.html @@ -1206,7 +1206,7 @@ type of packfile that references it.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2021-07-13 17:37:55 PDT
+ 2021-07-14 15:10:10 PDT
</div>
</div>
</body>
diff --git a/technical/protocol-capabilities.html b/technical/protocol-capabilities.html index 19fe6aad9..234850f47 100644 --- a/technical/protocol-capabilities.html +++ b/technical/protocol-capabilities.html @@ -1130,7 +1130,7 @@ the session ID should not rely on this fact.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2020-12-08 16:10:07 PST
+ 2020-12-14 13:07:53 PST
</div>
</div>
</body>
diff --git a/technical/protocol-common.html b/technical/protocol-common.html index cec9937e6..8f369142b 100644 --- a/technical/protocol-common.html +++ b/technical/protocol-common.html @@ -859,7 +859,7 @@ pkt-line ("0004").</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2016-08-31 14:16:00 PDT
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/protocol-v2.html b/technical/protocol-v2.html index bcd916fa3..7e498db46 100644 --- a/technical/protocol-v2.html +++ b/technical/protocol-v2.html @@ -856,6 +856,8 @@ S: <capability-advertisement></code></pre> </div></div>
<div class="paragraph"><p>Subsequent requests are then made directly to the service
<code>$GIT_URL/git-upload-pack</code>. (This works the same for git-receive-pack).</p></div>
+<div class="paragraph"><p>Uses the <code>--http-backend-info-refs</code> option to
+<a href="../git-upload-pack.html">git-upload-pack(1)</a>.</p></div>
</div>
</div>
</div>
@@ -1463,7 +1465,7 @@ and associated requested information, each separated by a single space.</p></div <div id="footer">
<div id="footer-text">
Last updated
- 2021-07-13 17:37:55 PDT
+ 2021-09-20 15:44:03 PDT
</div>
</div>
</body>
diff --git a/technical/protocol-v2.txt b/technical/protocol-v2.txt index 1040d8531..213538f1d 100644 --- a/technical/protocol-v2.txt +++ b/technical/protocol-v2.txt @@ -81,6 +81,9 @@ A v2 server would reply: Subsequent requests are then made directly to the service `$GIT_URL/git-upload-pack`. (This works the same for git-receive-pack). +Uses the `--http-backend-info-refs` option to +linkgit:git-upload-pack[1]. + Capability Advertisement ------------------------ diff --git a/technical/racy-git.html b/technical/racy-git.html index 0e870544c..55ae349f8 100644 --- a/technical/racy-git.html +++ b/technical/racy-git.html @@ -952,7 +952,7 @@ practice anymore. This was done with commit 0fc82cff on Aug 15, <div id="footer">
<div id="footer-text">
Last updated
- 2020-03-10 08:03:13 PDT
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/reftable.html b/technical/reftable.html index c7adec5e7..1d1fdcb2c 100644 --- a/technical/reftable.html +++ b/technical/reftable.html @@ -2056,7 +2056,7 @@ impossible.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2021-04-29 23:03:30 PDT
+ 2021-04-29 23:16:11 PDT
</div>
</div>
</body>
diff --git a/technical/send-pack-pipeline.html b/technical/send-pack-pipeline.html index 234792c5c..42a1205d1 100644 --- a/technical/send-pack-pipeline.html +++ b/technical/send-pack-pipeline.html @@ -827,7 +827,7 @@ closes the reading side of the pipe and fd to receive-pack.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2013-08-20 08:40:27 PDT
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/shallow.html b/technical/shallow.html index 70a8cda86..e6fe74838 100644 --- a/technical/shallow.html +++ b/technical/shallow.html @@ -813,7 +813,7 @@ number a signed 32-bit integer can contain) means infinite depth.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2020-08-19 16:37:10 PDT
+ 2020-08-19 22:10:31 PDT
</div>
</div>
</body>
diff --git a/technical/signature-format.html b/technical/signature-format.html index 89583e260..f3958d168 100644 --- a/technical/signature-format.html +++ b/technical/signature-format.html @@ -997,7 +997,7 @@ Date: Wed Jun 15 09:13:29 2016 +0000 <div id="footer">
<div id="footer-text">
Last updated
- 2016-07-06 14:33:48 PDT
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
diff --git a/technical/trivial-merge.html b/technical/trivial-merge.html index 7d3c80188..ae128a2c9 100644 --- a/technical/trivial-merge.html +++ b/technical/trivial-merge.html @@ -856,7 +856,7 @@ the automatic merge will generally give this effect.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2017-09-10 01:38:46 PDT
+ 2020-03-10 15:02:33 PDT
</div>
</div>
</body>
|