diff --git a/whats-cooking.txt b/whats-cooking.txt index 4345c9deba..6b15a503c2 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org -Subject: What's cooking in git.git (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. - source: + 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. - source: + Graduated to 'master'. + cf. + source: -* 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. - source: <20260807-b4-pks-odb-generate-pack-v1-0-7dec431ae7cd@pks.im> + Graduated to 'master'. + cf. + 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. - cf. - source: <20260814072419.1666358-1-cat@malon.dev> + Graduated to 'master'. + cf. <20260801140255.GC2041176@coredump.intra.peff.net> + source: -* 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: - source: - - -* 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. - source: - - -* ss/submittingpatches-typofix (2026-08-14) 1 commit - - doc: fix typo in submitting patches - - Typofix. - - Will merge to 'next'? - source: - - -* 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. + source: + + +* 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. + source: + + +* 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. + 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. + 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: + source: + + +* 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. + source: + + +* ss/submittingpatches-typofix (2026-08-14) 1 commit + - doc: fix typo in submitting patches + + Typofix. + + Will merge to 'next'? + cf. + source: + + +* 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. cf. 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. source: @@ -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. cf. source: @@ -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. source: @@ -319,8 +384,7 @@ Release tarballs are available at: Waiting for response. cf. - cf. - cf. <20260814171724.GB2563235@coredump.intra.peff.net> + cf. 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. source: @@ -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. 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. 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. 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: @@ -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. + Expecting a reroll. + cf. source: @@ -587,19 +654,6 @@ Release tarballs are available at: source: -* 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. - 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: -* 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. cf. @@ -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. source: @@ -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. 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: - - * 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. source: @@ -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. - source: - - * 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. cf. source: