]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2026/07 #05)
authorJunio C Hamano <gitster@pobox.com>
Mon, 13 Jul 2026 01:35:25 +0000 (18:35 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Jul 2026 01:35:25 +0000 (18:35 -0700)
whats-cooking.txt

index dbfd9b9745e0fd5dfb6dc11eaea5101a2f1c9a9c..18c733698edec05bfc039136b742f428f56ababa 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
-Subject: What's cooking in git.git (Jul 2026, #04)
+Subject: What's cooking in git.git (Jul 2026, #05)
 X-master-at: f60db8d575adb79761d363e026fb49bddf330c73
-X-next-at: 6434b31f5699143ab55cdfd0d7f1cdbbd37d82c1
+X-next-at: 8d093f411df65440e1ddb297f1180711f28b7488
 Bcc: lwn@lwn.net, gitster@pobox.com
 
-What's cooking in git.git (Jul 2026, #04)
+What's cooking in git.git (Jul 2026, #05)
 -----------------------------------------
 
 Here are the topics that have been cooking in my tree.  Commits
@@ -50,6 +50,154 @@ Release tarballs are available at:
 --------------------------------------------------
 [New Topics]
 
+* js/pack-objects-delta-size-t (2026-07-09) 12 commits
+ - git-zlib: widen `git_deflate_bound()` to `size_t`
+ - t/helper/test-pack-deltas: widen `do_compress()`'s maxsize local to `size_t`
+ - http-push: widen `start_put()`'s size local from `ssize_t` to `size_t`
+ - diff: widen `deflate_it()`'s bound local from int to `size_t`
+ - archive-zip: widen `zlib_deflate_raw()`'s maxsize local to `size_t`
+ - packfile, git-zlib: widen `use_pack()` and zstream avail fields to `size_t`
+ - delta: widen `create_delta()` and `diff_delta()` to `size_t`
+ - pack-objects: widen `mem_usage` and `try_delta()`'s out-param to `size_t`
+ - pack-objects: widen `free_unpacked()` return to `size_t`
+ - pack-objects: widen delta-cache accounting to `size_t`
+ - delta: widen `create_delta_index()` parameter to `size_t`
+ - diff-delta: widen `struct delta_index`' size fields to `size_t`
+
+ The pack-objects and delta-encoding code paths have been updated to
+ use 'size_t' instead of 'unsigned long' for object sizes and offset
+ limits, avoiding potential truncation issues on 64-bit Windows.
+
+ Needs review.
+ source: <pull.2175.git.1783615780.gitgitgadget@gmail.com>
+
+
+* cl/b4-cover-change-id (2026-07-10) 1 commit
+ - b4: include change-id in cover template
+
+ The in-tree 'b4' cover letter template has been updated to include the
+ 'change-id' trailer, ensuring that sent tags generated by 'b4' contain
+ the required tracking information for subsequent runs.
+
+ Will merge to 'next'.
+ source: <20260710-add-change-id-to-b4-template-v1-1-1bd37a25064e@black-desk.cn>
+
+
+* ps/odb-stream-double-close-fix (2026-07-10) 1 commit
+ - object-file: fix closing object stream twice
+
+ The stream-based object signature verification path has been
+ corrected to avoid double-closing the stream on read errors.
+
+ Will merge to 'next'.
+ source: <20260710-pks-odb-stream-double-close-v1-1-d5fa233a37c7@pks.im>
+
+
+* pz/fetch-submodule-errors-config (2026-07-11) 3 commits
+ - fixup! fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
+ - fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
+ - submodule: fix premature failure in recursive submodule fetch
+
+ The 'git fetch' command has been updated to allow configuring how
+ submodule fetch errors are handled.  A new configuration variable
+ 'fetch.submoduleErrors' and a corresponding '--submodule-errors'
+ command-line option have been introduced, allowing users to make
+ submodule fetch errors non-fatal (warn instead of fail). Additionally,
+ a premature failure during recursive submodule fetches has been fixed
+ by deferring the error until the OID-based retry phase also fails.
+
+ Needs review.
+ source: <20260710122655.3066377-1-paulius.zaleckas@gmail.com>
+
+
+* gr/add-e-use-apply-api (2026-07-10) 1 commit
+ - builtin/add.c: replace run_command() with direct apply_all_patches() call
+
+ The application of the edited patch in 'git add -e' has been
+ refactored to use the internal apply API directly, avoiding the need
+ to spawn a 'git apply' subprocess.
+
+ Needs review.
+ source: <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com>
+
+
+* fz/rebase-autosquash-empty (2026-07-11) 1 commit
+ . sequencer: honor --empty when a fixup!/squash! empties its target
+
+ A commit that is emptied by melding a 'fixup!' or 'squash!' commit
+ during 'git rebase --autosquash' is now handled according to the
+ '--empty' option, allowing it to be dropped, kept, or to halt the
+ rebase.
+
+ Waiting for response(s) to review comment(s).
+ cf. <xmqqh5m494yh.fsf@gitster.g>
+ source: <20260711-fz-autosquash-empty-v3-1-d227b63eb511@gmail.com>
+
+--------------------------------------------------
+[Stalled]
+
+* kh/doc-trailers (2026-06-10) 10 commits
+ - doc: interpret-trailers: document comment line treatment
+ - doc: interpret-trailers: commit to “trailer block” term
+ - doc: interpret-trailers: join new-trailers again
+ - doc: interpret-trailers: add key format example
+ - doc: interpret-trailers: explain key format
+ - doc: interpret-trailers: explain the format after the intro
+ - doc: interpret-trailers: not just for commit messages
+ - doc: interpret-trailers: use “metadata” in Name as well
+ - doc: interpret-trailers: replace “lines” with “metadata”
+ - doc: interpret-trailers: stop fixating on RFC 822
+
+ Documentation for 'git interpret-trailers' has been updated to explain
+ the format of trailer keys (alphanumeric characters and hyphens),
+ replace outdated terminology, define key terms upfront, and document
+ how comment lines in the input are treated.
+
+ Expecting a reroll for too long, stalled.
+ cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
+ source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
+
+
+* sn/rebase-update-refs-symrefs (2026-06-03) 1 commit
+ - rebase: skip branch symref aliases
+
+ 'git rebase --update-refs' has been taught to resolve local branch
+ symrefs to their referents before queuing updates, ensuring aliases of
+ the current branch are skipped and duplicate updates are avoided to
+ prevent failures when branch aliases are present.
+
+ Waiting for response(s) to review comment(s) for too long, stalled.
+ cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
+ source: <pull.2126.v2.git.1780482436865.gitgitgadget@gmail.com>
+
+
+* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
+ - http: preserve wwwauth_headers across redirects
+
+ When 'cURL' follows a redirect, the 'WWW-Authenticate' headers from
+ the redirect target were lost because 'credential_from_url()' cleared
+ the credential state.  This has been fixed by preserving the collected
+ headers across the redirect update.
+
+ Will discard.
+ cf. <xmqqmrw2zavx.fsf@gitster.g>
+ source: <20260602161150.1527493-1-aplattner@nvidia.com>
+
+
+* jt/config-lock-timeout (2026-05-17) 1 commit
+ - config: retry acquiring config.lock, configurable via core.configLockTimeout
+
+ Configuration file locking has been updated to retry for a short
+ period, avoiding failures when multiple processes attempt to update
+ the configuration simultaneously.
+
+ Waiting for response(s) to review comment(s) for too long, stalled.
+ cf. <agrIrGwSMFlKTx9x@pks.im>
+ source: <20260517132111.1014901-1-joerg@thalheim.io>
+
+--------------------------------------------------
+[Cooking]
+
 * dm/submodule-update-i-shorthand (2026-07-07) 1 commit
  - submodule--helper: accept '-i' shorthand for update --init
 
@@ -57,42 +205,45 @@ Release tarballs are available at:
  'git submodule update' command until it was broken in a modernization
  of the option-parsing code, has been restored.
 
- Will merge to 'next'?
+ Needs review.
  source: <20260708-submodule-init-v1-1-719456077262@atmark-techno.com>
 
 
 * hf/unpack-trees-quadratic-scan (2026-07-08) 1 commit
- - unpack-trees: avoid quadratic index scan in next_cache_entry()
+  (merged to 'next' on 2026-07-12 at 744f1aede4)
+ + unpack-trees: avoid quadratic index scan in next_cache_entry()
 
  The cache-scanning loop in 'next_cache_entry()' has been optimized
  to avoid rescanning already-unpacked index entries, preventing a
  quadratic performance slow-down when diffing the working tree
  against a commit with a pathspec matching early index entries.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <xmqqpl0xqh3n.fsf@gitster.g>
  source: <pull.2353.v2.git.git.1783546933992.gitgitgadget@gmail.com>
 
 
 * jc/relnotes-2.55-rust-fix (2026-07-07) 1 commit
- - Rust: fix description in Release Notes to 2.55
+  (merged to 'next' on 2026-07-10 at 444d202a75)
+ + Rust: fix description in Release Notes to 2.55
 
  A description in the release notes for Git 2.55.0 has been
  retroactively updated to clarify that Rust support is enabled by
  default, but still optional, and will become mandatory in Git 3.0.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  source: <xmqqpl0y4rpg.fsf@gitster.g>
 
 
 * jc/submitting-patches-abandoning (2026-07-08) 1 commit
- - SubmittingPatches: document how to retract a topic
+  (merged to 'next' on 2026-07-10 at 41b9b65b23)
+ + SubmittingPatches: document how to retract a topic
 
  The 'SubmittingPatches' document has been updated to explicitly
  describe the expectation for contributors to retract or abandon their
  patch series when they are no longer pursuing it.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <ak6U07K1dQPlXxIp@nixos>
  source: <xmqqpl0xv25e.fsf@gitster.g>
 
@@ -119,7 +270,7 @@ Release tarballs are available at:
  source: <20260708035235.GA41491@coredump.intra.peff.net>
 
 
-* mm/lib-httpd-cgi-safe (2026-07-07) 3 commits
+* mm/lib-httpd-cgi-safe (2026-07-10) 3 commits
  - t/README: document writing concurrency-safe helpers
  - t/lib-httpd: make http-429 first-request check atomic
  - t/lib-httpd: fix apply-one-time-script race under concurrent requests
@@ -128,9 +279,8 @@ Release tarballs are available at:
  to use atomic filesystem operations, preventing race conditions when
  Apache handles concurrent requests.
 
- Expecting a reroll.
- cf. <CAC2QwmKuHUP6_287T9SOLdjLdb=b4EqV4qJ_NnYCkGP0-d6qHA@mail.gmail.com>
- source: <pull.2171.git.1783479584.gitgitgadget@gmail.com>
+ Needs review.
+ source: <pull.2171.v2.git.1783704657.gitgitgadget@gmail.com>
 
 
 * mm/sideband-ansi-sgr-colon-fix (2026-05-13) 1 commit
@@ -172,8 +322,9 @@ Release tarballs are available at:
 
 
 * tc/bundle-uri-empty-fix (2026-07-08) 2 commits
- - bundle-uri: stop sending invalid bundle configuration
- - bundle-uri: drain remaining response on invalid bundle-uri lines
+  (merged to 'next' on 2026-07-12 at 9da32fdaf7)
+ + bundle-uri: stop sending invalid bundle configuration
+ + bundle-uri: drain remaining response on invalid bundle-uri lines
 
  The client-side parser of server-advertised bundle-URI list has been
  updated to drain the remaining response in order to avoid protocol
@@ -181,48 +332,53 @@ Release tarballs are available at:
  the server-side has been taught to omit empty configuration values
  instead of sending invalid key-value lines.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <xmqqtsq9qj5k.fsf@gitster.g>
  source: <20260708-toon-bundle-uri-no-uri-v2-0-09a03d8db556@iotcl.com>
 
 
 * gr/t1410-reflog-exit-code (2026-07-08) 1 commit
- - t1410-reflog.sh: avoid suppressing git's exit code in pipelines
+  (merged to 'next' on 2026-07-10 at d0cf55ea54)
+ + t1410-reflog.sh: avoid suppressing git's exit code in pipelines
 
  The pipelines in 't1410-reflog.sh' have been replaced with the
  'test_stdout_line_count' helper to avoid suppressing the exit code of
  'git' commands, ensuring failures are not hidden from the test suite.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <xmqqtsq8p18x.fsf@gitster.g>
  source: <20260709051229.40363-1-gatlavishweshwarreddy26@gmail.com>
 
 
-* js/coverity-fixes-null-safety (2026-07-09) 11 commits
- - shallow: fix NULL dereference
- - bisect: ensure non-NULL `head` before using it
- - pack-bitmap: handle missing bitmap for base MIDX
- - revision: avoid dereferencing NULL in `add_parents_only()`
- - replay: die when --onto does not peel to a commit
- - bisect: handle NULL commit in `bisect_successful()`
- - mailsplit: move NULL check before first use of file handle
- - reftable/stack: guard against NULL list_file in stack_destroy
- - remote: guard `remote_tracking()` against NULL remote
- - diff: handle NULL return from repo_get_commit_tree()
- - diffcore-break: guard against NULLed queue entries in merge loop
+* js/coverity-fixes-null-safety (2026-07-10) 12 commits
+  (merged to 'next' on 2026-07-12 at 8d093f411d)
+ + shallow: give write_one_shallow() its own hex buffer
+ + shallow: fix NULL dereference
+ + bisect: ensure non-NULL `head` before using it
+ + pack-bitmap: handle missing bitmap for base MIDX
+ + revision: avoid dereferencing NULL in `add_parents_only()`
+ + replay: die when --onto does not peel to a commit
+ + bisect: handle NULL commit in `bisect_successful()`
+ + mailsplit: move NULL check before first use of file handle
+ + reftable/stack: guard against NULL list_file in stack_destroy
+ + remote: guard `remote_tracking()` against NULL remote
+ + diff: handle NULL return from repo_get_commit_tree()
+ + diffcore-break: guard against NULLed queue entries in merge loop
 
  Various code paths have been hardened against potential NULL-pointer
  dereferences and invalid file descriptor accesses flagged by
  Coverity.
 
- Needs review.
- source: <pull.2174.git.1783590159.gitgitgadget@gmail.com>
+ Will merge to 'master'.
+ cf. <xmqqa4ryg84e.fsf@gitster.g>
+ source: <pull.2174.v2.git.1783683577.gitgitgadget@gmail.com>
 
 
-* ps/odb-for-each-object-filter (2026-07-09) 8 commits
+* ps/odb-for-each-object-filter (2026-07-10) 9 commits
  - builtin/cat-file: filter objects via object database
  - odb: introduce object filters to `odb_for_each_object()`
  - pack-bitmap: introduce function to open bitmap for a single source
+ - pack-bitmap: drop `_1` suffix from functions that open bitmaps
  - pack-bitmap: iterate object sources when opening bitmaps
  - pack-bitmap: allow aborting iteration of bitmapped objects
  - pack-bitmap: mark object filter as `const`
@@ -230,115 +386,53 @@ Release tarballs are available at:
  - Merge branch 'ps/odb-drop-whence' into ps/odb-for-each-object-filter
  (this branch uses ps/odb-drop-whence.)
 
- The object database enumeration interface 'odb_for_each_object()'
- has learned to accept object filters, allowing the underlying
- backends to optimize the traversal by using reachability bitmaps
- when available. 'git cat-file --batch-all-objects' has been updated
- to use this generic interface, simplifying its code and avoiding
direct access to ODB backend internals.
+ The object database enumeration interface 'odb_for_each_object()' has
+ been taught to accept object filters, allowing the underlying backends
+ to optimize the traversal by using reachability bitmaps when
+ available.  'git cat-file --batch-all-objects' has been updated to
+ use this generic interface, simplifying its code and avoiding direct
+ access to ODB backend internals.
 
  Needs review.
- source: <20260709-pks-odb-for-each-object-filter-v1-0-82fe014b12b3@pks.im>
+ source: <20260710-pks-odb-for-each-object-filter-v2-0-3710a9cc165a@pks.im>
 
 
 * ps/refs-wo-the-repository (2026-07-09) 8 commits
. refs: remove remaining uses of `the_repository`
. worktree: pass repository to public functions
. worktree: pass repository to file-local functions
. worktree: refactor code to use available repositories
. refs/files: drop `USE_THE_REPOSITORY_VARIABLE`
. refs/packed: drop `USE_THE_REPOSITORY_VARIABLE`
. refs/packed: de-globalize handling of "core.packedRefsTimeout"
. Merge branch 'ps/refs-writing-subcommands' into ps/refs-wo-the-repository
- refs: remove remaining uses of `the_repository`
- worktree: pass repository to public functions
- worktree: pass repository to file-local functions
- worktree: refactor code to use available repositories
- refs/files: drop `USE_THE_REPOSITORY_VARIABLE`
- refs/packed: drop `USE_THE_REPOSITORY_VARIABLE`
- refs/packed: de-globalize handling of "core.packedRefsTimeout"
- Merge branch 'ps/refs-writing-subcommands' into ps/refs-wo-the-repository
  (this branch uses ps/refs-writing-subcommands.)
 
- The ref subsystem and the worktree API have been refactored to pass
repository pointer down the call chain, allowing them to drop
+ The ref subsystem and the worktree API have been refactored to pass a
+ repository pointer down the call chain, allowing them to drop
  references to the global 'the_repository' variable. As part of this,
  the handling of the 'core.packedRefsTimeout' configuration has been
  moved into the per-repository ref store structure.
 
- Needs review.
+ Expecting a reroll.
+ cf. <alCJpxAQwpTQ4g93@pks.im>
  source: <20260709-pks-refs-wo-the-repository-v1-0-1ad6f27529c9@pks.im>
 
 
 * kk/commit-graph-topo-levels-fix (2026-07-09) 2 commits
- - commit-graph: propagate topo_levels slab to all chain layers
- - commit-graph: add trace2 instrumentation for generation DFS
+  (merged to 'next' on 2026-07-12 at 295a5f9b34)
+ + commit-graph: propagate topo_levels slab to all chain layers
+ + commit-graph: add trace2 instrumentation for generation DFS
 
- The 'topo_levels' slab was only propagated to the topmost layer of a
- split commit-graph chain, causing incremental writes to recompute
topological levels for commits in base layers. This has been
+ The 'topo_levels' slab was propagated only to the topmost layer of a
+ split commit-graph chain, causing topological levels for commits in
base layers to be recomputed during incremental writes. This has been
  corrected.
 
- Will merge to 'next'?
- cf. <ak-ljlV33GLigFf6@pks.im>
+ Will merge to 'master'.
+ cf. <alFu8gZURKhYr1VE@com-79390>
  source: <pull.2170.v2.git.1783609382.gitgitgadget@gmail.com>
 
---------------------------------------------------
-[Stalled]
-
-* kh/doc-trailers (2026-06-10) 10 commits
- - doc: interpret-trailers: document comment line treatment
- - doc: interpret-trailers: commit to “trailer block” term
- - doc: interpret-trailers: join new-trailers again
- - doc: interpret-trailers: add key format example
- - doc: interpret-trailers: explain key format
- - doc: interpret-trailers: explain the format after the intro
- - doc: interpret-trailers: not just for commit messages
- - doc: interpret-trailers: use “metadata” in Name as well
- - doc: interpret-trailers: replace “lines” with “metadata”
- - doc: interpret-trailers: stop fixating on RFC 822
-
- Documentation for 'git interpret-trailers' has been updated to explain
- the format of trailer keys (alphanumeric characters and hyphens),
- replace outdated terminology, define key terms upfront, and document
- how comment lines in the input are treated.
-
- Expecting a reroll for too long. stalled.
- cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
- source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
-
-
-* sn/rebase-update-refs-symrefs (2026-06-03) 1 commit
- - rebase: skip branch symref aliases
-
- 'git rebase --update-refs' has been taught to resolve local branch
- symrefs to their referents before queuing updates, ensuring aliases of
- the current branch are skipped and duplicate updates are avoided to
- prevent failures when branch aliases are present.
-
- Waiting for response(s) to review comment(s) for too long, stalled.
- cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
- source: <pull.2126.v2.git.1780482436865.gitgitgadget@gmail.com>
-
-
-* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
- - http: preserve wwwauth_headers across redirects
-
- When 'cURL' follows a redirect, the 'WWW-Authenticate' headers from
- the redirect target were lost because 'credential_from_url()' cleared
- the credential state. This has been fixed by preserving the collected
- headers across the redirect update.
-
- Will discard.
- cf. <xmqqmrw2zavx.fsf@gitster.g>
- source: <20260602161150.1527493-1-aplattner@nvidia.com>
-
-
-* jt/config-lock-timeout (2026-05-17) 1 commit
- - config: retry acquiring config.lock, configurable via core.configLockTimeout
-
- Configuration file locking has been updated to retry for a short
- period, avoiding failures when multiple processes attempt to update
- the configuration simultaneously.
-
- Waiting for response(s) to review comment(s) for too long, stalled.
- cf. <agrIrGwSMFlKTx9x@pks.im>
- source: <20260517132111.1014901-1-joerg@thalheim.io>
-
---------------------------------------------------
-[Cooking]
 
 * ds/sparse-index-ita-crash (2026-07-06) 1 commit
  - sparse-index: avoid crash on intent-to-add entry outside the cone
@@ -361,23 +455,24 @@ Release tarballs are available at:
  script on repositories already managed by the new tool.
 
  Expecting a reroll.
- cf. <27215.27575.968985.583226@chiark.greenend.org.uk>
+ cf. <27219.20156.438730.881821@chiark.greenend.org.uk>
  source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
 
 
-* kk/reftable-tombstone-quadratic-fix (2026-07-09) 2 commits
- - reftable: fix quadratic behavior in the presence of tombstones
- - t/perf: add perf test for ref tombstone scenarios
+* kk/reftable-tombstone-quadratic-fix (2026-07-10) 2 commits
+  (merged to 'next' on 2026-07-12 at 4e60bb0027)
+ + reftable: fix quadratic behavior in the presence of tombstones
+ + t/perf: add perf test for ref tombstone scenarios
 
- The performance of ref updates and reads using the reftable backend in
- the presence of many deletion tombstone records has been optimized by
- removing the tombstone suppression flag from the merged iterator and
- instead skipping tombstones at higher-level call sites where iteration
- bounds are known.
+ The performance of ref updates and reads using the 'reftable' backend
+ in the presence of many deletion tombstone records has been optimized
+ by removing the tombstone suppression flag from the merged iterator
+ and instead skipping tombstones at higher-level call sites where
iteration bounds are known.
 
Expecting a reroll.
- cf. <CAL71e4PrtZwB8TMg3eBj=LzC7ik+C8yxLYEEEP7SDgMPiWSs0Q@mail.gmail.com>
- source: <pull.2166.v2.git.1783598912.gitgitgadget@gmail.com>
Will merge to 'master'.
+ cf. <alECc90WZ9RPqMaA@pks.im>
+ source: <pull.2166.v3.git.1783679767.gitgitgadget@gmail.com>
 
 
 * rs/blame-abbrev-marks (2026-07-06) 1 commit
@@ -406,17 +501,18 @@ Release tarballs are available at:
 
 
 * bc/parse-options-exit-0-on-help (2026-07-07) 4 commits
- - parse-options: exit 0 on -h
- - rev-parse: have --parseopt callers exit 0 on --help
- - parse-options: add a separate case for help output on error
- - t1517: skip svn tests if svn is not installed
+  (merged to 'next' on 2026-07-10 at 775654e447)
+ + parse-options: exit 0 on -h
+ + rev-parse: have --parseopt callers exit 0 on --help
+ + parse-options: add a separate case for help output on error
+ + t1517: skip svn tests if svn is not installed
 
- Option parsing with 'git rev-parse --parseopt' and most 'git'
+ Option parsing with 'git rev-parse --parseopt' and in most 'git'
  subcommands has been updated to exit with 0 (instead of 129) when the
  help option ('-h' or '--help') is requested directly by the user,
  aligning with standard Unix convention.
 
- Will merge to 'next'.
+ Will merge to 'master'.
  cf. <20260708035930.GB41684@coredump.intra.peff.net>
  source: <20260708001557.3581080-1-sandals@crustytoothpaste.net>
 
@@ -470,17 +566,16 @@ Release tarballs are available at:
  source: <20260702075234.GA1548258@coredump.intra.peff.net>
 
 
-* ml/t9811-replace-test-f (2026-07-02) 1 commit
+* ml/t9811-replace-test-f (2026-07-11) 2 commits
  - t9811: replace 'test -f' and '! test -f' with 'test_path_*'
+ - t9811: break long && chains into multiple lines
 
  The test script 't/t9811-git-p4-label-import.sh' has been
  modernized to use 'test_path_is_file' and 'test_path_is_missing'
  instead of raw 'test -f' and '! test -f' calls.
 
- Expecting a reroll.
- cf. <akdwp_a2EuhVoGVW@pks.im>
- cf. <CAO=vGZpMe3dxyzFVwR7BWBxaAZ-z9Kw3CqQ0kAe5ZZGSQszkzw@mail.gmail.com>
- source: <20260702140704.65805-1-marcelomlage@usp.br>
+ Needs review.
+ source: <20260711160447.99708-1-marcelomlage@usp.br>
 
 
 * ps/t-fixes-for-git-test-long (2026-07-05) 9 commits
@@ -521,9 +616,10 @@ Release tarballs are available at:
 
 
 * sn/osxkeychain-rust-universal (2026-07-07) 3 commits
- - contrib: wire up osxkeychain in contrib/Makefile on macOS
- - Makefile: support universal macOS builds via RUST_TARGETS
- - Makefile: add $(RUST_LIB) prerequisite to osxkeychain
+  (merged to 'next' on 2026-07-10 at fe82b5d188)
+ + contrib: wire up osxkeychain in contrib/Makefile on macOS
+ + Makefile: support universal macOS builds via RUST_TARGETS
+ + Makefile: add $(RUST_LIB) prerequisite to osxkeychain
 
  The build system has been updated to support building universal macOS
  binaries when 'Rust' is enabled, by compiling separate static archives
@@ -531,36 +627,35 @@ Release tarballs are available at:
  using the macOS 'lipo' tool. The 'git-credential-osxkeychain' helper
  has been updated to link against '$(RUST_LIB)' when 'Rust' is enabled.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <xmqq4ii9teym.fsf@gitster.g>
  source: <pull.2288.v8.git.git.1783480879.gitgitgadget@gmail.com>
 
 
-* cl/conditional-config-on-worktree-path (2026-07-08) 3 commits
- . config: add "worktree" and "worktree/i" includeIf conditions
- . repository: keep a symlink-preserving copy of the worktree path
- . config: refactor include_by_gitdir() into include_by_path()
+* cl/conditional-config-on-worktree-path (2026-07-09) 2 commits
+ - config: add "worktree" and "worktree/i" includeIf conditions
+ - config: refactor include_by_gitdir() into include_by_path()
 
  The '[includeIf "condition"]' conditional inclusion facility for
  configuration files has been taught to use the location of the
  worktree in its condition.
 
  Needs review.
- cf. <ak9zWopOWpRVHmmS@pks.im>
- cf. <xmqqzezzkibu.fsf@gitster.g>
- source: <20260709-includeif-worktree-v7-0-e87e705e8df6@black-desk.cn>
+ source: <20260710-includeif-worktree-v8-0-04686d8a616c@black-desk.cn>
 
 
 * kk/commit-reach-find-all-fix (2026-06-29) 2 commits
- - commit-reach: guard !FIND_ALL early exit with generation ordering check
- - t6600: add test for merge-base early exit with clock skew
+  (merged to 'next' on 2026-07-10 at 0444c74d81)
+ + commit-reach: guard !FIND_ALL early exit with generation ordering check
+ + t6600: add test for merge-base early exit with clock skew
+ (this branch is used by kk/merge-base-exhaustion.)
 
- The early-exit optimization in 'paint_down_to_common()' has been gated
- on the queue being generation-ordered. This fixes a bug where 'git
- merge-base' (without '--all') could return incorrect results on
- repositories with v1 commit graphs and clock skew.
+ The early-exit optimization in 'paint_down_to_common()' has been
+ gated on the queue being generation-ordered, fixing a bug where
+ 'git merge-base' (without '--all') could return incorrect results
on repositories with v1 commit graphs and clock skew.
 
- Will merge to 'next'.
+ Will merge to 'master'.
  cf. <xmqqjyr5v1gu.fsf@gitster.g>
  source: <pull.2162.git.1782739162.gitgitgadget@gmail.com>
 
@@ -568,8 +663,8 @@ Release tarballs are available at:
 * bl/t7412-use-test-path-helpers (2026-06-29) 1 commit
  - submodule absorbgitdirs tests: use test_* helper functions
 
- 't7412' that tests 'git submodule absorbgitdirs' has been modernized
- to use 'test_path_is_file', 'test_path_is_dir', and
+ The test script 't7412' that tests 'git submodule absorbgitdirs' has
been modernized to use 'test_path_is_file', 'test_path_is_dir', and
  'test_path_is_missing' helper functions instead of raw 'test -[fde]'
  commands.
 
@@ -593,22 +688,23 @@ Release tarballs are available at:
 
 
 * ps/setup-split-discovery-and-setup (2026-07-07) 16 commits
- - setup: mark `set_git_work_tree()` as file-local
- - setup: pass worktree to `init_db()`
- - setup: drop redundant configuration of `startup_info->have_repository`
- - setup: make repository discovery self-contained
- - setup: propagate prefix via repository discovery
- - setup: drop static `cwd` variable
- - setup: move prefix into repository
- - setup: embed repository format in discovery
- - setup: introduce explicit repository discovery
- - setup: split up concerns of `setup_git_env_internal()`
- - setup: unify setup of shallow file
- - setup: mark bogus worktree in `apply_repository_format()`
- - setup: rename `check_repository_format_gently()`
- - Merge branch 'jk/repo-info-path-keys' into ps/setup-split-discovery-and-setup
- - Merge branch 'ps/setup-drop-global-state' into ps/setup-split-discovery-and-setup
- - Merge branch 'ps/refs-onbranch-fixes' into ps/setup-split-discovery-and-setup
+  (merged to 'next' on 2026-07-10 at 1691a942ab)
+ + setup: mark `set_git_work_tree()` as file-local
+ + setup: pass worktree to `init_db()`
+ + setup: drop redundant configuration of `startup_info->have_repository`
+ + setup: make repository discovery self-contained
+ + setup: propagate prefix via repository discovery
+ + setup: drop static `cwd` variable
+ + setup: move prefix into repository
+ + setup: embed repository format in discovery
+ + setup: introduce explicit repository discovery
+ + setup: split up concerns of `setup_git_env_internal()`
+ + setup: unify setup of shallow file
+ + setup: mark bogus worktree in `apply_repository_format()`
+ + setup: rename `check_repository_format_gently()`
+ + Merge branch 'jk/repo-info-path-keys' into ps/setup-split-discovery-and-setup
+ + Merge branch 'ps/setup-drop-global-state' into ps/setup-split-discovery-and-setup
+ + Merge branch 'ps/refs-onbranch-fixes' into ps/setup-split-discovery-and-setup
 
  The repository discovery and repository configuration phases, which
  were previously intertwined in 'setup.c', have been split. Repository
@@ -617,7 +713,7 @@ Release tarballs are available at:
  repository configuration to initialize the repository, paving the way
  for clean unification of repository configuration.
 
- Will merge to 'next'.
+ Will merge to 'master'.
  cf. <87h5m9om0j.fsf@emacs.iotcl.com>
  source: <20260707-pks-setup-split-discovery-and-setup-v2-0-aab372cd227c@pks.im>
 
@@ -715,9 +811,9 @@ Release tarballs are available at:
  - repack: unconditionally exclude non-kept packs
 
  'git repack' has been taught to accept '--geometric' and '--cruft'
- together. When both are given, the geometric repack rolls up non-cruft
- packs as usual, while a separate cruft pack is written to collect
- unreachable objects.
+ together. When both are given, non-cruft packs are rolled up by the
+ geometric repack as usual, while a separate cruft pack is written to
collect unreachable objects.
 
  Waiting for response(s) to review comment(s).
  cf. <aj8cOhH6hGVZIFft@nand.local>
@@ -749,7 +845,7 @@ Release tarballs are available at:
  source: <20260624093618.17456-1-antonio.destefani08@gmail.com>
 
 
-* jt/receive-pack-use-odb-transactions (2026-07-08) 11 commits
+* jt/receive-pack-use-odb-transactions (2026-07-10) 11 commits
  - builtin/receive-pack: stage incoming objects via ODB transactions
  - builtin/receive-pack: drop redundant tmpdir env
  - odb/transaction: introduce ODB transaction flags
@@ -766,9 +862,8 @@ Release tarballs are available at:
  interfaces instead of directly managing 'tmp_objdir' for staging
  incoming objects, bringing it closer to being ODB backend agnostic.
 
- Expecting a reroll.
- cf. <ak-ntVKQ8XqMr6zv@denethor>
- source: <20260708235925.3992097-1-jltobler@gmail.com>
+ Needs review.
+ source: <20260710163722.2962278-1-jltobler@gmail.com>
 
 
 * ps/odb-drop-whence (2026-07-02) 7 commits
@@ -792,24 +887,25 @@ Release tarballs are available at:
 
 
 * ps/reftable-hardening (2026-07-03) 12 commits
- - reftable/table: fix OOB read on truncated table
- - reftable/table: fix NULL pointer access when seeking to bogus offsets
- - reftable/block: fix OOB read with bogus restart offset
- - reftable/block: fix use of uninitialized memory when binsearch fails
- - reftable/block: fix OOB read with bogus restart count
- - reftable/block: fix OOB read with bogus block size
- - reftable/block: fix OOB write with bogus inflated log size
- - t/unit-tests: introduce test helper to write reftable blocks
- - reftable/record: don't abort when decoding invalid ref value type
- - reftable/basics: fix OOB read on binary search of empty range
- - oss-fuzz: add fuzzer for parsing reftables
- - meson: support building fuzzers with libFuzzer
+  (merged to 'next' on 2026-07-10 at b8f4dd0ab9)
+ + reftable/table: fix OOB read on truncated table
+ + reftable/table: fix NULL pointer access when seeking to bogus offsets
+ + reftable/block: fix OOB read with bogus restart offset
+ + reftable/block: fix use of uninitialized memory when binsearch fails
+ + reftable/block: fix OOB read with bogus restart count
+ + reftable/block: fix OOB read with bogus block size
+ + reftable/block: fix OOB write with bogus inflated log size
+ + t/unit-tests: introduce test helper to write reftable blocks
+ + reftable/record: don't abort when decoding invalid ref value type
+ + reftable/basics: fix OOB read on binary search of empty range
+ + oss-fuzz: add fuzzer for parsing reftables
+ + meson: support building fuzzers with libFuzzer
 
  The reftable code has been hardened against corrupted tables by
  fixing out-of-bounds writes, out-of-bounds reads, and abort calls
  during parsing.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <877bn5obz9.fsf@emacs.iotcl.com>
  source: <20260703-pks-reftable-hardening-v3-0-b87c555b9920@pks.im>
 
@@ -821,7 +917,7 @@ Release tarballs are available at:
 
  When 'git push origin/main' or 'git branch origin main' is run, the
  command is now recognized as a potential typo, and advice has been
- added to offer a typofix.
+ added to offer a typo fix.
 
  Will merge to 'master'.
  cf. <xmqqfr272lq7.fsf@gitster.g>
@@ -840,7 +936,7 @@ Release tarballs are available at:
  source: <xmqqmrwdxrat.fsf@gitster.g>
 
 
-* ty/migrate-excludes-file (2026-07-09) 9 commits
+* ty/migrate-excludes-file (2026-07-12) 9 commits
  - environment: move object_creation_mode into repo_config_values
  - environment: move autorebase into repo_config_values
  - environment: move push_default into repo_config_values
@@ -855,8 +951,9 @@ Release tarballs are available at:
  (including 'editor_program', 'pager_program', 'askpass_program', and
  'push_default') have been migrated into the per-repository structure.
 
- Needs review.
- source: <20260709161145.13349-1-cat@malon.dev>
+ Expecting a reroll.
+ cf. <2a39cee9-1082-48aa-b42e-e12c34fa0e29@malon.dev>
+ source: <20260712111734.1073514-1-cat@malon.dev>
 
 
 * dk/meson-enable-use-nsec-build (2026-06-20) 1 commit
@@ -865,14 +962,13 @@ Release tarballs are available at:
  The 'USE_NSEC' build knob, which enables support for sub-second file
  timestamp resolution, has been wired up to the Meson build system.
 
- Expecting a reroll.
- cf. <CALnO6CDm74rCBQu6Q0djsvtuw5U14V=PApptcZTgP+pic1f_AA@mail.gmail.com>
- cf. <ajjuoS5Qc3K0nCRl@pks.im>
- cf. <akIL6oJgUv8J8SB2@pks.im>
+ Will discard.
+ cf. <xmqqa4rx9mb5.fsf@gitster.g>
  source: <c4c5ade901ff95b0f95939ea818870e4f3d59da1.1781971201.git.ben.knoble+github@gmail.com>
 
 
-* ps/libgit-in-subdir (2026-06-30) 3 commits
+* ps/libgit-in-subdir (2026-07-10) 4 commits
+ - fixup! Move libgit.a sources into separate "lib/" directory
  - Move libgit.a sources into separate "lib/" directory
  - t/helper: prepare "test-example-tap.c" for introduction of "lib/"
  - Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir
@@ -881,8 +977,8 @@ Release tarballs are available at:
  directory to clean up the top-level directory and clearly separate
  library code.
 
Needs review.
- cf. <akX1TMoRr87Id8Ss@pks.im>
Waiting for response(s) to review comment(s).
+ cf. <0c94331b-7eb1-4116-afa5-811082ad5854@ramsayjones.plus.com>
  source: <20260701-pks-libgit-in-subdir-v3-0-5e4860056094@pks.im>
 
 
@@ -903,15 +999,16 @@ Release tarballs are available at:
 
 
 * ty/migrate-ignorecase (2026-06-19) 2 commits
- - config: use repo_ignore_case() to access core.ignorecase
- - environment: move ignore_case into repo_config_values
+  (merged to 'next' on 2026-07-12 at 39e9fdb93f)
+ + config: use repo_ignore_case() to access core.ignorecase
+ + environment: move ignore_case into repo_config_values
 
  The global configuration variable 'ignore_case' (representing the
  'core.ignorecase' configuration) has been migrated into 'struct
  repo_config_values' to tie it to a specific repository instance.
 
- Waiting for comments from Johannes.
- cf. <xmqqzf0mzc7j.fsf@gitster.g>
+ Will merge to 'master'.
+ cf. <xmqqechaga7p.fsf@gitster.g>
  source: <20260619155152.642760-1-cat@malon.dev>
 
 
@@ -926,26 +1023,25 @@ Release tarballs are available at:
 
  The 'git log -L<range>:<path>' command has been taught to limit
  various 'diff' operations, such as '--stat', '--check', and '-G', to
- the specified range:path.
+ the specified range and path.
 
  Needs review.
  source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
 
 
-* hn/history-squash (2026-07-06) 5 commits
+* hn/history-squash (2026-07-10) 5 commits
  - history: re-edit a squash with every message
- - sequencer: extract helpers for the squash message markers
+ - sequencer: share the squash message marker helpers and flags
  - history: add squash subcommand to fold a range
  - history: give commit_tree_ext a message template
  - history: extract helper for a commit's parent tree
 
  The experimental 'git history' command has been taught a new 'squash'
- subcommand to fold a range of commits into a single commit, replaying
any descendants on top.
+ subcommand to fold a range of commits into a single commit, with any
descendants replayed on top.
 
- Waiting for response(s) to review comment(s).
- cf. <38493ca6-8fdd-4b6c-9972-5145f3bf0aa4@gmail.com>
- source: <pull.2337.v7.git.git.1783327849.gitgitgadget@gmail.com>
+ Needs review.
+ source: <pull.2337.v8.git.git.1783674396.gitgitgadget@gmail.com>
 
 
 * ps/refs-writing-subcommands (2026-07-06) 5 commits
@@ -966,13 +1062,14 @@ Release tarballs are available at:
 
 
 * wy/doc-myfirstcontribution-trim-quotes (2026-06-11) 1 commit
- - MyFirstContribution: mention trimming quoted text in replies
+  (merged to 'next' on 2026-07-12 at adeaa999b6)
+ + MyFirstContribution: mention trimming quoted text in replies
 
  The contributor guide has been updated to advise new contributors to
  trim irrelevant quoted text when replying to review comments, matching
  the existing advice given to reviewers.
 
- Will merge to 'next'?
+ Will merge to 'master'.
  cf. <xmqqcxxwljue.fsf@gitster.g>
  source: <080402ff0ac8127b654dccea59a1bf643df62a5c.1781186476.git.wy@wyuan.org>
 
@@ -984,21 +1081,22 @@ Release tarballs are available at:
 
  The 'git multi-pack-index write --incremental' command has been
  corrected to properly honor the '--base' option. Previously, the
- custom base was ignored by the normal write path, and the pack
- exclusion logic incorrectly skipped packs from layers above the
selected base, breaking reachability closure for bitmaps.
+ custom base was ignored by the normal write path; packs from layers
+ above the selected base were incorrectly skipped by the pack exclusion
logic, and reachability closure for bitmaps was broken.
 
  Needs review.
  source: <cover.1781294771.git.me@ttaylorr.com>
 
 
 * mm/test-grep-lint (2026-07-05) 6 commits
- - t: add greplint to detect bare grep assertions
- - t: convert grep assertions to test_grep
- - t: fix Lexer line count for $() inside double-quoted strings
- - t: extract chainlint's parser into shared module
- - t: fix grep assertions missing file arguments
- - t/README: document test_grep helper
+  (merged to 'next' on 2026-07-10 at 1916c07bf5)
+ + t: add greplint to detect bare grep assertions
+ + t: convert grep assertions to test_grep
+ + t: fix Lexer line count for $() inside double-quoted strings
+ + t: extract chainlint's parser into shared module
+ + t: fix grep assertions missing file arguments
+ + t/README: document test_grep helper
 
  The test suite has been updated to use the 'test_grep' helper instead
  of bare 'grep' for test assertions, allowing file contents to be
@@ -1006,7 +1104,7 @@ Release tarballs are available at:
  been introduced to detect and prevent new bare 'grep' assertions from
  being added to the test suite.
 
- Will merge to 'next'.
+ Will merge to 'master'.
  cf. <xmqqtsqedxmt.fsf@gitster.g>
  source: <pull.2135.v4.git.1783314119.gitgitgadget@gmail.com>
 
@@ -1032,11 +1130,10 @@ Release tarballs are available at:
  - ref-filter: memoize --contains with generations
  - commit-reach: reject cycles in contains walk
 
- 'git branch --contains' and 'git for-each-ref --contains' have
- been optimized to use the memoized commit traversal previously
- used only by 'git tag --contains', significantly speeding up
- connectivity checks across many candidate refs with shared
- history.
+ 'git branch --contains' and 'git for-each-ref --contains' have been
+ optimized to use the memoized commit traversal previously used only by
+ 'git tag --contains', significantly speeding up connectivity checks
+ across many candidate refs with shared history.
 
  Needs review.
  cf. <xmqqqzlpulkp.fsf@gitster.g>
@@ -1058,19 +1155,19 @@ Release tarballs are available at:
  source: <20260707-toon-git-replay-drop-merges-v7-0-808ab9b4afa6@iotcl.com>
 
 
-* ps/cat-file-remote-object-info (2026-07-01) 13 commits
+* ps/cat-file-remote-object-info (2026-07-10) 13 commits
  - cat-file: make remote-object-info allow-list dynamic
  - cat-file: validate remote atoms with an allow-list
  - cat-file: add remote-object-info to batch-command
  - transport: add client support for object-info
  - serve: advertise object-info feature
  - fetch-pack: move fetch initialization
- - connect: make `write_fetch_command_and_capabilities()` more generic
- - fetch-pack: move `write_fetch_command_and_capabilities()` to connect.c
- - fetch-pack: drop static `advertise_sid` variable
+ - connect: make write_fetch_command_and_capabilities() more generic
+ - fetch-pack: move write_fetch_command_and_capabilities() to connect.c
+ - fetch-pack: drop static advertise_sid variable
+ - fetch-pack: fix hash_algo variable type
  - t1006: split test utility functions into new 'lib-cat-file.sh'
  - cat-file: declare loop counter inside for()
- - git-compat-util: add `strtoumax_szt()` with error handling
  - transport-helper: fix memory leak of helper on disconnect
 
  The 'remote-object-info' command has been added to 'git cat-file
@@ -1080,9 +1177,9 @@ Release tarballs are available at:
  filtered on the client based on server-advertised capabilities,
  returning empty strings for inapplicable or unsupported fields.
 
- Expecting a reroll.
- cf. <CAN5EUNQ=2qtKXSJvxQiNLYqx0N0m6sfyBGLLXm4FB1kwtOsdbQ@mail.gmail.com>
- source: <20260701-ps-eric-work-rebase-v15-0-c88a43b63917@gmail.com>
+ Will merge to 'next'?
+ cf. <CA+J6zkSo3ZqLe7HLEXRAs+hOq2FuOVokMQWbABcW95wihNtCgA@mail.gmail.com>
+ source: <20260710-ps-eric-work-rebase-v16-0-66e07b58a8fe@gmail.com>
 
 
 * mm/diff-process-hunks (2026-06-14) 6 commits
@@ -1099,7 +1196,7 @@ Release tarballs are available at:
  while leaving all output formatting (word diff, color, blame, etc.) to
  Git's standard pipeline.
 
- Expecting a reroll.
+ Expecting a reroll for too long, stalled.
  cf. <CAC2Qwm+P=fZOtpfMPeMiSXf3Afk6OLYpTP8Br78_PRA8WNL1Wg@mail.gmail.com>
  source: <pull.2120.v4.git.1781463564.gitgitgadget@gmail.com>
 
@@ -1118,21 +1215,6 @@ Release tarballs are available at:
  source: <20260619162105.648495-1-cat@malon.dev>
 
 
-* kk/prio-queue-cascade-sift (2026-07-08) 3 commits
- - prio-queue: use cascade for unfused gets
- - prio-queue: extract sift_up() from prio_queue_put()
- - Merge branch 'kk/prio-queue-get-put-fusion' into kk/prio-queue-cascade-sift
- (this branch uses kk/prio-queue-get-put-fusion.)
-
- 'prio_queue_get()' has been optimized by using a cascade-down approach
- (promoting the smaller child at each level and sifting up the last
- element from the leaf vacancy), which halves the number of comparisons
- per extract-min operation in the common case.
-
- Needs review.
- source: <pull.2132.v3.git.1783532989.gitgitgadget@gmail.com>
-
-
 * ps/history-drop (2026-07-01) 11 commits
   (merged to 'next' on 2026-07-08 at 6fb84708a4)
  + builtin/history: implement "drop" subcommand
@@ -1148,7 +1230,7 @@ Release tarballs are available at:
  + read-cache: split out function to drop unmerged entries to stage 0
 
  The experimental 'git history' command has been taught a new 'drop'
- subcommand to remove a commit and replay its descendants onto its
+ subcommand to remove a commit, with its descendants replayed onto its
  parent.
 
  Will merge to 'master'.
@@ -1165,7 +1247,7 @@ Release tarballs are available at:
  updated to hide dotfiles by default unless the user explicitly starts
  the path with a dot, matching standard shell-completion behavior.
 
- Waiting for response(s) to review comment(s).
+ Waiting for response(s) to review comment(s), stalled.
  cf. <xmqqik71t3nr.fsf@gitster.g>
  source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
 
@@ -1209,7 +1291,8 @@ Release tarballs are available at:
  to remove local branches that are already merged to their tracked
  remote-tracking branches.
 
- Needs review.
+ Expecting a reroll.
+ cf. <CAHwyqnWspUTSnqmkMyXtWuAnENDSzrRLhhUR=Ljtt1xer3tphA@mail.gmail.com>
  source: <pull.2285.v18.git.git.1782338106.gitgitgadget@gmail.com>
 
 
@@ -1225,9 +1308,10 @@ Release tarballs are available at:
  source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
 
 
-* ps/shift-root-in-graph (2026-07-04) 3 commits
+* ps/shift-root-in-graph (2026-07-11) 4 commits
  - graph: indent visual root in graph
  - graph: add a 2 commit buffer for lookahead
+ - revision: add next_commit_to_show()
  - lib-log-graph: move check_graph function
 
  'git log --graph' has been modified to visually distinguish parentless
@@ -1235,27 +1319,45 @@ Release tarballs are available at:
  simplification) by indenting them, preventing them from appearing
  falsely related to unrelated commits rendered immediately above them.
 
- Expecting a reroll.
- cf. <CAN5EUNQoLtJ9cGwe8RNJTTdngM=qoak2=5F+yc7TH94TmQn7uw@mail.gmail.com>
- source: <20260704-ps-pre-commit-indent-v7-0-a94706cc8376@gmail.com>
-
-
-* kk/merge-base-exhaustion (2026-07-01) 10 commits
- . commit-reach: remove commit-date ordering fallback
- . commit-reach: move min_generation check into paint_queue_get()
- . commit-reach: terminate merge-base walk when one paint side is exhausted
- . commit-reach: introduce struct paint_state with per-side counters
- . t6600: add clock-skew topologies and step counts for edge cases
- . commit-reach: add trace2 instrumentation to paint_down_to_common()
- . t6099, t6600: add side-exhaustion regression tests
- . t6600: add test cases for side-exhaustion edge cases
- . test-lib-functions: improve diagnostic output for trace2 data assertions
- . Documentation/technical: add paint-down-to-common doc
+ Needs review.
+ source: <20260711-ps-pre-commit-indent-v9-0-eab6676e82f7@gmail.com>
+
+
+* kk/merge-base-exhaustion (2026-07-11) 11 commits
+ - commit-reach: remove commit-date ordering fallback
+ - commit-reach: move min_generation check into paint_queue_get()
+ - commit-reach: terminate merge-base walk when one paint side is exhausted
+ - commit-reach: introduce struct paint_state with per-side counters
+ - t6600: add clock-skew topologies and step counts for edge cases
+ - commit-reach: add trace2 instrumentation to paint_down_to_common()
+ - t6099, t6600: add side-exhaustion regression tests
+ - t6600: add test cases for side-exhaustion edge cases
+ - test-lib-functions: improve diagnostic output for trace2 data assertions
+ - Documentation/technical: add paint-down-to-common doc
+ - Merge branch 'kk/commit-reach-find-all-fix' into kk/merge-base-exhaustion
+ (this branch uses kk/commit-reach-find-all-fix.)
 
  The merge-base computation has been optimized by stopping the walk
  early when one side's exclusive commits in the queue are exhausted,
  yielding significant speedups for queries with one-sided histories.
 
- Expecting a reroll.
- cf. <CAL71e4PgcZDK-gJziJa_yjEqX9TE+PFMwZn0xbjAUzuUDDDBYA@mail.gmail.com>
- source: <pull.2149.v5.git.1782923832.gitgitgadget@gmail.com>
+ Needs review.
+ source: <pull.2149.v6.git.1783776466.gitgitgadget@gmail.com>
+
+--------------------------------------------------
+[Discarded]
+
+* kk/prio-queue-cascade-sift (2026-07-08) 3 commits
+ . prio-queue: use cascade for unfused gets
+ . prio-queue: extract sift_up() from prio_queue_put()
+ . Merge branch 'kk/prio-queue-get-put-fusion' into kk/prio-queue-cascade-sift
+ (this branch uses kk/prio-queue-get-put-fusion.)
+
+ 'prio_queue_get()' has been optimized by using a cascade-down approach
+ (promoting the smaller child at each level and sifting up the last
+ element from the leaf vacancy), whereby the number of comparisons per
+ extract-min operation is halved in the common case.
+
+ Retracted.
+ cf. <CAL71e4PRVYfUWc-c+6XHTwtADqrbub9ykbo+rPyramDhJw=Rfg@mail.gmail.com>
+ source: <pull.2132.v3.git.1783532989.gitgitgadget@gmail.com>