git/Documentation/technical
Derrick Stolee 1e72e889e7 backfill: basic functionality and tests
The default behavior of 'git backfill' is to fetch all missing blobs that
are reachable from HEAD. Document and test this behavior.

The implementation is a very simple use of the path-walk API, initializing
the revision walk at HEAD to start the path-walk from all commits reachable
from HEAD. Ignore the object arrays that correspond to tree entries,
assuming that they are all present already.

The path-walk API provides lists of objects in batches according to a
common path, but that list could be very small. We want to balance the
number of requests to the server with the ability to have the process
interrupted with minimal repeated work to catch up in the next run.
Based on some experiments (detailed in the next change) a minimum batch
size of 50,000 is selected for the default.

This batch size is a _minimum_. As the path-walk API emits lists of blob
IDs, they are collected into a list of objects for a request to the
server. When that list is at least the minimum batch size, then the
request is sent to the server for the new objects. However, the list of
blob IDs from the path-walk API could be much longer than the batch
size. At this moment, it is unclear if there is a benefit to split the
list when there are too many objects at the same path.

Signed-off-by: Derrick Stolee <stolee@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-02-03 16:12:41 -08:00
..
.gitignore
api-error-handling.txt api docs: link to html version of api-trace2 2022-09-16 08:39:11 -07:00
api-index-skel.txt documentation: fix singular vs. plural 2023-10-09 12:06:29 -07:00
api-index.sh Documentation: refactor "api-index.sh" for out-of-tree builds 2024-12-27 08:28:10 -08:00
api-merge.txt merge-ll: rename from ll-merge 2023-06-21 13:39:54 -07:00
api-parse-options.txt Documentation: clean up various typos in technical docs 2022-09-21 10:28:36 -07:00
api-path-walk.txt backfill: basic functionality and tests 2025-02-03 16:12:41 -08:00
api-simple-ipc.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
api-trace2.txt trace2: implement trace2_printf() for event target 2024-08-22 15:02:31 -07:00
bitmap-format.txt Documentation/technical/bitmap-format.txt: add missing position table 2024-06-14 14:19:26 -07:00
build-systems.txt Documentation: add comparison of build systems 2024-12-07 07:52:13 +09:00
bundle-uri.txt bundle-uri: drop bundle.flag from design doc 2023-01-31 08:57:48 -08:00
commit-graph.txt documentation: fix typos 2023-10-09 12:06:24 -07:00
directory-rename-detection.txt
hash-function-transition.txt doc: consolidate extensions in git-config documentation 2024-10-22 12:49:32 -04:00
long-running-process-protocol.txt
meson.build meson: fix missing deps for technical articles 2025-01-14 11:17:35 -08:00
multi-pack-index.txt Documentation: describe incremental MIDX format 2024-08-06 12:01:35 -07:00
pack-heuristics.txt
packfile-uri.txt
parallel-checkout.txt documentation: add missing quotes 2023-10-09 12:06:47 -07:00
partial-clone.txt doc: consolidate extensions in git-config documentation 2024-10-22 12:49:32 -04:00
platform-support.txt docs: fix the `maintain-git` links in `technical/platform-support` 2024-10-07 15:34:16 -07:00
racy-git.txt documentation: fix singular vs. plural 2023-10-09 12:06:29 -07:00
reftable.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
remembering-renames.txt docs: typofixes 2023-06-12 13:52:51 -07:00
repository-version.txt doc: consolidate extensions in git-config documentation 2024-10-22 12:49:32 -04:00
rerere.txt documentation: remove extraneous words 2023-10-09 12:06:29 -07:00
scalar.txt
send-pack-pipeline.txt
shallow.txt
sparse-checkout.txt Documentation/technical: fix a typo 2024-09-23 12:40:52 -07:00
sparse-index.txt
trivial-merge.txt
unit-tests.txt t: import the clar unit testing framework 2024-09-04 08:41:36 -07:00