What's cooking (2026/09 #02)
diff --git a/whats-cooking.txt b/whats-cooking.txt
index fbffb07..53da8ce 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 (Sep 2026, #01)
+Subject: What's cooking in git.git (Sep 2026, #02)
 X-master-at: 3cb9185f65410273787f74333cc027d2ea5daada
-X-next-at: 17ff1f980877b90e8f08b7f40578888091f39337
+X-next-at: 73a4cd73de3e5a9f546c977afafb394d293a2882
 Bcc: lwn@lwn.net, gitster@pobox.com
 
-What's cooking in git.git (Sep 2026, #01)
+What's cooking in git.git (Sep 2026, #02)
 -----------------------------------------
 
 Here are the topics that have been cooking in my tree.  Commits
@@ -19,8 +19,8 @@
 
 The 22nd batch of topics have now graduated to the 'master' branch.
 We have 604 non-merge commits in 'master' since Git 2.55.  There
-are 49 non-merge commits cooking in 'next' (note that some have
-been reverted), and 213 non-merge commits, including those in and
+are 66 non-merge commits cooking in 'next' (note that some have
+been reverted), and 223 non-merge commits, including those in and
 out of 'next', in 'seen' as of this writing.
 
 Copies of the source code to Git live in many repositories, and the
@@ -52,172 +52,71 @@
 	https://www.kernel.org/pub/software/scm/git/
 
 --------------------------------------------------
-[Graduated to 'master']
-
-* jc/rerere-doc-typofix (2026-08-24) 1 commit
-  (merged to 'next' on 2026-08-25 at 62bdec98f9)
- + rerere: technical documentation typofix
-
- A missing preposition in the rerere technical documentation has been
- fixed.
-
- Graduated to 'master'.
- source: <xmqqtsojp4zf.fsf@gitster.g>
-
-
-* ty/repository-fetch-if-missing (2026-08-14) 1 commit
-  (merged to 'next' on 2026-08-25 at 2cc77c1ca1)
- + repository: move fetch_if_missing into struct repository
- (this branch is used by ps/odb-stop-registering-in-memory-sources.)
-
- The global variable 'fetch_if_missing' has been moved to a member in
- 'struct repository', continuing the libification process and
- allowing per-repository control (such as for submodules).
-
- Graduated to 'master'.
- cf. <xmqqmrun8jeu.fsf@gitster.g>
- source: <20260815064747.2196896-1-cat@malon.dev>
-
---------------------------------------------------
 [New Topics]
 
-* jk/rev-info-argv-to-free (2026-08-31) 2 commits
- - revision: simplify mark_argv_for_free() callers
- - revision: hang on to "freed" argv elements
+* jc/history-missing-tree-errorfix (2026-09-02) 1 commit
+ - history: do not dereference NULL when parent tree is missing
 
- The memory ownership of argv elements passed to the revision
- machinery has been made more robust by keeping logically "freed"
- elements alive until the rev_info struct is released, preventing
- use-after-free bugs when options store references to them.
+ Running "git history" in a corrupt repository can (unsurprisingly)
+ segfault when a necessary tree object is not found.
 
  Will merge to 'next'?
- cf. <apaSDqIEyc82Q_zE@pks.im>
- cf. <apayIuf9kXQcQPvS@pks.im>
- cf. <xmqq8q5ksvd8.fsf@gitster.g>
- source: <20260901062815.GC1075462@coredump.intra.peff.net>
+ cf. <apknMr9Jk-CzdLAR@pks.im>
+ source: <20260903063657.2067303-1-zkd18cjb@mail.ustc.edu.cn>
 
 
-* ps/ci-depends-on-ruby (2026-09-01) 1 commit
- - ci: fix missing Ruby dependency in "documentation" job
+* jc/pathspec-match-const (2026-09-03) 1 commit
+ - pathspec: match and original in pathspec_item are const
+ (this branch is used by yt/pathspec-negative-prefix.)
 
- The CI job that builds the documentation failed because it lacked
- the 'gem' command. The 'asciidoc' package apparently stopped pulling
- in the 'ruby' package as a transitive dependency.  The CI script has
- been updated to explicitly install 'ruby'.
+ Two members in "struct pathspec_item" were of type "char *", but
+ nobody updated the string through these pointers.  They have been
+ made "const char *" instead.
 
  Will merge to 'next'?
- cf. <20260902071113.GA70165@coredump.intra.peff.net>
- source: <20260901-b4-pks-ci-fix-documentation-job-v1-1-a8257ee2a9a4@pks.im>
+ cf. <4439BA70-2C03-499D-B3CE-E43700C0A8DA@ytausch.de>
+ source: <xmqqy0dib3ue.fsf_-_@gitster.g>
 
 
-* ps/odb-stop-registering-in-memory-sources (2026-09-02) 13 commits
- - odb: remove the ability to link sources ad-hoc
- - t/helper: stop registering alternates in "ref-store" command
- - t/helper: adapt read-midx to not link ad-hoc source anymore
- - builtin/multi-pack-index: refuse unknown sources with "--object-dir="
- - odb/packed: fix memory leaks when freeing source
- - tmp-objdir: drop unused function to register alternate
- - odb: remove infrastructure to register submodule sources
- - builtin/grep: stop registering submodule ODB as source
- - submodule-config: stop registering submodule sources
- - submodule-config: stop using `the_hash_algo`
- - submodule-config: remove uses of `the_repository`
- - cache-tree: remove dependency on `the_repository`
- - cache-tree: drop `the_repository` in `cache_tree_fully_valid()`
- - Merge branch 'ty/repository-fetch-if-missing' into ps/ps/odb-stop-registering-in-memory-sources
+* ps/tune-rerere-gc (2026-09-04) 2 commits
+ - builtin/maintenance: improve heuristic for "rerere gc"
+ - rerere: extract logic to determine whether entries are stale
 
- The mechanism to register in-memory alternate object sources has
- been removed, as submodule object databases are now accessed
- natively via their own repository structures.  This simplifies
- object database management and prepares the codebase for migrating
- alternate tracking into the files backend.
-
- Needs review.
- source: <20260902-pks-odb-registering-in-memory-sources-v2-0-c6ca12fdea4d@pks.im>
-
-
-* jk/ci-use-system-asciidoctor (2026-09-02) 2 commits
- - ci: drop ALREADY_HAVE_ASCIIDOCTOR variable
- - ci: fix missing Ruby dependency in "documentation" job
-
- The CI script to install dependencies for the documentation build
- has been updated to install asciidoctor directly via the system
- package manager instead of pinning to an older version via gem.
- Additionally, an obsolete variable used for retired Azure Pipelines
- environments has been removed.
+ "git maintenance" triggered "rerere gc" in unappropriate times and
+ interfered with "git rebase" etc. too much.  The conditions "rerere
+ gc" gets triggered have been tweaked.
 
  Will merge to 'next'?
- cf. <apfWhYF6nmcFGKE3@pks.im>
- cf. <apfzihj-1YAhn5lT@pks.im>
- source: <20260902071409.GA641414@coredump.intra.peff.net>
+ cf. <15a488b2-b4ae-4ac8-8cb3-f06ef5bbb52b@gmail.com>
+ source: <20260904-b4-pks-maintenance-rerere-gc-heuristic-v2-0-b1691121fe1c@pks.im>
 
 
-* jk/submodule-error-leak (2026-09-01) 2 commits
- - submodule--helper: free URL when repository setup fails
- - repository: make repo_clear() idempotent
+* as/push-force-if-includes-no-reflog (2026-09-04) 1 commit
+ - push: fix --force-if-includes when remote-tracking ref has no reflog
 
- The error path in 'git submodule--helper' has been updated to plug a
- memory leak when a repository handle could not be obtained,
- leveraging an updated idempotent repo_clear().
-
- Will merge to 'next'?
- cf. <apfoO5br4MMZv7nR@pks.im>
- source: <20260902055117.GA41587@coredump.intra.peff.net>
-
-
-* sa/rev-list-missing-only (2026-09-01) 1 commit
- - rev-list: add --missing-only option to filter output
-
- The git rev-list command has been augmented with a '--missing-only'
- option that filters the output to only show missing objects,
- stripping the leading '?' character and suppressing present objects,
- which is useful when used in combination with '--missing=print' or
- '--missing=print-info'.
-
- Expecting a reroll.
- cf. <29b5003e-48b3-490b-a4ec-c57088acc441@gmail.com>
- source: <20260901185100.33948-2-siddharthasthana31@gmail.com>
-
-
-* wf/imap-send-draft (2026-09-01) 1 commit
- - imap-send: add --draft to set IMAP \Draft flag
-
- The 'git imap-send' command has been taught to take the '--draft'
- option to mark uploaded messages as drafts, which helps some email
- clients render them properly for editing and sending.
-
- Will merge to 'next'?
- source: <761c3f1b-e280-48b1-a2ad-770b68be3434@slotpi01m90>
-
-
-* yt/pathspec-negative-prefix (2026-09-02) 1 commit
- - dir: do not apply prefix to negative pathspecs
-
- The pathspec matching logic has been updated to avoid out-of-bounds
- memory accesses when a negative pathspec is shorter than the common
- prefix of positive pathspecs.
-
- Needs review.
- source: <0CA8678D-0540-4A2E-B314-B9BEB04E2BF5@ytausch.de>
-
-
-* cc/early-scan-options (2026-09-02) 6 commits
- - fast-import: use early_scan_options() for --allow-unsafe-features
- - parse-options: build early scan options from a struct option array
- - parse-options: add parse_options_takes_argument()
- - rev-parse: fix "--" detection when it is an option value
- - bisect: fix "--" detection when a term name is "--"
- - parse-options: add early_scan_options()
-
- The process of parsing command-line options in commands that
- perform an early scan over their arguments (such as 'git bisect',
- 'git rev-parse', and 'git fast-import') has been unified using a
- new early-scan sub-API, which parses and skips known options taking
- separate values to prevent logic bugs.
+ The timestamp used for checking the reflog of a remote-tracking
+ branch during 'git push --force-if-includes' was left uninitialized
+ when the reflog was completely empty, which has been corrected.
 
  Waiting for response.
- cf. <xmqqpkyviizc.fsf@gitster.g>
- source: <20260902161047.476753-1-christian.couder@gmail.com>
+ cf. <xmqqzexx58hc.fsf@gitster.g>
+ source: <20260904124433.12840-1-f@lex.la>
+
+
+* tb/rerere-lock-grace (2026-09-04) 3 commits
+ - sequencer: keep auto maintenance out of the commands a sequence spawns
+ - sequencer: run auto maintenance once a sequence is done
+ - config: add git_config_append_parameter()
+
+ The sequencer machinery (used by 'git rebase', 'git cherry-pick', and
+ 'git revert') has been updated to defer automatic maintenance tasks
+ until the end of the operation, preventing nested 'git commit', 'git
+ merge', and 'exec' commands from triggering GC operations that could
+ contend for locks or delete open packs while the sequence is in
+ progress.
+
+ Needs review.
+ source: <pull.2217.v2.git.1788537086.gitgitgadget@gmail.com>
 
 --------------------------------------------------
 [Stalled]
@@ -302,6 +201,8 @@
  cf. <anL7qL2-4h8ZlLcg@pks.im>
  source: <20260728052538.12429-1-chungmin@chungminlee.com>
 
+--------------------------------------------------
+[Cooking]
 
 * cc/lazy-fetch-trusted-bit (2026-08-13) 5 commits
  - builtin/upload-pack: set GIT_NO_LAZY_FETCH to 0 on trusted repo
@@ -314,16 +215,157 @@
  introduced to allow 'upload-pack' to lazily fetch missing objects from
  configured promisor remotes when serving trusted repositories.
 
- Waiting for response for too long, stalled.
- cf. <xmqq1pc0mr5i.fsf@gitster.g>
- cf. <xmqqecg0oabe.fsf@gitster.g>
- cf. <xmqqy0e8mv0k.fsf@gitster.g>
- cf. <xmqqjypsoami.fsf@gitster.g>
- cf. <xmqq1pc0mr5i.fsf@gitster.g>
+ Expecting a reroll.
+ cf. <CAP8UFD0iAvN2=j_15xUWiWuRMSJpBcS6WiYvOaB=wbdsdJyZ7w@mail.gmail.com>
  source: <20260813154748.2378747-1-christian.couder@gmail.com>
 
---------------------------------------------------
-[Cooking]
+
+* jk/rev-info-argv-to-free (2026-08-31) 2 commits
+  (merged to 'next' on 2026-09-04 at 9826377f2b)
+ + revision: simplify mark_argv_for_free() callers
+ + revision: hang on to "freed" argv elements
+
+ The memory ownership of argv elements passed to the revision
+ machinery has been made more robust by keeping logically "freed"
+ elements alive until the rev_info struct is released, preventing
+ use-after-free bugs when options store references to them.
+
+ Will merge to 'master'.
+ cf. <apaSDqIEyc82Q_zE@pks.im>
+ cf. <apayIuf9kXQcQPvS@pks.im>
+ cf. <xmqq8q5ksvd8.fsf@gitster.g>
+ source: <20260901062815.GC1075462@coredump.intra.peff.net>
+
+
+* ps/ci-depends-on-ruby (2026-09-01) 1 commit
+ - ci: fix missing Ruby dependency in "documentation" job
+
+ The CI job that builds the documentation failed because it lacked
+ the 'gem' command. The 'asciidoc' package apparently stopped pulling
+ in the 'ruby' package as a transitive dependency.  The CI script has
+ been updated to explicitly install 'ruby'.
+
+ Will merge to 'next'?
+ cf. <87pkyxwf9b.fsf@emacs.iotcl.com>
+ source: <20260901-b4-pks-ci-fix-documentation-job-v1-1-a8257ee2a9a4@pks.im>
+
+
+* ps/odb-stop-registering-in-memory-sources (2026-09-02) 13 commits
+ - odb: remove the ability to link sources ad-hoc
+ - t/helper: stop registering alternates in "ref-store" command
+ - t/helper: adapt read-midx to not link ad-hoc source anymore
+ - builtin/multi-pack-index: refuse unknown sources with "--object-dir="
+ - odb/packed: fix memory leaks when freeing source
+ - tmp-objdir: drop unused function to register alternate
+ - odb: remove infrastructure to register submodule sources
+ - builtin/grep: stop registering submodule ODB as source
+ - submodule-config: stop registering submodule sources
+ - submodule-config: stop using `the_hash_algo`
+ - submodule-config: remove uses of `the_repository`
+ - cache-tree: remove dependency on `the_repository`
+ - cache-tree: drop `the_repository` in `cache_tree_fully_valid()`
+ - Merge branch 'ty/repository-fetch-if-missing' into ps/ps/odb-stop-registering-in-memory-sources
+
+ The mechanism to register in-memory alternate object sources has
+ been removed, as submodule object databases are now accessed
+ natively via their own repository structures.  This simplifies
+ object database management and prepares the codebase for migrating
+ alternate tracking into the files backend.
+
+ Needs review.
+ source: <20260902-pks-odb-registering-in-memory-sources-v2-0-c6ca12fdea4d@pks.im>
+
+
+* jk/ci-use-system-asciidoctor (2026-09-02) 2 commits
+ - ci: drop ALREADY_HAVE_ASCIIDOCTOR variable
+ - ci: fix missing Ruby dependency in "documentation" job
+
+ The CI script to install dependencies for the documentation build
+ has been updated to install asciidoctor directly via the system
+ package manager instead of pinning to an older version via gem.
+ Additionally, an obsolete variable used for retired Azure Pipelines
+ environments has been removed.
+
+ Will merge to 'next'?
+ cf. <apfWhYF6nmcFGKE3@pks.im>
+ cf. <apfzihj-1YAhn5lT@pks.im>
+ source: <20260902071409.GA641414@coredump.intra.peff.net>
+
+
+* jk/submodule-error-leak (2026-09-01) 2 commits
+ - submodule--helper: free URL when repository setup fails
+ - repository: make repo_clear() idempotent
+
+ The error path in 'git submodule--helper' has been updated to plug a
+ memory leak when a repository handle could not be obtained,
+ leveraging an updated idempotent repo_clear().
+
+ Will merge to 'next'?
+ cf. <apfoO5br4MMZv7nR@pks.im>
+ source: <20260902055117.GA41587@coredump.intra.peff.net>
+
+
+* sa/rev-list-missing-only (2026-09-03) 1 commit
+ - rev-list: add --missing-only option to filter output
+
+ The git rev-list command has been augmented with a '--missing-only'
+ option that filters the output to only show missing objects,
+ stripping the leading '?' character and suppressing present objects,
+ which is useful when used in combination with '--missing=print' or
+ '--missing=print-info'.
+
+ Will merge to 'next'?
+ source: <20260903204551.65592-2-siddharthasthana31@gmail.com>
+
+
+* wf/imap-send-draft (2026-09-01) 1 commit
+ - imap-send: add --draft to set IMAP \Draft flag
+
+ The 'git imap-send' command has been taught to take the '--draft'
+ option to mark uploaded messages as drafts, which helps some email
+ clients render them properly for editing and sending.
+
+ Will merge to 'next'?
+ cf. <xmqq8q5kl4gq.fsf@gitster.g>
+ cf. <31d24dc3-3ef6-41cb-acbd-4cb4fb0d2338@app.fastmail.com>
+ source: <761c3f1b-e280-48b1-a2ad-770b68be3434@slotpi01m90>
+
+
+* yt/pathspec-negative-prefix (2026-09-03) 2 commits
+ - dir: find common prefix among non-exclude pathspec items
+ - dir: do not apply prefix to negative pathspecs
+ - Merge branch 'jc/pathspec-match-const' into yt/pathspec-negative-prefix
+ (this branch uses jc/pathspec-match-const.)
+
+ The pathspec matching logic has been updated to avoid out-of-bounds
+ memory accesses when a negative pathspec is shorter than the common
+ prefix of positive pathspecs.
+
+ Waiting for response.
+ cf. <CABPp-BF6hps9DibSV4ghbowkOD-NfEsHYFdLoKab0hCfEi9rgw@mail.gmail.com>
+ cf. <CABPp-BFJo80oE=rtWc0FRNUxVh=6NHZeQmHD2q69VGwDcrHNhw@mail.gmail.com>
+ cf. <xmqqmrtx6qsk.fsf@gitster.g>
+ source: <887D6D84-F76E-4DCB-9633-CD78DA02BCC5@ytausch.de>
+
+
+* cc/early-scan-options (2026-09-02) 6 commits
+ - fast-import: use early_scan_options() for --allow-unsafe-features
+ - parse-options: build early scan options from a struct option array
+ - parse-options: add parse_options_takes_argument()
+ - rev-parse: fix "--" detection when it is an option value
+ - bisect: fix "--" detection when a term name is "--"
+ - parse-options: add early_scan_options()
+
+ The process of parsing command-line options in commands that
+ perform an early scan over their arguments (such as 'git bisect',
+ 'git rev-parse', and 'git fast-import') has been unified using a
+ new early-scan sub-API, which parses and skips known options taking
+ separate values to prevent logic bugs.
+
+ Waiting for response.
+ cf. <xmqqpkyviizc.fsf@gitster.g>
+ source: <20260902161047.476753-1-christian.couder@gmail.com>
+
 
 * ec/commit-fixup-options (2026-05-26) 2 commits
  - commit: allow -c/-C for all kinds of --fixup
@@ -333,21 +375,22 @@
  message from outside the editor has been added for all 'git commit
  --fixup' variations.
 
- Waiting for response.
- cf. <xmqq1pbkefh0.fsf@gitster.g>
+ Expecting a reroll.
+ cf. <CA+JQ7M__GOnM9LHt0txry-G2z2CKhdZr0b-rU=Yd_A0gCEwmaQ@mail.gmail.com>
  source: <cover.1779792311.git.erik@cervined.in>
 
 
 * tc/replay-linearize (2026-08-31) 3 commits
- - replay: offer an option to linearize the commit topology
- - replay: resolve the replay base outside pick_regular_commit()
- - replay: add helper to put entry into replayed_commits
+  (merged to 'next' on 2026-09-04 at 92ae794bfc)
+ + replay: offer an option to linearize the commit topology
+ + replay: resolve the replay base outside pick_regular_commit()
+ + replay: add helper to put entry into replayed_commits
 
  The 'git replay' command has been taught the '--linearize' option to
  drop merge commits and linearize the replayed history, mimicking 'git
  rebase --no-rebase-merges'.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <CABPp-BF1=DZAxX5Now4pCKPi8=cpXo506z=8QVu2vYCSiKdqMA@mail.gmail.com>
  source: <20260831-toon-git-replay-drop-merges-v9-0-61c4232c6f36@iotcl.com>
 
@@ -368,17 +411,19 @@
  way to libify utility helpers.
 
  Waiting for response.
- cf. <CAOLa=ZSQs5umaTxT6RKQJdnnAEbK+AHgj0n5yiTM0jsbZcyiig@mail.gmail.com>
+ cf. <xmqqo6el1xz0.fsf@gitster.g>
+ cf. <xmqqse3x1y20.fsf@gitster.g>
  source: <20260830204835.1040408-1-gitster@pobox.com>
 
 
 * hk/typofix (2026-08-31) 1 commit
- - versioncmp: fix typo in versioncmp.c, t/t0022-crlf-rename.sh
+  (merged to 'next' on 2026-09-03 at d33f0c0813)
+ + versioncmp: fix typo in versioncmp.c, t/t0022-crlf-rename.sh
 
  Various spelling mistakes in comments and test descriptions have
  been corrected.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  source: <20260901-typo-fix-v3-1-cc342f329190@gmail.com>
 
 
@@ -507,17 +552,18 @@
 
 
 * rs/worktree-add-basename-fixes (2026-08-25) 4 commits
- - worktree add: let worktree_basename() return string copy
- - worktree add: trim slashes when deriving branch name from path
- - worktree add: reject separator-only path
- - worktree add: don't read out of bounds in worktree_basename()
+  (merged to 'next' on 2026-09-03 at b04ceb887c)
+ + worktree add: let worktree_basename() return string copy
+ + worktree add: trim slashes when deriving branch name from path
+ + worktree add: reject separator-only path
+ + worktree add: don't read out of bounds in worktree_basename()
 
  The string extraction logic for the branch name and worktree name
  from the given path in 'git worktree add' has been corrected and
  simplified to avoid out-of-bounds reads and improper handling of
  trailing slashes.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <xmqqfqzuw23a.fsf@gitster.g>
  source: <20260825180350.2099-1-l.s.r@web.de>
 
@@ -534,9 +580,10 @@
  and return control to the user to resolve conflicts left in the
  working tree, just like 'cherry-pick' and 'merge' do.
 
- Looking good.
- (a newer iteration v4 exists as <pull.2389.v4.git.git.1788301481.gitgitgadget@gmail.com>)
- cf. <03b9f094-c969-4309-b2cc-f7cd01959d49@gmail.com>
+ Will merge to 'next'?
+ cf. <1c3f07e0-63c0-483d-8e46-e4edbdd6991a@gmail.com>
+ cf. <4ed77ebd-e4ba-4d37-9c92-d987b70135a6@gmail.com>
+ cf. <xmqqqzji5id2.fsf@gitster.g>
  source: <pull.2389.v4.git.git.1788301481.gitgitgadget@gmail.com>
 
 
@@ -554,33 +601,34 @@
  source: <pull.2209.git.1787322203.gitgitgadget@gmail.com>
 
 
-* kn/receive-report-hook (2026-09-01) 3 commits
+* kn/receive-report-hook (2026-09-04) 4 commits
  - hook: introduce the receive-report hook
  - receive-pack: move message generation to separate function
+ - receive-pack: drop static variables to track report status version
  - doc: add proc-receive hook info in 'git-receive-pack.adoc'
 
  A new hook 'report' is added to 'git receive-pack', which runs after
  reference updates and allows the server to filter or modify the
  packet-line status report sent back to the client.
 
- Waiting for response.
- cf. <xmqqik4nihyd.fsf@gitster.g>
- source: <20260901-758-introduce-hook-v5-0-35cdc6be3cc1@gmail.com>
+ Needs review.
+ source: <20260904-758-introduce-hook-v7-0-6c66f0a3a572@gmail.com>
 
 
 * en/midx-missing-pack-fallback (2026-08-29) 4 commits
- - packfile: recover when a multi-pack-index names a removed pack
- - mktree: do not use OBJECT_INFO_QUICK when checking objects
- - mktree: plug per-tree leak in --batch mode
- - replay: fail gracefully when a merge input is unreadable
- - Merge branch 'ps/odb-generic-corrupt-objects' into en/midx-missing-pack-fallback
+  (merged to 'next' on 2026-09-04 at 73a4cd73de)
+ + packfile: recover when a multi-pack-index names a removed pack
+ + mktree: do not use OBJECT_INFO_QUICK when checking objects
+ + mktree: plug per-tree leak in --batch mode
+ + replay: fail gracefully when a merge input is unreadable
+ + Merge branch 'ps/odb-generic-corrupt-objects' into en/midx-missing-pack-fallback
 
  The object lookup machinery has been taught to gracefully recover
  when a multi-pack-index points to an owning pack that was removed
  during a concurrent geometric repack, and 'git replay' has been
  fixed to not segfault when reading such missing objects.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <20260831231005.GA973618@coredump.intra.peff.net>
  cf. <374bffe1-47ff-4cb6-9d69-f4b7da7292da@gmail.com>
  source: <pull.2207.v3.git.1787986831.gitgitgadget@gmail.com>
@@ -622,9 +670,9 @@
  The gitdatamodel documentation page has been linked from a handful
  of key documentaiton pages.
 
- Waiting for response.
+ Will merge to 'next'?
  cf. <apUrC_ROf9lyiuAm@pks.im>
- cf. <5e12e3ad-a80c-4c7b-81f7-e028e461fdd1@app.fastmail.com>
+ cf. <954865cf-5984-4e0d-9e8c-7c874896a1f2@app.fastmail.com>
  source: <V2_CV_doc_datamodel_advertize.c20@msgid.xyz>
 
 
@@ -655,18 +703,18 @@
  formatting options.
 
  Needs review.
- cf. <xmqqse40ei5f.fsf@gitster.g>
  source: <V2_CV_format-rev_three_more_opts.bd3@msgid.xyz>
 
 
 * ns/ref-symref-additional-tests (2026-08-20) 2 commits
- - t1402: test forbidden characters in refnames
- - t1401: check symbolic-ref failure and --quiet silence on a non-symbolic ref
+  (merged to 'next' on 2026-09-03 at 67a1cf3baa)
+ + t1402: test forbidden characters in refnames
+ + t1401: check symbolic-ref failure and --quiet silence on a non-symbolic ref
 
  A few tests for the reference handling subsystem have been added to
  exercise the handling of forbidden characters and symbolic references.
 
- Will merge to 'next'.
+ Will merge to 'master'.
  cf. <apUdDyG98D5upbhj@pks.im>
  source: <pull.2203.v2.git.1787264417682.gitgitgadget@gmail.com>
  source: <pull.2204.v3.git.1787763107646.gitgitgadget@gmail.com>
@@ -710,6 +758,7 @@
  capabilities dynamically.
 
  Waiting for response.
+ cf. <xmqqbjaefhwo.fsf@gitster.g>
  source: <cover.1788206466.git.ben.knoble@gmail.com>
 
 
@@ -763,8 +812,10 @@
  + checkout: improve message for ambiguous remote branch name
  + checkout: extract function to display advice for ambiguous remotes
 
- 'git worktree add' did not prevent DWIM behavior when '-b' or '-B' was
- specified, which has been corrected.
+ 'git checkout' and 'git worktree add' makes guesses based on a name
+ of a remote-tracking branch, but does not give an error when such a
+ remote-tracking branch cannot be uniquely identified, which has
+ been corrected.
 
  Will merge to 'master'.
  cf. <xmqq4igfa2pv.fsf@gitster.g>
@@ -772,17 +823,18 @@
 
 
 * hn/ci-cancel-stale-pr-runs (2026-08-31) 1 commit
- - ci: cancel stale pull request workflow runs
+  (merged to 'next' on 2026-09-03 at e4d4816938)
+ + ci: cancel stale pull request workflow runs
 
  GitHub Actions CI workflow runs triggered by pull requests have
  been configured to cancel older runs when a new push is made to the
  same pull request.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  source: <pull.2369.v3.git.git.1788193095825.gitgitgadget@gmail.com>
 
 
-* hn/checkout-m-autostash-refine (2026-09-02) 2 commits
+* hn/checkout-m-autostash-refine (2026-09-03) 2 commits
  - checkout: separate autostash conflict advice from branch-switch message
  - stash: reserve exit status 1 for conflicts
 
@@ -791,10 +843,9 @@
  visually separates autostash conflict advice from the subsequent
  branch-switch message.
 
- Waiting for response.
- cf. <xmqqse3rh1mp.fsf@gitster.g>
- cf. <xmqqmrtzh0vx.fsf@gitster.g>
- source: <pull.2364.v4.git.git.1788373743.gitgitgadget@gmail.com>
+ Will merge to 'next'?
+ cf. <xmqq7bl2b1zs.fsf@gitster.g>
+ source: <pull.2364.v5.git.git.1788446398.gitgitgadget@gmail.com>
 
 
 * kj/repo-info-more-path-keys (2026-08-25) 7 commits
@@ -811,7 +862,8 @@
  root, superproject working tree, object database, etc.), supporting
  both absolute and relative path formats.
 
- Needs review.
+ Needs review (Broken???)
+ cf. <CA+rGoLcZ6u+Rbz2PNGiaPbeHB=LSAqxi0r6jYZL3RjG6wimJ3Q@mail.gmail.com>
  source: <20260825175818.645579-1-jayatheerthkulkarni2005@gmail.com>
 
 
@@ -899,7 +951,7 @@
  Apache handles concurrent requests.
 
  Will merge to 'next'?
- cf. <apa0N7VNNkcKurbi@pks.im>
+ cf. <apkFyvN4hcEOadQq@pks.im>
  source: <pull.2171.v5.git.1788277983.gitgitgadget@gmail.com>
 
 
@@ -917,14 +969,14 @@
  source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
 
 
-* mm/line-log-limited-ops (2026-06-27) 7 commits
- - diffcore-pickaxe: scope -G to the -L tracked range
+* mm/line-log-limited-ops (2026-09-02) 7 commits
+ - diffcore-pickaxe: limit -G to the -L tracked range
  - diff: support --check with -L line ranges
- - line-log: support diff stat formats with -L
+ - diff: support stat formats with -L
  - diff: extract a line-range diff helper for reuse
  - diff: emit -L hunk headers via xdiff's formatter
  - diff: simplify the line-range filter by classifying removals immediately
- - diff: rename and group the line-range filter for clarity
+ - diff: rename line-range filter struct and clarify fields
  (this branch is used by mm/diff-process-hunks.)
 
  The 'git log -L<range>:<path>' command has been taught to limit
@@ -932,7 +984,7 @@
  the specified range and path.
 
  Needs review.
- source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
+ source: <pull.2152.v3.git.1788411919.gitgitgadget@gmail.com>
 
 
 * hn/history-squash (2026-08-20) 8 commits