What's cooking (2026/08 #07)

todo
Junio C Hamano 2026-08-16 12:39:25 -07:00
parent 8f32772a42
commit eb17606c71
1 changed files with 230 additions and 222 deletions

View File

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

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

Here are the topics that have been cooking in my tree. Commits
@ -17,10 +17,10 @@ A topic without enough support may be discarded after a long period
of no activity (of course, it can be resubmitted when new interest
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 82 non-merge commits cooking in 'next' (note that some have
been reverted), and 286 non-merge commits, including those in and
The 14th batch of topics have now graduated to the 'master' branch.
We have 437 non-merge commits in 'master' since Git 2.55. There
are 112 non-merge commits cooking in 'next' (note that some have
been reverted), and 273 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,110 +52,72 @@ Release tarballs are available at:
https://www.kernel.org/pub/software/scm/git/

--------------------------------------------------
[New Topics]
[Graduated to 'master']

* 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
* jc/add-resolved (2026-07-31) 4 commits
(merged to 'next' on 2026-08-08 at 61afef3e37)
+ add: introduce '--resolved' option
+ read-cache: add remove_file_from_index_with_flags()
+ merge-ll: consolidate conflict marker scanning logic
+ read-cache: reindent

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.
'git add' has been taught a new '--resolved' option to stage
conflict-resolved paths, while leaving unrelated local changes
unstaged. It scans the unmerged paths for leftover conflict
markers and aborts if any are found.

Expecting a reroll.
cf. <ef8ee6fb-ef3d-4a83-b8fc-121448d58e53@app.fastmail.com>
source: <V3_CV_synopsis_block.b64@msgid.xyz>
Graduated to 'master'.
cf. <20260801141414.GD2041176@coredump.intra.peff.net>
source: <20260731125605.3638938-1-gitster@pobox.com>


* 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
* jm/t0213-skip-emulated-ancestry-tests (2026-07-06) 1 commit
(merged to 'next' on 2026-08-08 at ea8486f2a7)
+ t0213: skip ancestry tests under user-mode emulation

The experimental 'git format-rev' has been taught a few more
formatting options.
The 'TRACE2_ANCESTRY' prerequisite in the 't0213' test script has been
refined to avoid failures under user-mode emulation by verifying that
the ancestry collector reports the expected process names rather than
the emulator binary name.

Waiting for review.
cf. <add02b44-8896-48af-9338-bb913e83ff82@app.fastmail.com>
source: <CV_format-rev_three_more_opts.b80@msgid.xyz>
Graduated to 'master'.
cf. <xmqq8q6myl76.fsf@gitster.g>
source: <pull.2168.git.1783359242130.gitgitgadget@gmail.com>


* 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
* kl/t7528-ssh-agent-for-csh-users (2026-08-02) 1 commit
(merged to 'next' on 2026-08-08 at bb96050841)
+ t7528: fix failure under csh

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.
The 'ssh-agent' tests in 't7528' have been fixed to work when the
user's login shell is csh-like, by explicitly passing '-s' to
'ssh-agent' to force Bourne shell syntax.

Expecting a reroll.
cf. <an7GgQLQfleCPr-a@pks.im>
source: <20260807-b4-pks-odb-generate-pack-v1-0-7dec431ae7cd@pks.im>
Graduated to 'master'.
cf. <am_5YymI-UnCT_s1@fruit.crustytoothpaste.net>
source: <20260803004105.36913-2-keni@his.com>


* 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'
* 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
+ http: permit unlinking partial packs on Windows
+ http: avoid concurrent appends to partial packs
+ http: accept HTTP 416 for complete partial packs
+ http: avoid closing index-pack input twice
+ http-fetch: correct --index-pack-arg documentation

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).
Concurrent downloads of packfiles via packfile URIs and dumb HTTP are
safer by avoiding concurrent appends to the staging file. Opening in
read-write mode with separate file offsets prevents corruption and
preserves resumability. 'fetch-pack' now tolerates pre-existing
'.keep' files.

Waiting for response.
cf. <xmqq33wgrcco.fsf@gitster.g>
cf. <xmqq7blsrclt.fsf@gitster.g>
source: <20260814072419.1666358-1-cat@malon.dev>
Graduated to 'master'.
cf. <20260801140255.GC2041176@coredump.intra.peff.net>
source: <cover.1785111375.git.tnyman@openai.com>


* 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.2204.git.1786655554197.gitgitgadget@gmail.com>
source: <pull.2203.git.1786653837190.gitgitgadget@gmail.com>


* en/diff-l-opt-help (2026-08-13) 1 commit
- diff: avoid misleading statement about -l option

The help text for the '-l' option of 'git diff' has been updated.

Will merge to 'next'?
cf. <xmqqbjb4rd5q.fsf@gitster.g>
source: <pull.2035.v2.git.1786673186855.gitgitgadget@gmail.com>


* ss/submittingpatches-typofix (2026-08-14) 1 commit
- doc: fix typo in submitting patches

Typofix.

Will merge to 'next'?
source: <pull.2383.git.git.1786733219160.gitgitgadget@gmail.com>


* ch/chdir-notify-drop-name (2026-08-14) 1 commit
- chdir-notify.h: Removed unused param 'name'

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.

Will merge to 'next'?
cf. <20260814203100.GB2575854@coredump.intra.peff.net>
source: <20260814214210.1625-1-colinlewishinton@gmail.com>

--------------------------------------------------
[Stalled]

@ -221,6 +183,108 @@ Release tarballs are available at:
--------------------------------------------------
[Cooking]

* 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 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. <ef8ee6fb-ef3d-4a83-b8fc-121448d58e53@app.fastmail.com>
source: <V3_CV_synopsis_block.b64@msgid.xyz>


* 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 experimental 'git format-rev' has been taught a few more
formatting options.

Waiting for response.
cf. <xmqqbjb4ktz5.fsf@gitster.g>
source: <CV_format-rev_three_more_opts.b80@msgid.xyz>


* 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

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) 1 commit
- repository: move fetch_if_missing into struct repository

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

Will merge to 'next'?
cf. <xmqqmrun8jeu.fsf@gitster.g>
source: <20260815064747.2196896-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.2204.git.1786655554197.gitgitgadget@gmail.com>
source: <pull.2203.git.1786653837190.gitgitgadget@gmail.com>


* en/diff-l-opt-help (2026-08-13) 1 commit
- diff: avoid misleading statement about -l option

The help text for the '-l' option of 'git diff' has been updated.

Will merge to 'next'?
cf. <xmqqbjb4rd5q.fsf@gitster.g>
source: <pull.2035.v2.git.1786673186855.gitgitgadget@gmail.com>


* ss/submittingpatches-typofix (2026-08-14) 1 commit
- doc: fix typo in submitting patches

Typofix.

Will merge to 'next'?
cf. <xmqq7blsmru5.fsf@gitster.g>
source: <pull.2383.git.git.1786733219160.gitgitgadget@gmail.com>


* ch/chdir-notify-drop-name (2026-08-14) 1 commit
- chdir-notify.h: Removed unused param 'name'

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.

Will merge to 'next'?
cf. <20260815051213.GA26013@coredump.intra.peff.net>
source: <20260814214210.1625-1-colinlewishinton@gmail.com>


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

@ -228,21 +292,22 @@ Release tarballs are available at:
code did not check the presence of a value and instead segfaulted
without one, which has been corrected.

Will merge to 'next'?
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
(merged to 'next' on 2026-08-15 at 1c83dffd7a)
+ 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'?
Will merge to 'master'.
cf. <xmqqqzk3xqxs.fsf@gitster.g>
source: <pull.2198.v2.git.1786528498689.gitgitgadget@gmail.com>

@ -285,7 +350,7 @@ Release tarballs are available at:
The setting of a now-unused member '.pretty_given' in the sequencer
machinery has been removed.

Will merge to 'next'?
Will merge to 'next'.
cf. <an11zsTm-fanH8yt@pks.im>
cf. <xmqqa4qrxneq.fsf@gitster.g>
source: <pull.1922.git.1786516959130.gitgitgadget@gmail.com>
@ -298,7 +363,7 @@ Release tarballs are available at:
caused a null pointer dereference, which has been corrected by
rejecting a request without an argument.

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

@ -319,8 +384,7 @@ Release tarballs are available at:

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


@ -354,14 +418,15 @@ Release tarballs are available at:


* hn/send-email-missing-subject-error (2026-08-10) 1 commit
- send-email: clarify missing subject error
(merged to 'next' on 2026-08-15 at 6470901400)
+ send-email: clarify missing subject error

The error message given by 'git send-email' when a message file is
missing a 'Subject:' header has been clarified, and the error string
is now terminated with a newline so that Perl avoids appending its
internal source location data.

Will merge to 'next'?
Will merge to 'master'.
cf. <xmqqtsp165tj.fsf@gitster.g>
source: <pull.2375.v2.git.git.1786384412423.gitgitgadget@gmail.com>

@ -379,7 +444,7 @@ Release tarballs are available at:
clones, reclaiming space. Guards prevent running during other
operations or if referenced by the index.

Expecting a reroll.
Will merge to 'next'?
cf. <CAP8UFD1esJ0fk3xPXvAmQhMK_5wrpGKZJg9YaFV0-qUAC7bf5g@mail.gmail.com>
source: <20260813200830.84348-1-r.siddharth.shrimali@gmail.com>

@ -453,27 +518,28 @@ Release tarballs are available at:
disabled for these tests to fix flaky races with concurrent background
maintenance jobs.

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


* ps/odb-streams (2026-08-05) 8 commits
- odb/streaming: unify function names to create new streams
- odb/streaming: rename `struct input_zstream_data`
- odb/streaming: rename `struct read_object_fd_data`
- odb/streaming: consolidate read and write streams
- odb/streaming: rename `struct odb_read_stream`
- odb/streaming: support streaming arbitrary object types
- odb/streaming: drop `is_finished` field
- odb/streaming: track write stream size in the structure
(merged to 'next' on 2026-08-15 at a8fbd74d00)
+ odb/streaming: unify function names to create new streams
+ odb/streaming: rename `struct input_zstream_data`
+ odb/streaming: rename `struct read_object_fd_data`
+ odb/streaming: consolidate read and write streams
+ odb/streaming: rename `struct odb_read_stream`
+ odb/streaming: support streaming arbitrary object types
+ odb/streaming: drop `is_finished` field
+ odb/streaming: track write stream size in the structure

The 'struct odb_read_stream' and 'struct odb_write_stream'
structures have been consolidated into a single unified 'struct
odb_stream' structure, simplifying object database streaming APIs
and enabling streaming of arbitrary object types.

Will merge to 'next'?
Will merge to 'master'.
cf. <anuBdm29ye_qV_Rq@denethor>
source: <20260805-pks-odb-stream-unification-v2-0-b8c369564641@pks.im>

@ -515,7 +581,8 @@ Release tarballs are available at:
the main 'git.exe' to be used directly without the extra wrapper
process on Windows.

Needs review.
Waiting for response.
cf. <4f4129df-681f-4e99-8b1f-8bb96e206a2d@kdbg.org>
source: <pull.2195.v2.git.1786521173.gitgitgadget@gmail.com>


@ -525,8 +592,8 @@ Release tarballs are available at:
'git worktree add' did not prevent DWIM behavior when '-b' or '-B' was
specified, which has been corrected.

Waiting for response.
cf. <xmqqjypvw3cg.fsf@gitster.g>
Expecting a reroll.
cf. <CAF5D8-tfAfjNONh8dbqxmF+kzzaQ4rSQL94DK2=TLd9_HV9oaA@mail.gmail.com>
source: <pull.2197.v4.git.1786430155244.gitgitgadget@gmail.com>


@ -587,19 +654,6 @@ Release tarballs are available at:
source: <URLs_not_trailers.b13@msgid.xyz>


* kl/t7528-ssh-agent-for-csh-users (2026-08-02) 1 commit
(merged to 'next' on 2026-08-08 at bb96050841)
+ t7528: fix failure under csh

The 'ssh-agent' tests in 't7528' have been fixed to work when the
user's login shell is csh-like, by explicitly passing '-s' to
'ssh-agent' to force Bourne shell syntax.

Will merge to 'master'.
cf. <am_5YymI-UnCT_s1@fruit.crustytoothpaste.net>
source: <20260803004105.36913-2-keni@his.com>


* kh/doc-trailers (2026-08-09) 11 commits
(merged to 'next' on 2026-08-13 at 2966f0265a)
+ doc: interpret-trailers: document comment line treatment
@ -655,23 +709,6 @@ Release tarballs are available at:
source: <pull.2364.git.git.1784993669.gitgitgadget@gmail.com>


* jc/add-resolved (2026-07-31) 4 commits
(merged to 'next' on 2026-08-08 at 61afef3e37)
+ add: introduce '--resolved' option
+ read-cache: add remove_file_from_index_with_flags()
+ merge-ll: consolidate conflict marker scanning logic
+ read-cache: reindent

'git add' has been taught a new '--resolved' option to stage
conflict-resolved paths, while leaving unrelated local changes
unstaged. It scans the unmerged paths for leftover conflict
markers and aborts if any are found.

Will merge to 'master'.
cf. <20260801141414.GD2041176@coredump.intra.peff.net>
source: <20260731125605.3638938-1-gitster@pobox.com>


* tb/pack-with-duplicates (2026-07-24) 5 commits
- pack-bitmap: handle duplicate pack entries during MIDX reuse
- test-tool bitmap: reject packs with duplicate objects
@ -691,22 +728,23 @@ Release tarballs are available at:


* ps/cat-file-remote-object-info-type (2026-08-07) 11 commits
- cat-file: unify default format
- serve: advertise type capability
- fetch-object-info: parse type from server response
- protocol-caps: add type support to object-info
- transport: drop remote object-info fields from transport struct
- fetch-object-info: die() on the remaining error path
- fetch-object-info: use dedicated struct for the results
- fetch-object-info: pass arguments directly instead of a struct
- fetch-object-info: detect malformed server responses
- t5701: use test_file_size() to get the size of a file
- Merge branch 'ps/cat-file-remote-object-info' into ps/cat-file-remote-object-info-type
(merged to 'next' on 2026-08-15 at 3f5daf59a8)
+ cat-file: unify default format
+ serve: advertise type capability
+ fetch-object-info: parse type from server response
+ protocol-caps: add type support to object-info
+ transport: drop remote object-info fields from transport struct
+ fetch-object-info: die() on the remaining error path
+ fetch-object-info: use dedicated struct for the results
+ fetch-object-info: pass arguments directly instead of a struct
+ fetch-object-info: detect malformed server responses
+ t5701: use test_file_size() to get the size of a file
+ Merge branch 'ps/cat-file-remote-object-info' into ps/cat-file-remote-object-info-type

The 'remote-object-info' command for 'git cat-file --batch-command'
has been extended to support the '%(objecttype)' placeholder.

Will merge to 'next'?
Will merge to 'master'.
cf. <20260808074157.GA2915582@coredump.intra.peff.net>
cf. <CA+J6zkR5ZkUc8c=xiXgKiAYmbgcoyGfwpgm6aaG0Gog8OVmOjw@mail.gmail.com>
cf. <CAOLa=ZTrf_WHiRHTjBGAus+YbRsUkbR3dzsW=fgCK0jit6fYzQ@mail.gmail.com>
@ -777,7 +815,9 @@ Release tarballs are available at:
root, superproject working tree, object database, etc.), supporting
both absolute and relative path formats.

Needs review.
Waiting for response.
cf. <6E2B0ADE-2101-47AC-B11B-315897AC2AF9@gmail.com>
cf. <749F5FAC-5803-4E7A-AEC8-BA653D329EE2@gmail.com>
source: <20260806101556.162940-1-jayatheerthkulkarni2005@gmail.com>


@ -833,7 +873,7 @@ Release tarballs are available at:
dup(), and strbuf_getline_lf(), resolving several Coverity warnings
about unchecked returns.

Will merge to 'next'?
Will merge to 'next'.
cf. <an1k0d5fI4EVsfsM@pks.im>
source: <pull.2179.v3.git.1786521801.gitgitgadget@gmail.com>

@ -852,24 +892,25 @@ Release tarballs are available at:


* cc/fast-import-usage (2026-08-11) 12 commits
- fast-import: remove useless from_stream argument
- fast-import: use parse_options() for command line options
- fast-import: use callbacks to parse some options
- fast-import: use struct option for usage string
- fast-import: move command state globals into 'struct fast_import_state'
- fast-import: introduce 'struct fast_import_state'
- fast-import: factor out option_*() functions
- fast-import: use int for some bool flags
- fast-import: localize 'i' into the 'for' loops using it
- api-parse-options.adoc: document hidden and OPT_*_F option macros
- api-parse-options.adoc: document per-option flags
- parse-options: introduce OPT_HIDDEN_GROUP
(merged to 'next' on 2026-08-15 at a0434930b4)
+ fast-import: remove useless from_stream argument
+ fast-import: use parse_options() for command line options
+ fast-import: use callbacks to parse some options
+ fast-import: use struct option for usage string
+ fast-import: move command state globals into 'struct fast_import_state'
+ fast-import: introduce 'struct fast_import_state'
+ fast-import: factor out option_*() functions
+ fast-import: use int for some bool flags
+ fast-import: localize 'i' into the 'for' loops using it
+ api-parse-options.adoc: document hidden and OPT_*_F option macros
+ api-parse-options.adoc: document per-option flags
+ parse-options: introduce OPT_HIDDEN_GROUP

The usage string of 'git fast-import' has been updated to use the
parse_options() API for displaying help, and its SYNOPSIS in the
documentation has been standardized to match.

Will merge to 'next'?
Will merge to 'master'.
cf. <CABPp-BE_gVtCF+Y0AAyXSXnJ2hUK0pJiWqEhkD8kVc4S8-y7kQ@mail.gmail.com>
source: <20260811083314.2023489-1-christian.couder@gmail.com>

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


* 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
+ http: permit unlinking partial packs on Windows
+ http: avoid concurrent appends to partial packs
+ http: accept HTTP 416 for complete partial packs
+ http: avoid closing index-pack input twice
+ http-fetch: correct --index-pack-arg documentation

Concurrent downloads of packfiles via packfile URIs and dumb HTTP are
safer by avoiding concurrent appends to the staging file. Opening in
read-write mode with separate file offsets prevents corruption and
preserves resumability. 'fetch-pack' now tolerates pre-existing
'.keep' files.

Will merge to 'master'.
cf. <20260801140255.GC2041176@coredump.intra.peff.net>
source: <cover.1785111375.git.tnyman@openai.com>


* 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`
@ -931,7 +952,7 @@ 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.

Will merge to 'next'?
Will merge to 'next'.
cf. <xmqqbjb6t179.fsf@gitster.g>
source: <pull.2175.v3.git.1786632952.gitgitgadget@gmail.com>

@ -1002,20 +1023,6 @@ Release tarballs are available at:
source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>


* jm/t0213-skip-emulated-ancestry-tests (2026-07-06) 1 commit
(merged to 'next' on 2026-08-08 at ea8486f2a7)
+ t0213: skip ancestry tests under user-mode emulation

The 'TRACE2_ANCESTRY' prerequisite in the 't0213' test script has been
refined to avoid failures under user-mode emulation by verifying that
the ancestry collector reports the expected process names rather than
the emulator binary name.

Will merge to 'master'.
cf. <xmqq8q6myl76.fsf@gitster.g>
source: <pull.2168.git.1783359242130.gitgitgadget@gmail.com>


* zy/apply-abandoned-header-fix (2026-07-01) 1 commit
- apply: avoid leaking abandoned git-header state

@ -1173,23 +1180,24 @@ Release tarballs are available at:


* kk/merge-base-exhaustion (2026-08-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: add side-exhaustion regression test
- 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
(merged to 'next' on 2026-08-15 at 3f836fa1e4)
+ 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: add side-exhaustion regression test
+ 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

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.

Will merge to 'next'?
Will merge to 'master'.
cf. <CABPp-BHuh_8q6Hy2-Bk7H6Chdb4+eeW1f4LZU0szZ4zU9Eeo+w@mail.gmail.com>
cf. <xmqqbjb7w1dq.fsf@gitster.g>
source: <pull.2149.v8.git.1786440533.gitgitgadget@gmail.com>