summaryrefslogtreecommitdiffstats
path: root/technical
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-09-20 15:46:08 -0700
committerJunio C Hamano <gitster@pobox.com>2021-09-20 15:46:08 -0700
commitde44de3d9e71db785a0bbd06a6ddad8d2c38dd67 (patch)
tree6ded4cd8380b37ba1b9144d972bf0a6217de78aa /technical
parentc6d56e8fea997f642ab3ba5e420139151d198f55 (diff)
downloadgit-htmldocs-de44de3d9e71db785a0bbd06a6ddad8d2c38dd67.tar.gz
Autogenerated HTML docs for v2.33.0-514-g99c99
Diffstat (limited to 'technical')
-rw-r--r--technical/api-error-handling.html2
-rw-r--r--technical/api-index.html2
-rw-r--r--technical/api-merge.html2
-rw-r--r--technical/api-parse-options.html2
-rw-r--r--technical/api-simple-ipc.html2
-rw-r--r--technical/api-trace2.html2
-rw-r--r--technical/bitmap-format.txt71
-rw-r--r--technical/hash-function-transition.html2
-rw-r--r--technical/http-protocol.html4
-rw-r--r--technical/http-protocol.txt3
-rw-r--r--technical/index-format.html2
-rw-r--r--technical/long-running-process-protocol.html2
-rw-r--r--technical/multi-pack-index.html12
-rw-r--r--technical/multi-pack-index.txt10
-rw-r--r--technical/pack-format.html2
-rw-r--r--technical/pack-heuristics.html2
-rw-r--r--technical/pack-protocol.html2
-rw-r--r--technical/parallel-checkout.html2
-rw-r--r--technical/partial-clone.html2
-rw-r--r--technical/protocol-capabilities.html2
-rw-r--r--technical/protocol-common.html2
-rw-r--r--technical/protocol-v2.html4
-rw-r--r--technical/protocol-v2.txt3
-rw-r--r--technical/racy-git.html2
-rw-r--r--technical/reftable.html2
-rw-r--r--technical/send-pack-pipeline.html2
-rw-r--r--technical/shallow.html2
-rw-r--r--technical/signature-format.html2
-rw-r--r--technical/trivial-merge.html2
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 &lt;key&gt; 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(&amp;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: &lt;capability-advertisement&gt;</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>