What's cooking (2026/05 #08)
diff --git a/whats-cooking.txt b/whats-cooking.txt
index 13195fb..326449e 100644
--- a/whats-cooking.txt
+++ b/whats-cooking.txt
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
-Subject: What's cooking in git.git (May 2026, #07)
-X-master-at: 56a4f3c3a221adf1df9b39da69b8a6890f803157
-X-next-at: 208068f2d8ae29d7edaa245d9975b1b22ec65738
+Subject: What's cooking in git.git (May 2026, #08)
+X-master-at: c69baaf57ba26cf117c2b6793802877f19738b0d
+X-next-at: 2f8565e1d14d2de4cfbc9da0132131bf0d0dc087
 Bcc: lwn@lwn.net, gitster@pobox.com
 
-What's cooking in git.git (May 2026, #07)
+What's cooking in git.git (May 2026, #08)
 -----------------------------------------
 
 Here are the topics that have been cooking in my tree.  Commits
@@ -48,69 +48,241 @@
 --------------------------------------------------
 [Graduated to 'master']
 
-* ag/sequencer-remove-unused-struct-member (2026-05-11) 1 commit
-  (merged to 'next' on 2026-05-17 at 8553437ae1)
- + sequencer: remove todo_add_branch_context.commit
+* ds/fetch-negotiation-options (2026-05-19) 8 commits
+  (merged to 'next' on 2026-05-21 at ff57fd9c97)
+ + send-pack: pass negotiation config in push
+ + remote: add remote.*.negotiationInclude config
+ + fetch: add --negotiation-include option for negotiation
+ + negotiator: add have_sent() interface
+ + remote: add remote.*.negotiationRestrict config
+ + transport: rename negotiation_tips
+ + fetch: add --negotiation-restrict option
+ + t5516: fix test order flakiness
 
- Code clean-up.
- cf. <agLKVn6RF4UBYd_8@pks.im>
- source: <pull.2111.git.1778502113485.gitgitgadget@gmail.com>
+ The negotiation tip options in "git fetch" have been reworked to
+ allow requiring certain refs to be sent as "have" lines, and to
+ restrict negotiation to a specific set of refs.
+ source: <pull.2085.v6.git.1779207896.gitgitgadget@gmail.com>
 
 
-* dk/doc-exclude-is-shared-per-repo (2026-05-12) 1 commit
-  (merged to 'next' on 2026-05-17 at ddc761aec6)
- + ignore: note info/exclude lives in GIT_COMMON_DIR, not GIT_DIR
+* en/batch-prefetch (2026-05-14) 4 commits
+  (merged to 'next' on 2026-05-20 at 722acf81c8)
+ + grep: prefetch necessary blobs
+ + builtin/log: prefetch necessary blobs for `git cherry`
+ + patch-ids.h: add missing trailing parenthesis in documentation comment
+ + promisor-remote: document caller filtering contract
 
- Document the fact that .git/info/exclude is shared across worktrees
- linked to the same repository.
- cf. <bea48414-217b-4860-9279-fe94e3687c28@gmail.com>
- source: <ec97ad3f054e90b675f099a36a81a23bb4b2a0ed.1778620784.git.ben.knoble+github@gmail.com>
+ In a lazy clone, "git cherry" and "git grep" often fetch necessary
+ blob objects one by one from promisor remotes.  It has been corrected
+ to collect necessary object names and fetch them in bulk to gain
+ reasonable performance.
+ cf. <0da4f159-8d4b-49e2-93c1-25aa0bf69371@gmail.com>
+ source: <pull.2089.v3.git.1778775928.gitgitgadget@gmail.com>
 
 
-* jk/dumb-http-alternate-fix (2026-05-12) 1 commit
-  (merged to 'next' on 2026-05-17 at c1a51214fb)
- + http: handle absolute-path alternates from server root
+* jk/sq-dequote-cleanup (2026-05-18) 3 commits
+  (merged to 'next' on 2026-05-21 at fbedf2daea)
+ + quote: simplify internals of dequoting
+ + quote: drop sq_dequote_to_argv()
+ + quote.h: bump strvec forward declaration to the top
 
- The HTTP walker misinterpreted the alternates file that gives an
- absolute path when the server URL does not have the final slash
- (i.e., "https://example.com" not "https://example.com/").
- source: <20260512162619.GA69813@coredump.intra.peff.net>
+ Code simplification.
+ source: <20260519011837.GA1615637@coredump.intra.peff.net>
 
 
-* jk/pretty-no-strbuf-presizing (2026-05-12) 1 commit
-  (merged to 'next' on 2026-05-17 at ee684c614f)
- + pretty: drop strbuf pre-sizing from add_rfc2047()
+* jt/odb-transaction-write (2026-05-14) 7 commits
+  (merged to 'next' on 2026-05-21 at 61108abe4d)
+ + odb/transaction: make `write_object_stream()` pluggable
+ + object-file: generalize packfile writes to use odb_write_stream
+ + object-file: avoid fd seekback by checking object size upfront
+ + object-file: remove flags from transaction packfile writes
+ + odb: update `struct odb_write_stream` read() callback
+ + odb/transaction: use pluggable `begin_transaction()`
+ + odb: split `struct odb_transaction` into separate header
+ (this branch is used by ps/odb-in-memory and ps/odb-source-loose.)
 
- Remove ineffective strbuf presizing that would have computed an
- allocation that would not have fit in the available memory anyway,
- or too small due to integer wraparound to cause immediate automatic
- growing.
- source: <20260512162022.GA69669@coredump.intra.peff.net>
+ ODB transaction interface is being reworked to explicitly handle
+ object writes.
+ source: <20260514183740.1505171-1-jltobler@gmail.com>
 
 
-* kk/paint-down-to-common-optim (2026-05-11) 2 commits
-  (merged to 'next' on 2026-05-17 at 2e39c767e5)
- + commit-reach: early exit paint_down_to_common for single merge-base
- + commit-reach: introduce merge_base_flags enum
+* kk/limit-list-optim (2026-05-14) 1 commit
+  (merged to 'next' on 2026-05-19 at f17450dd1b)
+ + revision: use priority queue in limit_list()
 
- "git merge-base" optimization.
- source: <pull.2109.v4.git.1778504352.gitgitgadget@gmail.com>
+ The limit_list() function that is one of the core part of the
+ revision traversal infrastructure has been optimized by replacing
+ its use of linear list with priority queue.
+ source: <pull.2114.git.1778777491939.gitgitgadget@gmail.com>
 
 
-* mm/diff-U-takes-no-negative-values (2026-05-12) 4 commits
-  (merged to 'next' on 2026-05-17 at d81439a049)
- + parse-options: clarify what "negated" means for PARSE_OPT_NONEG
- + xdiff: guard against negative context lengths
- + diff: reject negative values for -U/--unified
- + diff: reject negative values for --inter-hunk-context
+* kk/merge-octopus-optim (2026-05-11) 1 commit
+  (merged to 'next' on 2026-05-20 at afe427dc66)
+ + merge: use repo_in_merge_bases for octopus up-to-date check
 
- The command line parser for "git diff" learned a few options take
- only non-negative integers.
- source: <pull.2105.v2.git.1778609423.gitgitgadget@gmail.com>
+ The logic to determine that branches in an octopus merge are
+ independent has been optimized.
+ cf. <c5b333f1-0db6-4aec-a369-6503cb924e7f@gmail.com>
+ source: <pull.2110.git.1778566286543.gitgitgadget@gmail.com>
+
+
+* kn/refs-fsck-skip-lock-files (2026-05-17) 1 commit
+  (merged to 'next' on 2026-05-21 at 91e30e3543)
+ + refs/files: skip lock files during consistency checks
+
+ The consistency checks for the files reference backend have been updated
+ to skip lock files earlier, avoiding unnecessary parsing of
+ intermediate files.
+ source: <20260517-refs-fsck-skip-lock-files-v3-1-b24dfd673c7e@gmail.com>
+
+
+* pb/doc-diff-format-updates (2026-05-15) 3 commits
+  (merged to 'next' on 2026-05-20 at fe8d31e9f9)
+ + diff-format.adoc: mode and hash are 0* for unmerged paths from index only
+ + diff-format.adoc: 'git diff-files' prints two lines for unmerged files
+ + diff-format.adoc: remove mention of diff-tree specific output
+
+ Doc updates.
+ source: <pull.2304.git.git.1778860091.gitgitgadget@gmail.com>
+
+
+* ps/odb-in-memory (2026-04-10) 18 commits
+  (merged to 'next' on 2026-05-21 at c8709aa17f)
+ + t/unit-tests: add tests for the in-memory object source
+ + odb: generic in-memory source
+ + odb/source-inmemory: stub out remaining functions
+ + odb/source-inmemory: implement `freshen_object()` callback
+ + odb/source-inmemory: implement `count_objects()` callback
+ + odb/source-inmemory: implement `find_abbrev_len()` callback
+ + odb/source-inmemory: implement `for_each_object()` callback
+ + odb/source-inmemory: convert to use oidtree
+ + oidtree: add ability to store data
+ + cbtree: allow using arbitrary wrapper structures for nodes
+ + odb/source-inmemory: implement `write_object_stream()` callback
+ + odb/source-inmemory: implement `write_object()` callback
+ + odb/source-inmemory: implement `read_object_stream()` callback
+ + odb/source-inmemory: implement `read_object_info()` callback
+ + odb: fix unnecessary call to `find_cached_object()`
+ + odb/source-inmemory: implement `free()` callback
+ + odb: introduce "in-memory" source
+ + Merge branch 'jt/odb-transaction-write' into ps/odb-in-memory
+ (this branch is used by ps/odb-source-loose; uses jt/odb-transaction-write.)
+
+ Add a new odb "in-memory" source that is meant to only hold
+ tentative objects (like the virtual blob object that represents the
+ working tree file used by "git blame").
+ source: <20260410-b4-pks-odb-source-inmemory-v3-0-22fd0fad58fe@pks.im>
+
+
+* ps/setup-wo-the-repository (2026-05-19) 18 commits
+  (merged to 'next' on 2026-05-21 at d8fb5a7b3e)
+ + setup: stop using `the_repository` in `init_db()`
+ + setup: stop using `the_repository` in `create_reference_database()`
+ + setup: stop using `the_repository` in `initialize_repository_version()`
+ + setup: stop using `the_repository` in `check_repository_format()`
+ + setup: stop using `the_repository` in `upgrade_repository_format()`
+ + setup: stop using `the_repository` in `setup_git_directory()`
+ + setup: stop using `the_repository` in `setup_git_directory_gently()`
+ + setup: stop using `the_repository` in `setup_git_env()`
+ + setup: stop using `the_repository` in `set_git_work_tree()`
+ + setup: stop using `the_repository` in `setup_work_tree()`
+ + setup: stop using `the_repository` in `enter_repo()`
+ + setup: stop using `the_repository` in `verify_non_filename()`
+ + setup: stop using `the_repository` in `verify_filename()`
+ + setup: stop using `the_repository` in `path_inside_repo()`
+ + setup: stop using `the_repository` in `prefix_path()`
+ + setup: stop using `the_repository` in `is_inside_work_tree()`
+ + setup: stop using `the_repository` in `is_inside_git_dir()`
+ + setup: replace use of `the_repository` in static functions
+ (this branch is used by ps/setup-centralize-odb-creation.)
+
+ Many uses of the_repository has been updated to use a more
+ appropriate struct repository instance in setup.c codepath.
+ source: <20260519-pks-setup-wo-the-repository-v3-0-a00d8ea8b07f@pks.im>
+
+
+* ps/t3903-cover-stash-include-untracked (2026-05-16) 1 commit
+  (merged to 'next' on 2026-05-20 at f1e7ac1cbd)
+ + stash: add coverage for show --include-untracked
+
+ Test coverage has been added to "git stash --include-untracked".
+ source: <20260516183347.4323-2-pushkarkumarsingh1970@gmail.com>
+
+
+* rs/trailer-fold-optim (2026-05-15) 1 commit
+  (merged to 'next' on 2026-05-20 at 38c9fb15c2)
+ + trailer: change strbuf in-place in unfold_value()
+
+ Code simplification.
+ source: <816be07e-2cd6-48fe-ae93-57fa0f2543ed@web.de>
+
+
+* rs/use-builtin-add-overflow-explicitly-on-clang (2026-05-18) 2 commits
+  (merged to 'next' on 2026-05-21 at c223b71079)
+ + use __builtin_add_overflow() in st_add() with Clang
+ + strbuf: use st_add3() in strbuf_grow()
+
+ Micro optimization of codepaths that compute allocation sizes carefully.
+ source: <20260518202502.25682-1-l.s.r@web.de>
+
+
+* tb/incremental-midx-part-3.3 (2026-05-19) 16 commits
+  (merged to 'next' on 2026-05-21 at 6c11c1a739)
+ + repack: allow `--write-midx=incremental` without `--geometric`
+ + repack: introduce `--write-midx=incremental`
+ + repack: implement incremental MIDX repacking
+ + packfile: ensure `close_pack_revindex()` frees in-memory revindex
+ + builtin/repack.c: convert `--write-midx` to an `OPT_CALLBACK`
+ + repack-geometry: prepare for incremental MIDX repacking
+ + repack-midx: extract `repack_fill_midx_stdin_packs()`
+ + repack-midx: factor out `repack_prepare_midx_command()`
+ + midx: expose `midx_layer_contains_pack()`
+ + repack: track the ODB source via existing_packs
+ + midx: support custom `--base` for incremental MIDX writes
+ + midx: introduce `--no-write-chain-file` for incremental MIDX writes
+ + midx: use `strvec` for `keep_hashes`
+ + midx: build `keep_hashes` array in order
+ + midx: use `strset` for retained MIDX files
+ + midx-write: handle noop writes when converting incremental chains
+
+ The repacking code has been refactored and compaction of MIDX layers
+ have been implemented, and incremental strategy that does not require
+ all-into-one repacking has been introduced.
+ source: <cover.1779206239.git.me@ttaylorr.com>
+
+
+* tb/pseudo-merge-bugfixes (2026-05-11) 9 commits
+  (merged to 'next' on 2026-05-19 at ecee155d5c)
+ + pack-bitmap: prevent pattern leak on pseudo-merge re-assignment
+ + Documentation: fix broken `sampleRate` in gitpacking(7)
+ + pack-bitmap: reject pseudo-merge "sampleRate" of 0
+ + pack-bitmap: parse commits in `find_pseudo_merge_group_for_ref()`
+ + pack-bitmap: fix pseudo-merge lookup for shared commits
+ + pack-bitmap: fix inverted binary search in `pseudo_merge_at()`
+ + pack-bitmap-write: sort pseudo-merge commit lookup table in pack order
+ + t5333: demonstrate various pseudo-merge bugs
+ + t/helper: add 'test-tool bitmap write' subcommand
+ (this branch is used by tb/bitmap-build-performance.)
+
+ Fixes many bugs in pseudo-merge code.
+ source: <cover.1778546804.git.me@ttaylorr.com>
 
 --------------------------------------------------
 [New Topics]
 
+* za/completion-hide-dotfiles (2026-05-26) 1 commit
+ - completion: hide dotfiles for selected path completion
+
+ The path completion for commands like `git rm` and `git mv`, is being
+ updated to hide dotfiles by default, unless the user explicitly starts
+ the path with a dot, matching standard shell-completion behavior.
+
+ Will merge to 'next'?
+ source: <pull.2311.v2.git.git.1779808987825.gitgitgadget@gmail.com>
+
+--------------------------------------------------
+[Cooking]
+
 * kk/fetch-store-ref-optimization (2026-05-24) 1 commit
  - fetch: pass transport to post-fetch connectivity check
 
@@ -122,7 +294,7 @@
  source: <pull.2123.git.1779625693328.gitgitgadget@gmail.com>
 
 
-* ds/restore-sparse-index (2026-05-24) 2 commits
+* ds/restore-sparse-index (2026-05-26) 2 commits
  - restore: avoid sparse index expansion
  - t1092: test 'git restore' with sparse index
 
@@ -130,8 +302,8 @@
  the sparse index when operating on paths within the sparse checkout
  definition, by handling sparse directory entries at the tree level.
 
- Will merge to 'next'?
- source: <pull.2121.git.1779644412.gitgitgadget@gmail.com>
+ Will merge to 'next'.
+ source: <pull.2121.v2.git.1779827195.gitgitgadget@gmail.com>
 
 
 * kk/commit-reach-optim (2026-05-25) 3 commits
@@ -149,14 +321,15 @@
 
 
 * ar/receive-pack-worktree-env (2026-05-25) 1 commit
- - receive-pack: fix updateInstead with core.worktree
+  (merged to 'next' on 2026-05-27 at 9c246d1969)
+ + receive-pack: fix updateInstead with core.worktree
 
  The GIT_WORK_TREE variable prepared to invoke the push-to-checkout
  hook was leaking into the environment even when there was no hook
  used and broke the default push-to-deploy (i.e., let "git checkout"
  update the working tree only when the working tree is clean).
 
- Will merge to 'next'.
+ Will merge to 'master'.
  source: <20260525162311.66240-2-hi@alyssa.is>
 
 
@@ -191,8 +364,6 @@
  Comments?
  source: <cover.1779792311.git.erik@cervined.in>
 
---------------------------------------------------
-[Cooking]
 
 * gh/jump-auto-mode (2026-05-21) 1 commit
  - git-jump: pick a mode automatically when invoked without arguments
@@ -234,7 +405,6 @@
  - odb/source-loose: store pointer to "files" instead of generic source
  - odb/source-loose: move loose source into "odb/" subsystem
  - Merge branch 'ps/odb-in-memory' into ps/odb-source-loose
- (this branch uses jt/odb-transaction-write and ps/odb-in-memory.)
 
  The loose object source has been refactored into a proper `struct
  odb_source`.
@@ -253,7 +423,6 @@
  - setup: drop `setup_git_env()`
  - t0001: plug test gaps for git-init(1) with GIT_OBJECT_DIRECTORY
  - Merge branch 'ps/setup-wo-the-repository' into ps/setup-centralize-odb-creation
- (this branch uses ps/setup-wo-the-repository.)
 
  The setup logic to discover and configure repositories has been
  refactored, and the initialization of the object database has been
@@ -328,18 +497,6 @@
  source: <20260522044352.GA861761@coredump.intra.peff.net>
 
 
-* jk/sq-dequote-cleanup (2026-05-18) 3 commits
-  (merged to 'next' on 2026-05-21 at fbedf2daea)
- + quote: simplify internals of dequoting
- + quote: drop sq_dequote_to_argv()
- + quote.h: bump strvec forward declaration to the top
-
- Code simplification.
-
- Will merge to 'master'.
- source: <20260519011837.GA1615637@coredump.intra.peff.net>
-
-
 * aj/stash-patch-optimize-temporary-index (2026-05-22) 1 commit
  - stash: reuse cached index entries in --patch temporary index
 
@@ -361,13 +518,14 @@
  - pack-bitmap: check subtree bits before recursing
  - pack-bitmap: pass object position to `fill_bitmap_tree()`
  - Merge branch 'tb/pseudo-merge-bugfixes' into tb/bitmap-build-performance
- (this branch uses tb/pseudo-merge-bugfixes.)
 
  Reachability bitmap generation has been significantly optimized. By
  reordering tree traversal, caching object positions, and refining how
  pseudo-merge bitmaps are constructed, the performance of "git repack
  --write-midx-bitmaps" is improved, especially for large repositories
  and when using pseudo-merges.
+
+ Comments?
  source: <cover.1779207127.git.me@ttaylorr.com>
 
 
@@ -382,18 +540,6 @@
  source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com>
 
 
-* kk/merge-octopus-optim (2026-05-11) 1 commit
-  (merged to 'next' on 2026-05-20 at afe427dc66)
- + merge: use repo_in_merge_bases for octopus up-to-date check
-
- The logic to determine that branches in an octopus merge are
- independent has been optimized.
-
- Will merge to 'master'.
- cf. <c5b333f1-0db6-4aec-a369-6503cb924e7f@gmail.com>
- source: <pull.2110.git.1778566286543.gitgitgadget@gmail.com>
-
-
 * rs/strbuf-add-uint (2026-05-12) 4 commits
  - ls-tree: use strbuf_add_uint()
  - ls-files: use strbuf_add_uint()
@@ -441,18 +587,6 @@
  source: <183aa0fd-d455-4ec9-9c42-d511fac8b3e4@web.de>
 
 
-* kk/limit-list-optim (2026-05-14) 1 commit
-  (merged to 'next' on 2026-05-19 at f17450dd1b)
- + revision: use priority queue in limit_list()
-
- The limit_list() function that is one of the core part of the
- revision traversal infrastructure has been optimized by replacing
- its use of linear list with priority queue.
-
- Will merge to 'master'.
- source: <pull.2114.git.1778777491939.gitgitgadget@gmail.com>
-
-
 * ed/check-connected-close-err-fd (2026-05-16) 1 commit
   (merged to 'next' on 2026-05-22 at 00d592399e)
  + Merge branch 'ed/check-connected-close-err-fd-2.53' into ed/check-connected-close-err-fd
@@ -486,49 +620,6 @@
  source: <pull.2116.v3.git.1778947182.gitgitgadget@gmail.com>
 
 
-* pb/doc-diff-format-updates (2026-05-15) 3 commits
-  (merged to 'next' on 2026-05-20 at fe8d31e9f9)
- + diff-format.adoc: mode and hash are 0* for unmerged paths from index only
- + diff-format.adoc: 'git diff-files' prints two lines for unmerged files
- + diff-format.adoc: remove mention of diff-tree specific output
-
- Doc updates.
-
- Will merge to 'master'.
- source: <pull.2304.git.git.1778860091.gitgitgadget@gmail.com>
-
-
-* ps/t3903-cover-stash-include-untracked (2026-05-16) 1 commit
-  (merged to 'next' on 2026-05-20 at f1e7ac1cbd)
- + stash: add coverage for show --include-untracked
-
- Test coverage has been added to "git stash --include-untracked".
-
- Will merge to 'master'.
- source: <20260516183347.4323-2-pushkarkumarsingh1970@gmail.com>
-
-
-* rs/trailer-fold-optim (2026-05-15) 1 commit
-  (merged to 'next' on 2026-05-20 at 38c9fb15c2)
- + trailer: change strbuf in-place in unfold_value()
-
- Code simplification.
-
- Will merge to 'master'.
- source: <816be07e-2cd6-48fe-ae93-57fa0f2543ed@web.de>
-
-
-* rs/use-builtin-add-overflow-explicitly-on-clang (2026-05-18) 2 commits
-  (merged to 'next' on 2026-05-21 at c223b71079)
- + use __builtin_add_overflow() in st_add() with Clang
- + strbuf: use st_add3() in strbuf_grow()
-
- Micro optimization of codepaths that compute allocation sizes carefully.
-
- Will merge to 'master'.
- source: <20260518202502.25682-1-l.s.r@web.de>
-
-
 * tc/generate-configlist-fix-for-older-ninja (2026-05-15) 1 commit
   (merged to 'next' on 2026-05-22 at 8322bfb8f2)
  + generate-configlist: collapse depfile for older Ninja
@@ -566,18 +657,6 @@
  source: <pull.2117.v2.git.1779704908.gitgitgadget@gmail.com>
 
 
-* kn/refs-fsck-skip-lock-files (2026-05-17) 1 commit
-  (merged to 'next' on 2026-05-21 at 91e30e3543)
- + refs/files: skip lock files during consistency checks
-
- The consistency checks for the files reference backend have been updated
- to skip lock files earlier, avoiding unnecessary parsing of
- intermediate files.
-
- Will merge to 'master'.
- source: <20260517-refs-fsck-skip-lock-files-v3-1-b24dfd673c7e@gmail.com>
-
-
 * jt/config-lock-timeout (2026-05-17) 1 commit
  - config: retry acquiring config.lock, configurable via core.configLockTimeout
 
@@ -739,91 +818,6 @@
  source: <cover.1777648598.git.phillip.wood@dunelm.org.uk>
 
 
-* tb/pseudo-merge-bugfixes (2026-05-11) 9 commits
-  (merged to 'next' on 2026-05-19 at ecee155d5c)
- + pack-bitmap: prevent pattern leak on pseudo-merge re-assignment
- + Documentation: fix broken `sampleRate` in gitpacking(7)
- + pack-bitmap: reject pseudo-merge "sampleRate" of 0
- + pack-bitmap: parse commits in `find_pseudo_merge_group_for_ref()`
- + pack-bitmap: fix pseudo-merge lookup for shared commits
- + pack-bitmap: fix inverted binary search in `pseudo_merge_at()`
- + pack-bitmap-write: sort pseudo-merge commit lookup table in pack order
- + t5333: demonstrate various pseudo-merge bugs
- + t/helper: add 'test-tool bitmap write' subcommand
- (this branch is used by tb/bitmap-build-performance.)
-
- Fixes many bugs in pseudo-merge code.
-
- Will merge to 'master'.
- source: <cover.1778546804.git.me@ttaylorr.com>
-
-
-* ds/fetch-negotiation-options (2026-05-19) 8 commits
-  (merged to 'next' on 2026-05-21 at ff57fd9c97)
- + send-pack: pass negotiation config in push
- + remote: add remote.*.negotiationInclude config
- + fetch: add --negotiation-include option for negotiation
- + negotiator: add have_sent() interface
- + remote: add remote.*.negotiationRestrict config
- + transport: rename negotiation_tips
- + fetch: add --negotiation-restrict option
- + t5516: fix test order flakiness
-
- The negotiation tip options in "git fetch" have been reworked to
- allow requiring certain refs to be sent as "have" lines, and to
- restrict negotiation to a specific set of refs.
-
- Will merge to 'master'.
- source: <pull.2085.v6.git.1779207896.gitgitgadget@gmail.com>
-
-
-* en/batch-prefetch (2026-05-14) 4 commits
-  (merged to 'next' on 2026-05-20 at 722acf81c8)
- + grep: prefetch necessary blobs
- + builtin/log: prefetch necessary blobs for `git cherry`
- + patch-ids.h: add missing trailing parenthesis in documentation comment
- + promisor-remote: document caller filtering contract
-
- In a lazy clone, "git cherry" and "git grep" often fetch necessary
- blob objects one by one from promisor remotes.  It has been corrected
- to collect necessary object names and fetch them in bulk to gain
- reasonable performance.
-
- Will merge to 'master'.
- cf. <0da4f159-8d4b-49e2-93c1-25aa0bf69371@gmail.com>
- source: <pull.2089.v3.git.1778775928.gitgitgadget@gmail.com>
-
-
-* ps/odb-in-memory (2026-04-10) 18 commits
-  (merged to 'next' on 2026-05-21 at c8709aa17f)
- + t/unit-tests: add tests for the in-memory object source
- + odb: generic in-memory source
- + odb/source-inmemory: stub out remaining functions
- + odb/source-inmemory: implement `freshen_object()` callback
- + odb/source-inmemory: implement `count_objects()` callback
- + odb/source-inmemory: implement `find_abbrev_len()` callback
- + odb/source-inmemory: implement `for_each_object()` callback
- + odb/source-inmemory: convert to use oidtree
- + oidtree: add ability to store data
- + cbtree: allow using arbitrary wrapper structures for nodes
- + odb/source-inmemory: implement `write_object_stream()` callback
- + odb/source-inmemory: implement `write_object()` callback
- + odb/source-inmemory: implement `read_object_stream()` callback
- + odb/source-inmemory: implement `read_object_info()` callback
- + odb: fix unnecessary call to `find_cached_object()`
- + odb/source-inmemory: implement `free()` callback
- + odb: introduce "in-memory" source
- + Merge branch 'jt/odb-transaction-write' into ps/odb-in-memory
- (this branch is used by ps/odb-source-loose; uses jt/odb-transaction-write.)
-
- Add a new odb "in-memory" source that is meant to only hold
- tentative objects (like the virtual blob object that represents the
- working tree file used by "git blame").
-
- Will merge to 'master'.
- source: <20260410-b4-pks-odb-source-inmemory-v3-0-22fd0fad58fe@pks.im>
-
-
 * cl/conditional-config-on-worktree-path (2026-05-24) 2 commits
  - config: add "worktree" and "worktree/i" includeIf conditions
  - config: refactor include_by_gitdir() into include_by_path()
@@ -878,24 +872,6 @@
  source: <20260406183041.783800-1-vikingtc4@gmail.com>
 
 
-* jt/odb-transaction-write (2026-05-14) 7 commits
-  (merged to 'next' on 2026-05-21 at 61108abe4d)
- + odb/transaction: make `write_object_stream()` pluggable
- + object-file: generalize packfile writes to use odb_write_stream
- + object-file: avoid fd seekback by checking object size upfront
- + object-file: remove flags from transaction packfile writes
- + odb: update `struct odb_write_stream` read() callback
- + odb/transaction: use pluggable `begin_transaction()`
- + odb: split `struct odb_transaction` into separate header
- (this branch is used by ps/odb-in-memory and ps/odb-source-loose.)
-
- ODB transaction interface is being reworked to explicitly handle
- object writes.
-
- Will merge to 'master'.
- source: <20260514183740.1505171-1-jltobler@gmail.com>
-
-
 * sa/cat-file-batch-mailmap-switch (2026-04-15) 1 commit
   (merged to 'next' on 2026-05-22 at 197a9bad73)
  + cat-file: add mailmap subcommand to --batch-command
@@ -908,33 +884,6 @@
  source: <20260416033250.4327-2-siddharthasthana31@gmail.com>
 
 
-* tb/incremental-midx-part-3.3 (2026-05-19) 16 commits
-  (merged to 'next' on 2026-05-21 at 6c11c1a739)
- + repack: allow `--write-midx=incremental` without `--geometric`
- + repack: introduce `--write-midx=incremental`
- + repack: implement incremental MIDX repacking
- + packfile: ensure `close_pack_revindex()` frees in-memory revindex
- + builtin/repack.c: convert `--write-midx` to an `OPT_CALLBACK`
- + repack-geometry: prepare for incremental MIDX repacking
- + repack-midx: extract `repack_fill_midx_stdin_packs()`
- + repack-midx: factor out `repack_prepare_midx_command()`
- + midx: expose `midx_layer_contains_pack()`
- + repack: track the ODB source via existing_packs
- + midx: support custom `--base` for incremental MIDX writes
- + midx: introduce `--no-write-chain-file` for incremental MIDX writes
- + midx: use `strvec` for `keep_hashes`
- + midx: build `keep_hashes` array in order
- + midx: use `strset` for retained MIDX files
- + midx-write: handle noop writes when converting incremental chains
-
- The repacking code has been refactored and compaction of MIDX layers
- have been implemented, and incremental strategy that does not require
- all-into-one repacking has been introduced.
-
- Will merge to 'master'.
- source: <cover.1779206239.git.me@ttaylorr.com>
-
-
 * jd/unpack-trees-wo-the-repository (2026-03-31) 2 commits
  - unpack-trees: use repository from index instead of global
  - unpack-trees: use repository from index instead of global
@@ -947,35 +896,6 @@
  source: <pull.2258.v2.git.git.1774971267.gitgitgadget@gmail.com>
 
 
-* ps/setup-wo-the-repository (2026-05-19) 18 commits
-  (merged to 'next' on 2026-05-21 at d8fb5a7b3e)
- + setup: stop using `the_repository` in `init_db()`
- + setup: stop using `the_repository` in `create_reference_database()`
- + setup: stop using `the_repository` in `initialize_repository_version()`
- + setup: stop using `the_repository` in `check_repository_format()`
- + setup: stop using `the_repository` in `upgrade_repository_format()`
- + setup: stop using `the_repository` in `setup_git_directory()`
- + setup: stop using `the_repository` in `setup_git_directory_gently()`
- + setup: stop using `the_repository` in `setup_git_env()`
- + setup: stop using `the_repository` in `set_git_work_tree()`
- + setup: stop using `the_repository` in `setup_work_tree()`
- + setup: stop using `the_repository` in `enter_repo()`
- + setup: stop using `the_repository` in `verify_non_filename()`
- + setup: stop using `the_repository` in `verify_filename()`
- + setup: stop using `the_repository` in `path_inside_repo()`
- + setup: stop using `the_repository` in `prefix_path()`
- + setup: stop using `the_repository` in `is_inside_work_tree()`
- + setup: stop using `the_repository` in `is_inside_git_dir()`
- + setup: replace use of `the_repository` in static functions
- (this branch is used by ps/setup-centralize-odb-creation.)
-
- Many uses of the_repository has been updated to use a more
- appropriate struct repository instance in setup.c codepath.
-
- Will merge to 'master'.
- source: <20260519-pks-setup-wo-the-repository-v3-0-a00d8ea8b07f@pks.im>
-
-
 * kh/doc-trailers (2026-04-13) 9 commits
  - doc: interpret-trailers: document comment line treatment
  - doc: interpret-trailers: commit to “trailer block” term