What's cooking (2026/08 #06)

todo
Junio C Hamano 2026-08-14 17:01:58 -07:00
parent bb6d7d0b33
commit 8f32772a42
1 changed files with 325 additions and 278 deletions

View File

@ -1,10 +1,10 @@
To: git@vger.kernel.org
Subject: What's cooking in git.git (Aug 2026, #05)
Subject: What's cooking in git.git (Aug 2026, #06)
X-master-at: 745601a9a94110d74769ab605ccd4f61339758d2
X-next-at: 4f2b99511996c64e58c74e2b8bd3d7ec33452a47
X-next-at: 2966f0265a7e46fa9bf5d59e7995809027a1d38d
Bcc: lwn@lwn.net, gitster@pobox.com

What's cooking in git.git (Aug 2026, #05)
What's cooking in git.git (Aug 2026, #06)
-----------------------------------------

Here are the topics that have been cooking in my tree. Commits
@ -19,8 +19,8 @@ arises).

The 13th batch of topics have now graduated to the 'master' branch.
We have 424 non-merge commits in 'master' since Git 2.55. There
are 58 non-merge commits cooking in 'next' (note that some have
been reverted), and 266 non-merge commits, including those in and
are 82 non-merge commits cooking in 'next' (note that some have
been reverted), and 286 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
@ -54,210 +54,107 @@ Release tarballs are available at:
--------------------------------------------------
[New Topics]

* cc/git-shallow-file-wo-value (2026-08-11) 1 commit
- git: avoid segfault on "git --shallow-file" without a value
* kh/format-rev-doc-synopsis (2026-08-13) 2 commits
- doc: format-rev: use [synopsis] on code block
- doc: format-rev: quote subject placeholder before and after

The '--shallow-file' option of 'git' command requires a value, but the
code did not check the presence of a value and instead segfaulted
without one, which has been corrected.

Will merge to 'next'?
cf. <anxXbnuRt4I4uPdI@pks.im>
source: <20260811121446.2080190-1-christian.couder@gmail.com>


* js/sequencer-release-odb-before-commit (2026-08-12) 1 commit
- sequencer: release the ODB before spawning git commit

The sequencer has been updated to release the object database before
spawning 'git commit'. This prevents open file handles from
blocking auto-maintenance tasks, such as repacking, on systems like
Windows where open files cannot be easily unlinked.

Will merge to 'next'?
cf. <xmqqqzk3xqxs.fsf@gitster.g>
source: <pull.2198.v2.git.1786528498689.gitgitgadget@gmail.com>


* jt/receive-pack-pluggable-writes (2026-08-11) 9 commits
- odb/transaction: add transaction interface to write packfiles
- odb: return temporary ODB source when set
- builtin/receive-pack: explicitly pass packfile fd
- builtin/receive-pack: report unpack errors via strbuf
- builtin/receive-pack: lift global state out of unpack()
- builtin/receive-pack: read unpack limit config lazily
- builtin/receive-pack: pass shallow file explicitly
- odb/transaction: add transaction finalize interface
- builtin/receive-pack: properly clean up keep files

The 'git receive-pack' command has been updated to use a new ODB
transaction interface for writing incoming packfiles, making it more
backend-agnostic.

Waiting for response.
cf. <anwNonpw5SZuHADv@pks.im>
cf. <anwNp8cbCOOuI7nK@pks.im>
source: <20260811175415.2044235-1-jltobler@gmail.com>


* jc/complete-checkout (2026-08-12) 5 commits
- fixup! completion: 'git checkout' completes untracked paths as a last resort
- completion: 'git checkout' completes untracked paths as a last resort
- completion: complete tracked paths for "git checkout"
- completion: no-op refactoring of checkout completion
- Merge branch 'jc/complete-diff-tracked-paths' into jc/complete-checkout
(this branch uses jc/complete-diff-tracked-paths.)
The documentation for 'git format-rev' has been updated to use the
[synopsis] block definition on code blocks to properly highlight
placeholders, and a quoting inconsistency in the running text has
been fixed.

Expecting a reroll.
cf. <xmqq7blvw0ro.fsf@gitster.g>
cf. <834FE315-FB34-47B7-9ACF-FC8194FBE8D5@gmail.com>
source: <20260812164846.2236221-1-gitster@pobox.com>
cf. <ef8ee6fb-ef3d-4a83-b8fc-121448d58e53@app.fastmail.com>
source: <V3_CV_synopsis_block.b64@msgid.xyz>


* en/sequencer-lose-pretty-given (2026-08-11) 1 commit
- sequencer: remove unnecessary variable setting
* kh/format-rev-more-options (2026-08-13) 4 commits
- format-rev: learn --abbrev, --color, and --date
- doc: rev-list-options.adoc: factor out --date alts
- format-rev: factor option variables into a struct
- format-rev: use lower case for opts description

The setting of a now-unused member revs.pretty_given in the
sequencer machinery has been removed.
The experimental 'git format-rev' has been taught a few more
formatting options.

Will merge to 'next'?
cf. <xmqqa4qrxneq.fsf@gitster.g>
source: <pull.1922.git.1786516959130.gitgitgadget@gmail.com>
Waiting for review.
cf. <add02b44-8896-48af-9338-bb913e83ff82@app.fastmail.com>
source: <CV_format-rev_three_more_opts.b80@msgid.xyz>


* en/serve-promisor-remote-fix (2026-08-11) 1 commit
- serve: reject valueless promisor-remote capability
* ps/odb-pluggable-pack-generation (2026-08-07) 5 commits
- bundle: generate packfiles via the object database
- builtin/bundle: refactor option handling for progress meter
- send-pack: generate packfiles via the object database
- upload-pack: generate packfiles via the object database
- odb: introduce interface to generate packfiles

A client requesting the promisor-remote capability without a value
caused a null pointer dereference, which has been corrected by
rejecting a request without an argument.
The mechanism to generate a packfile corresponding to the result of
a fetch/push has been made pluggable through a set of object
database callback functions, removing hardcoded references to
'pack-objects' and enabling alternative ODBs to serve packfiles
themselves.

Expecting a reroll.
cf. <an7GgQLQfleCPr-a@pks.im>
source: <20260807-b4-pks-odb-generate-pack-v1-0-7dec431ae7cd@pks.im>


* ty/repository-fetch-if-missing (2026-08-14) 2 commits
- repository: move fetch_if_missing into struct repository
- pack-objects: give fetch_if_missing call sites access to 'repo'

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).

Waiting for response.
cf. <xmqq33wgrcco.fsf@gitster.g>
cf. <xmqq7blsrclt.fsf@gitster.g>
source: <20260814072419.1666358-1-cat@malon.dev>


* ns/ref-symref-additional-tests (2026-08-13) 2 commits
- t1401: test symbolic-ref exit codes on a non-symbolic ref
- t1402: test forbidden characters in refnames

A few additional tests.

Needs review.
source: <pull.2199.git.1786516783909.gitgitgadget@gmail.com>
source: <pull.2204.git.1786655554197.gitgitgadget@gmail.com>
source: <pull.2203.git.1786653837190.gitgitgadget@gmail.com>


* ps/odb-eagerly-load-alternates (2026-08-12) 5 commits
- odb: drop `alternates_db` field
- odb: drop `loaded_alternates` field
- odb: eagerly initialize alternates
- odb: decouple source path comparisons from `the_repository`
- Merge branch 'ps/odb-make-creation-pluggable' into ps/odb-eagerly-load-alternates
(this branch uses ps/odb-make-creation-pluggable.)
* en/diff-l-opt-help (2026-08-13) 1 commit
- diff: avoid misleading statement about -l option

The object database layer has been simplified by eagerly loading
alternate object directories upon initialization, instead of
deferring it to the first object lookup. This eliminates the need
for scattered lazy-loading calls throughout the codebase and paves
the way for integrating alternates with the pluggable backends.

Needs review.
cf. <anuP0Mh9aBz9VdBK@denethor>
source: <20260812-pks-odb-eagerly-prepare-alternates-v2-0-522b9a5bc1ea@pks.im>


* gg/http-ssl-verify-status (2026-08-12) 1 commit
- http: add http.sslVerifyStatus to check stapled OCSP responses

The HTTP transport has been taught to check the revocation status of
the server certificate using the stapled OCSP response during the
TLS handshake via a new 'http.sslVerifyStatus' configuration
variable.

Needs review (Broken???)
cf. <xmqq1pc3vx9w.fsf@gitster.g>
source: <20260812182509.67358-1-ggordon@gitlab.com>


* js/packfile-fast-append (2026-08-12) 1 commit
- packfile: fix perf regression with many packs

The performance of adding numerous new packfiles has been improved
by introducing a fast path for known-new packfiles to skip an
unnecessary traversal in packfile_list_append(), avoiding a
quadratic complexity regression on load.
The help text for the '-l' option of 'git diff' has been updated.

Will merge to 'next'?
cf. <xmqqfr0jw20t.fsf@gitster.g>
cf. <20260812212955.GA152730@coredump.intra.peff.net>
source: <pull.2202.git.1786561870638.gitgitgadget@gmail.com>

--------------------------------------------------
[Graduated to 'master']

* ja/doc-synopsis-style-yet-more (2026-07-23) 4 commits
(merged to 'next' on 2026-08-03 at c744bba04e)
+ doc: convert git-request-pull synopsis and options to new style
+ doc: convert git-send-email synopsis and options to new style
+ doc: convert git-format-patch synopsis and options to new style
+ doc: convert git-imap-send synopsis and options to new style

Synopsis and options in the documentation for 'git format-patch',
'git imap-send', 'git send-email', and 'git request-pull' have been
updated to the modern style.

Graduated to 'master'.
cf. <xmqqldato56l.fsf@gitster.g>
source: <pull.2185.v2.git.1784841567.gitgitgadget@gmail.com>
cf. <xmqqbjb4rd5q.fsf@gitster.g>
source: <pull.2035.v2.git.1786673186855.gitgitgadget@gmail.com>


* kh/doc-replay-config (2026-07-30) 4 commits
(merged to 'next' on 2026-08-03 at 5450adb2e1)
+ doc: replay: move “default” to the right-hand side
+ doc: replay: use a nested description list
+ doc: replay: improve config description
+ doc: link to config for git-replay(1)
* ss/submittingpatches-typofix (2026-08-14) 1 commit
- doc: fix typo in submitting patches

Documentation for 'git replay' has been updated to refer to its
configuration variables.
Typofix.

Graduated to 'master'.
cf. <xmqq4ihfduxi.fsf@gitster.g>
source: <V4_CV_doc_replay_config.af3@msgid.xyz>
Will merge to 'next'?
source: <pull.2383.git.git.1786733219160.gitgitgadget@gmail.com>


* lo/mv-missing-dest-dir-check (2026-07-30) 2 commits
(merged to 'next' on 2026-08-03 at 7643cf1c2a)
+ mv: reject a destination whose leading path is missing or a symlink
+ mv: name both source and destination when rename fails
* ch/chdir-notify-drop-name (2026-08-14) 1 commit
- chdir-notify.h: Removed unused param 'name'

'git mv' has been updated to check for a missing destination
leading directory during the checking phase, allowing 'git mv -n'
to report the failure. The error message when the rename(2)
syscall fails has also been improved to name both the source and
the destination.
The unused name parameter in 'struct chdir_notify_entry' has been
removed from chdir_notify_register(), chdir_notify_unregister(), and
related callback signatures across several subsystems, simplifying the
API now that trace output no longer uses it.

Graduated to 'master'.
cf. <xmqqtspgjkwb.fsf@gitster.g>
source: <pull.2356.v5.git.git.1785410884.gitgitgadget@gmail.com>


* ns/merge-base-is-ancestor-tests (2026-07-29) 1 commit
(merged to 'next' on 2026-08-03 at cf2c4e00eb)
+ merge-base: add tests for --is-ancestor

Tests for 'git merge-base --is-ancestor' have been added to cover
exit codes (0 for success, 1 for non-ancestor, 128 for errors) and
to ensure it cannot be combined with '--all'.

Graduated to 'master'.
cf. <xmqq8q6slb2t.fsf@gitster.g>
source: <pull.2186.v2.git.1785392350660.gitgitgadget@gmail.com>


* sk/test-commit-body-helper (2026-07-27) 2 commits
(merged to 'next' on 2026-08-03 at ce42e63135)
+ t: use commit_body to extract commit message bodies
+ test-lib-functions: add commit_body helper

A new test helper commit_body() has been introduced to print the
message body of a commit, and various tests have been updated to use
it instead of spelling out the command pipeline manually and losing
the exit status of the 'git cat-file' command on the upstream of the
pipe.

Graduated to 'master'.
cf. <xmqqpl05o5n7.fsf@gitster.g>
source: <20260727095656.75496-1-diy2903@gmail.com>
Will merge to 'next'?
cf. <20260814203100.GB2575854@coredump.intra.peff.net>
source: <20260814214210.1625-1-colinlewishinton@gmail.com>

--------------------------------------------------
[Stalled]
@ -324,6 +221,138 @@ Release tarballs are available at:
--------------------------------------------------
[Cooking]

* cc/git-shallow-file-wo-value (2026-08-11) 1 commit
- git: avoid segfault on "git --shallow-file" without a value

The '--shallow-file' option of 'git' command requires a value, but the
code did not check the presence of a value and instead segfaulted
without one, which has been corrected.

Will merge to 'next'?
cf. <an10XhFPo0nJWJIV@pks.im>
cf. <xmqqcxvo1n8w.fsf@gitster.g>
source: <20260811121446.2080190-1-christian.couder@gmail.com>


* js/sequencer-release-odb-before-commit (2026-08-12) 1 commit
- sequencer: release the ODB before spawning git commit

The sequencer has been updated to release the object database before
spawning 'git commit'. This prevents open file handles from
blocking auto-maintenance tasks, such as repacking, on systems like
Windows where open files cannot be easily unlinked.

Will merge to 'next'?
cf. <xmqqqzk3xqxs.fsf@gitster.g>
source: <pull.2198.v2.git.1786528498689.gitgitgadget@gmail.com>


* jt/receive-pack-pluggable-writes (2026-08-11) 9 commits
- odb/transaction: add transaction interface to write packfiles
- odb: return temporary ODB source when set
- builtin/receive-pack: explicitly pass packfile fd
- builtin/receive-pack: report unpack errors via strbuf
- builtin/receive-pack: lift global state out of unpack()
- builtin/receive-pack: read unpack limit config lazily
- builtin/receive-pack: pass shallow file explicitly
- odb/transaction: add transaction finalize interface
- builtin/receive-pack: properly clean up keep files

The 'git receive-pack' command has been updated to use a new ODB
transaction interface for writing incoming packfiles, making it more
backend-agnostic.

Expecting a reroll.
cf. <an8YSE8iIDXPSkH8@denethor>
source: <20260811175415.2044235-1-jltobler@gmail.com>


* jc/complete-checkout (2026-08-13) 4 commits
- completion: 'git checkout' completes untracked paths as a last resort
- completion: complete tracked paths for "git checkout"
- completion: no-op refactoring of checkout completion
- Merge branch 'jc/complete-diff-tracked-paths' into jc/complete-checkout
(this branch uses jc/complete-diff-tracked-paths.)

Will merge to 'next'?
cf. <CABPp-BFeLStBR3OeTCJoBmC7cn_VXrn4RcvBg-WWGyz4LpJxsg@mail.gmail.com>
source: <20260813191234.1066662-1-gitster@pobox.com>


* en/sequencer-lose-pretty-given (2026-08-11) 1 commit
- sequencer: remove unnecessary variable setting

The setting of a now-unused member '.pretty_given' in the sequencer
machinery has been removed.

Will merge to 'next'?
cf. <an11zsTm-fanH8yt@pks.im>
cf. <xmqqa4qrxneq.fsf@gitster.g>
source: <pull.1922.git.1786516959130.gitgitgadget@gmail.com>


* en/serve-promisor-remote-fix (2026-08-11) 1 commit
- serve: reject valueless promisor-remote capability

A client requesting the promisor-remote capability without a value
caused a null pointer dereference, which has been corrected by
rejecting a request without an argument.

Will merge to 'next'?
cf. <CAP8UFD0+iXC3VxWmuuuB7La-pP6hdz58tr6vaEJSKpXJ_4ZH2w@mail.gmail.com>
source: <pull.2199.git.1786516783909.gitgitgadget@gmail.com>


* ps/odb-eagerly-load-alternates (2026-08-12) 5 commits
- odb: drop `alternates_db` field
- odb: drop `loaded_alternates` field
- odb: eagerly initialize alternates
- odb: decouple source path comparisons from `the_repository`
- Merge branch 'ps/odb-make-creation-pluggable' into ps/odb-eagerly-load-alternates
(this branch uses ps/odb-make-creation-pluggable.)

The object database layer has been simplified by eagerly loading
alternate object directories upon initialization, instead of
deferring it to the first object lookup. This eliminates the need
for scattered lazy-loading calls throughout the codebase and paves
the way for integrating alternates with the pluggable backends.

Waiting for response.
cf. <an36BA_Nw7eLAKYC@denethor>
cf. <CAOLa=ZTLq2xjkC12B=4wPJA9UJ1PWS4_iUAyqgcJ7GYnbM2YrQ@mail.gmail.com>
cf. <20260814171724.GB2563235@coredump.intra.peff.net>
source: <20260812-pks-odb-eagerly-prepare-alternates-v2-0-522b9a5bc1ea@pks.im>


* gg/http-ssl-verify-status (2026-08-12) 2 commits
- SQUASH???
- http: add http.sslVerifyStatus to check stapled OCSP responses

The HTTP transport has been taught to check the revocation status of
the server certificate using the stapled OCSP response during the
TLS handshake via a new 'http.sslVerifyStatus' configuration
variable.

Waiting for response.
cf. <xmqq1pc3vx9w.fsf@gitster.g>
cf. <xmqqmruqt36l.fsf@gitster.g>
source: <20260812182509.67358-1-ggordon@gitlab.com>


* js/packfile-fast-append (2026-08-13) 1 commit
- packfile: fix perf regression with many packs

The performance of adding numerous new packfiles has been improved
by introducing a fast path for known-new packfiles to skip an
unnecessary traversal in packfile_list_append(), avoiding a
quadratic complexity regression on load.

Will merge to 'next'?
cf. <an7ItVYrKZFXg2ci@pks.im>
cf. <xmqqy0e8pxos.fsf@gitster.g>
source: <pull.2202.v2.git.1786633010179.gitgitgadget@gmail.com>


* hn/send-email-missing-subject-error (2026-08-10) 1 commit
- send-email: clarify missing subject error

@ -337,14 +366,13 @@ Release tarballs are available at:
source: <pull.2375.v2.git.git.1786384412423.gitgitgadget@gmail.com>


* ss/repack-drop-filtered (2026-08-10) 7 commits
. Documentation/git-repack: document --drop-filtered and --dry-run
. builtin/repack: add guards for --drop-filtered
. builtin/repack: actually drop filtered promisor blobs
. builtin/repack: enumerate promisor blobs for --drop-filtered
. repack-promisor: allow excluding objects from the rebuilt promisor pack
. list-objects-filter: add list_objects_filter__filter_oidset()
. builtin/repack.c: add --drop-filtered and --dry-run options
* ss/repack-drop-filtered (2026-08-13) 6 commits
- builtin/repack: add guards for --drop-filtered
- builtin/repack: actually drop filtered promisor blobs
- builtin/repack: enumerate promisor blobs for --drop-filtered
- repack-promisor: allow excluding objects from the rebuilt promisor pack
- list-objects-filter: add list_objects_filter__filter_oidset()
- builtin/repack: add --drop-filtered and --dry-run options

'git repack' has been taught '--drop-filtered' to delete local
promisor blobs exceeding a limit (currently 'blob:limit=') in partial
@ -352,8 +380,8 @@ Release tarballs are available at:
operations or if referenced by the index.

Expecting a reroll.
cf. <CAGWgyh9bJ=BSq1B8LSEaQth_4fQHB_YHDgHmf5m5MYcENAkxrw@mail.gmail.com>
source: <20260810174047.6524-1-r.siddharth.shrimali@gmail.com>
cf. <CAP8UFD1esJ0fk3xPXvAmQhMK_5wrpGKZJg9YaFV0-qUAC7bf5g@mail.gmail.com>
source: <20260813200830.84348-1-r.siddharth.shrimali@gmail.com>


* ty/repo-config-cleanups (2026-08-07) 3 commits
@ -371,7 +399,7 @@ Release tarballs are available at:
source: <20260807085932.3958759-1-cat@malon.dev>


* vm/complete-history (2026-08-06) 4 commits
* vm/complete-history (2026-08-13) 4 commits
- completion: complete 'git history split' pathspecs
- completion: complete 'git history --update-refs' values
- completion: complete 'git history --empty' values
@ -380,43 +408,53 @@ Release tarballs are available at:
The command line completion (in contrib/) has been taught to handle
the experimental 'git history' command.

Waiting for response.
cf. <anV7cHblfmGvbl-e@pks.im>
source: <20260806-history_autocompletion-v2-0-7e60f52a1c20@kernel.org>
Needs review.
source: <20260813-history_autocompletion-v3-0-69eed1cea93a@kernel.org>


* cc/lazy-fetch-trusted-bit (2026-08-07) 5 commits
* cc/lazy-fetch-trusted-bit (2026-08-13) 5 commits
- builtin/upload-pack: set GIT_NO_LAZY_FETCH to 0 on trusted repo
- upload-pack: read uploadpack.lazyFetchTrusted
- setup: add 'allow_dot' arg to path_allowlist_apply()
- setup: extract path_allowlist_apply()
- promisor-remote: factor out lazy_fetch_objects()

Expecting a reroll.
cf. <CAP8UFD1LxM1s-MJuffhVks6JfBXoMzKii4YU4iQRNzXJZCQkfQ@mail.gmail.com>
source: <20260807135511.1818458-1-christian.couder@gmail.com>
A new 'uploadpack.lazyFetchTrusted' configuration variable has been
introduced to allow 'upload-pack' to lazily fetch missing objects from
configured promisor remotes when serving trusted repositories.

Waiting for response.
cf. <xmqqy0e8mv0k.fsf@gitster.g>
cf. <xmqq1pc0mr5i.fsf@gitster.g>
source: <20260813154748.2378747-1-christian.couder@gmail.com>


* dk/use-nsec-runtime (2026-08-07) 3 commits
* dk/use-nsec-runtime (2026-08-14) 3 commits
- core: convert build-time USE_NSEC into runtime core.useNanosec
- environment: align repo_config_values_init with struct declaration
- meson: expose knob for xmlto relative links in manuals

The build-time knob 'USE_NSEC' for nanosecond stat precision has been
converted to a runtime configuration 'core.useNanosec', allowing
distributions to bundle one binary that adapts to filesystem
capabilities dynamically.

Expecting a reroll.
cf. <CALnO6CBm4g27mWBvD9m6yL0e5YZu3M9_zcUeLZk7QwTgnxMLQA@mail.gmail.com>
source: <cover.1786103607.git.ben.knoble@gmail.com>
cf. <CALnO6CA96y0g9iy+GRMV1v86zk3eKpCKxeJWid=097sFNXEknA@mail.gmail.com>
source: <cover.1786710807.git.ben.knoble@gmail.com>


* ps/t7900-deflake-maintenance (2026-08-12) 2 commits
- t7900: fix flaky "maintenance.strategy" test
- t7900: adapt some tests to use a throwaway repository

Various tests in t7900-maintenance.sh have been updated to use a
throwaway repository, and auto-detaching of maintenance tasks is
now disabled for these tests to fix flaky races with concurrent
background maintenance jobs.
Various tests in 't7900-maintenance.sh' have been updated to use a
throwaway repository, and auto-detaching of maintenance tasks is now
disabled for these tests to fix flaky races with concurrent background
maintenance jobs.

Needs review.
Will merge to 'next'?
cf. <CAOLa=ZQmZ0spmdPOzCZe36i24nQh+o7d4fSz5dcJS7+O3p2skg@mail.gmail.com>
source: <20260812-pks-t7900-fix-flaky-test-v2-0-9ea0e1ac0edd@pks.im>


@ -563,17 +601,18 @@ Release tarballs are available at:


* kh/doc-trailers (2026-08-09) 11 commits
- doc: interpret-trailers: document comment line treatment
- doc: interpret-trailers: rewrite new-trailers paragraphs
- 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
(merged to 'next' on 2026-08-13 at 2966f0265a)
+ doc: interpret-trailers: document comment line treatment
+ doc: interpret-trailers: rewrite new-trailers paragraphs
+ 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
(this branch is used by kh/trailers-no-urls.)

Documentation for 'git interpret-trailers' has been updated to explain
@ -581,7 +620,7 @@ Release tarballs are available at:
replace outdated terminology, define key terms upfront, and document
how comment lines in the input are treated.

Will merge to 'next'.
Will merge to 'master'.
cf. <0687D60D-DF6B-4547-868C-FCFC5B27ECAF@gmail.com>
source: <V5_CV_doc_int-tr_key_format.b26@msgid.xyz>

@ -675,12 +714,13 @@ Release tarballs are available at:


* ps/odb-make-creation-pluggable (2026-08-06) 6 commits
- odb: make creation of on-disk structures pluggable
- odb/source: introduce function to map source type to name
- setup: defer object database creation
- setup: handle ODB-related environment variables in `odb_new()`
- setup: detangle loading of loose object maps
- loose: load loose object map for the correct source
(merged to 'next' on 2026-08-13 at 749fa77ae1)
+ odb: make creation of on-disk structures pluggable
+ odb/source: introduce function to map source type to name
+ setup: defer object database creation
+ setup: handle ODB-related environment variables in `odb_new()`
+ setup: detangle loading of loose object maps
+ loose: load loose object map for the correct source
(this branch is used by ps/odb-eagerly-load-alternates.)

The creation of the on-disk data structures for the object database
@ -689,7 +729,7 @@ Release tarballs are available at:
has been deferred, and the loading of the loose-object map has been
detangled from repository initialization.

Will merge to 'next'.
Will merge to 'master'.
cf. <87jyq24cxm.fsf@emacs.iotcl.com>
source: <20260807-pks-odb-create-on-disk-v5-0-399da0b0b140@pks.im>

@ -708,18 +748,6 @@ Release tarballs are available at:
source: <20260721140443.1809379-2-hugo@hsal.es>


* td/fsmonitor-darwin-cookie-flush (2026-07-21) 1 commit
- fsmonitor: flush pending FSEvents before cookie wait

The 'fsmonitor' daemon on macOS has been updated to flush pending
FSEvents before waiting for the cookie file, to avoid premature
timeouts on busy systems.

Waiting for review.
cf. <CAJ-ks9=oV4SQSjTHNEOGBaQb8Rb4xBqVSp4wYum6yzU-zx3YtQ@mail.gmail.com>
source: <20260721-fsmonitor-darwin-cookie-flush-v1-1-357dc5e32040@gmail.com>


* sn/rebase-update-refs-symrefs (2026-07-22) 2 commits
- rebase: guard non-branch symref targets
- rebase: skip branch symref aliases
@ -806,8 +834,7 @@ Release tarballs are available at:
about unchecked returns.

Will merge to 'next'?
cf. <xmqq5x1fxn5u.fsf@gitster.g>
cf. <20260812213438.GC152730@coredump.intra.peff.net>
cf. <an1k0d5fI4EVsfsM@pks.im>
source: <pull.2179.v3.git.1786521801.gitgitgadget@gmail.com>


@ -865,19 +892,6 @@ Release tarballs are available at:
source: <20260807-pks-reintroduce-writev-v2-0-30fcff0e89c1@pks.im>


* tb/send-pack-no-ref-delta (2026-07-12) 4 commits
- send-pack: honor `no-ref-delta` capability
- pack-objects: support reuse with `--no-ref-delta`
- pack-objects: introduce `--no-ref-delta`
- t/helper: teach pack-deltas to list delta entries

'git send-pack' has been taught to refrain from sending 'REF_DELTA'
encoded packfiles when the other side asks it to.

Needs review.
source: <alQ7WKITYDXfiVn9@com-79390>


* tn/packfile-uri-concurrency (2026-07-26) 6 commits
(merged to 'next' on 2026-08-08 at 44df3a3ec5)
+ fetch-pack: accept "pack" output for packfile URIs
@ -898,7 +912,8 @@ Release tarballs are available at:
source: <cover.1785111375.git.tnyman@openai.com>


* js/pack-objects-delta-size-t (2026-08-05) 12 commits
* js/pack-objects-delta-size-t (2026-08-13) 13 commits
- packfile: widen `unpack_object_header_buffer()` to `size_t`
- 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`
@ -916,10 +931,9 @@ Release tarballs are available at:
use 'size_t' instead of 'unsigned long' for object sizes and offset
limits, avoiding potential truncation issues on 64-bit Windows.

Waiting for response.
cf. <anQmffJEhKxttUjO@pks.im>
cf. <xmqqcxvtd1rk.fsf@gitster.g>
source: <pull.2175.v2.git.1785946479.gitgitgadget@gmail.com>
Will merge to 'next'?
cf. <xmqqbjb6t179.fsf@gitster.g>
source: <pull.2175.v3.git.1786632952.gitgitgadget@gmail.com>


* pz/fetch-submodule-errors-config (2026-07-16) 2 commits
@ -961,8 +975,8 @@ Release tarballs are available at:
source: <20260711-fz-autosquash-empty-v3-1-d227b63eb511@gmail.com>


* mm/lib-httpd-cgi-safe (2026-07-10) 3 commits
- t/README: document writing concurrency-safe helpers
* mm/lib-httpd-cgi-safe (2026-08-12) 3 commits
- t/lib-httpd: document writing concurrency-safe CGI helpers
- t/lib-httpd: make http-429 first-request check atomic
- t/lib-httpd: fix apply-one-time-script race under concurrent requests

@ -971,8 +985,7 @@ Release tarballs are available at:
Apache handles concurrent requests.

Needs review.
(a newer iteration v3 exists as <pull.2171.v3.git.1786583137.gitgitgadget@gmail.com>)
source: <pull.2171.v2.git.1783704657.gitgitgadget@gmail.com>
source: <pull.2171.v3.git.1786583137.gitgitgadget@gmail.com>


* ij/subtree-reject-v2-config (2026-07-06) 2 commits
@ -1049,7 +1062,8 @@ Release tarballs are available at:
source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>


* hn/history-squash (2026-08-07) 8 commits
* hn/history-squash (2026-08-13) 9 commits
- fixup! history: create squashed commits without editing
- history: support editing squashed commit messages
- history: create squashed commits without editing
- history: protect branches when squashing a range
@ -1063,7 +1077,9 @@ Release tarballs are available at:
subcommand to fold a range of commits into a single commit, with any
descendants replayed on top.

Needs review.
Waiting for response.
cf. <xmqq4igyszeb.fsf@gitster.g>
cf. <xmqqtsoxr8lm.fsf@gitster.g>
source: <pull.2337.v13.git.git.1786088371.gitgitgadget@gmail.com>


@ -1078,7 +1094,8 @@ Release tarballs are available at:
above the selected base were incorrectly skipped by the pack exclusion
logic, and reachability closure for bitmaps was broken.

Needs review.
Expecting a reroll.
cf. <an4uIQA09rDCwwBp@com-79390>
source: <cover.1781294771.git.me@ttaylorr.com>


@ -1097,7 +1114,8 @@ Release tarballs are available at:
source: <20260728-toon-git-replay-drop-merges-v8-0-ced11dffe749@iotcl.com>


* mm/diff-process-hunks (2026-08-01) 11 commits
* mm/diff-process-hunks (2026-08-13) 12 commits
- fixup! diff: consult oid-only hunk providers via diff.<driver>.process
- diff: consult oid-only hunk providers via diff.<driver>.process
- userdiff: add diff.<driver>.process config
- sub-process: add a gentle status read
@ -1117,7 +1135,8 @@ Release tarballs are available at:
while leaving all output formatting (word diff, color, blame, etc.) to
Git's standard pipeline.

Waiting for response.
Waiting for response, stalled
cf. <xmqqmrupr7yh.fsf@gitster.g>
cf. <1f8fe709-ef19-496e-9857-8c2d24b29c56@gmail.com>
source: <20260801174156.2998808-1-mmontalbo@gmail.com>

@ -1135,19 +1154,20 @@ Release tarballs are available at:


* hn/branch-delete-merged (2026-08-05) 7 commits
- branch: add --dry-run for --delete-merged
- branch: add branch.<name>.deleteMerged opt-out
- branch: add --delete-merged <pattern>
- branch: prepare delete_branches for a bulk caller
- branch: let delete_branches skip unmerged branches on bulk refusal
- branch: convert delete_branches() to a flags argument
- branch: add --forked filter for --list mode
(merged to 'next' on 2026-08-13 at 07f0138e2e)
+ branch: add --dry-run for --delete-merged
+ branch: add branch.<name>.deleteMerged opt-out
+ branch: add --delete-merged <pattern>
+ branch: prepare delete_branches for a bulk caller
+ branch: let delete_branches skip unmerged branches on bulk refusal
+ branch: convert delete_branches() to a flags argument
+ branch: add --forked filter for --list mode

The 'git branch' command has been taught the '--delete-merged' option
to remove local branches that are already merged into their tracked
remote-tracking branches.

Will merge to 'next'.
Will merge to 'master'.
cf. <10b22a6b-e028-469c-a117-8dc2ed5bed3b@gmail.com>
source: <pull.2285.v25.git.git.1785939877.gitgitgadget@gmail.com>

@ -1173,3 +1193,30 @@ Release tarballs are available at:
cf. <CABPp-BHuh_8q6Hy2-Bk7H6Chdb4+eeW1f4LZU0szZ4zU9Eeo+w@mail.gmail.com>
cf. <xmqqbjb7w1dq.fsf@gitster.g>
source: <pull.2149.v8.git.1786440533.gitgitgadget@gmail.com>

--------------------------------------------------
[Discarded]

* td/fsmonitor-darwin-cookie-flush (2026-07-21) 1 commit
. fsmonitor: flush pending FSEvents before cookie wait

The 'fsmonitor' daemon on macOS has been updated to flush pending
FSEvents before waiting for the cookie file, to avoid premature
timeouts on busy systems.

Retracted
cf. <CAJ-ks9kQR77vH-56eS9tT-iXEnih+Z7SPRMs1gD_wTyg_6gZ_w@mail.gmail.com>
source: <20260721-fsmonitor-darwin-cookie-flush-v1-1-357dc5e32040@gmail.com>


* tb/send-pack-no-ref-delta (2026-07-12) 4 commits
. send-pack: honor `no-ref-delta` capability
. pack-objects: support reuse with `--no-ref-delta`
. pack-objects: introduce `--no-ref-delta`
. t/helper: teach pack-deltas to list delta entries

'git send-pack' has been taught to refrain from sending 'REF_DELTA'
encoded packfiles when the other side asks it to.

Retracted for now.
source: <cover.1783905084.git.ttaylorr@openai.com>