git-commit-vandalism/Documentation/technical
Taylor Blau 9218c6a40c midx: allow marking a pack as preferred
When multiple packs in the multi-pack index contain the same object, the
MIDX machinery must make a choice about which pack it associates with
that object. Prior to this patch, the lowest-ordered[1] pack was always
selected.

Pack selection for duplicate objects is relatively unimportant today,
but it will become important for multi-pack bitmaps. This is because we
can only invoke the pack-reuse mechanism when all of the bits for reused
objects come from the reuse pack (in order to ensure that all reused
deltas can find their base objects in the same pack).

To encourage the pack selection process to prefer one pack over another
(the pack to be preferred is the one a caller would like to later use as
a reuse pack), introduce the concept of a "preferred pack". When
provided, the MIDX code will always prefer an object found in a
preferred pack over any other.

No format changes are required to store the preferred pack, since it
will be able to be inferred with a corresponding MIDX bitmap, by looking
up the pack associated with the object in the first bit position (this
ordering is described in detail in a subsequent commit).

[1]: the ordering is specified by MIDX internals; for our purposes we
can consider the "lowest ordered" pack to be "the one with the
most-recent mtime.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-04-01 13:07:37 -07:00
..
.gitignore
api-error-handling.txt
api-index-skel.txt
api-index.sh
api-merge.txt
api-parse-options.txt strvec: update documention to avoid argv_array 2020-07-28 15:02:18 -07:00
api-trace2.txt usage: add trace2 entry upon warning() 2020-11-24 17:39:38 -08:00
bitmap-format.txt
bundle-format.txt bundle: add new version for use with SHA-256 2020-07-30 09:16:48 -07:00
chunk-format.txt chunk-format: add technical docs 2021-02-18 13:38:16 -08:00
commit-graph-format.txt chunk-format: add technical docs 2021-02-18 13:38:16 -08:00
commit-graph.txt doc: add corrected commit date info 2021-01-18 16:21:18 -08:00
directory-rename-detection.txt t6423: more involved rules for renaming directories into each other 2020-10-16 12:29:28 -07:00
hash-function-transition.txt doc: use https links 2021-02-05 11:57:10 -08:00
http-protocol.txt http-protocol.txt: document SHA-256 "want"/"have" format 2020-08-17 10:35:12 -07:00
index-format.txt index-format: discuss recursion of cache-tree better 2021-01-15 23:04:59 -08:00
long-running-process-protocol.txt
multi-pack-index.txt midx: allow marking a pack as preferred 2021-04-01 13:07:37 -07:00
pack-format.txt Merge branch 'ds/chunked-file-api' into tb/reverse-midx 2021-02-24 15:26:14 -08:00
pack-heuristics.txt
pack-protocol.txt Merge branch 'jx/proc-receive-hook' 2020-09-25 15:25:39 -07:00
packfile-uri.txt Doc: clarify contents of packfile sent as URI 2021-01-20 19:06:50 -08:00
partial-clone.txt promisor-remote: lazy-fetch objects in subprocess 2020-08-18 16:46:53 -07:00
protocol-capabilities.txt docs: new capability to advertise session IDs 2020-11-11 18:26:52 -08:00
protocol-common.txt
protocol-v2.txt ls-refs: report unborn targets of symrefs 2021-02-05 13:49:53 -08:00
racy-git.txt doc: replace LKML link with lore.kernel.org 2019-12-04 10:26:52 -08:00
reftable.txt doc: fix some typos 2021-01-04 11:27:48 -08:00
repository-version.txt
rerere.txt
send-pack-pipeline.txt
shallow.txt shallow.txt: document SHA-256 shallow format 2020-08-17 10:35:13 -07:00
signature-format.txt
trivial-merge.txt