From: Junio C Hamano Date: Mon, 29 Jun 2026 16:41:25 +0000 (-0700) Subject: What's cooking (2026/06 #11) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=121defe9bf3180b3265907518d23f5341c167e5d;p=thirdparty%2Fgit.git What's cooking (2026/06 #11) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index fd7c098e5f..d7be365a66 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 (Jun 2026, #10) -X-master-at: ab776a62a78576513ee121424adb19597fbb7613 -X-next-at: 42296fc12ea8e7025714869d102fa1a8ccc844f5 +Subject: What's cooking in git.git (Jun 2026, #11) +X-master-at: e9019fcafe0040228b8631c30f97ae1adb61bcdc +X-next-at: 602f6c329a7d99df269d382df353b4e1bbbbd8aa Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Jun 2026, #10) +What's cooking in git.git (Jun 2026, #11) ----------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -17,9 +17,7 @@ A topic without enough support may be discarded after a long period of no activity (of course they can be resubmitted when new interests arise). -Git 2.55-rc2 has been tagged. The tree is in deep feature-freeze, -and remaining topics in 'next' will stay in "Will cook in 'next'" -instead of "Will merge to 'master'" state, until Git 2.55 final. +Git 2.55 (final) has been tagged, with a few last-minute fixes. Copies of the source code to Git live in many repositories, and the following is a list of the ones I push into or their mirrors. Some @@ -52,6 +50,133 @@ Release tarballs are available at: -------------------------------------------------- [New Topics] +* tb/repack-geometric-cruft (2026-06-28) 11 commits + - SQUASH??? bare grep !??? + - repack: support combining '--geometric' with '--cruft' + - pack-objects: support '--refs-snapshot' with 'follow-reachable' + - pack-objects: introduce '--stdin-packs=follow-reachable' + - pack-objects: extract `stdin_packs_add_all_pack_entries()` + - repack-geometry: drop unused redundant-pack removal + - repack: delete geometric packs via existing_packs + - repack: teach MIDX retention about geometric rollups + - repack: mark geometric progression of packs as retained + - repack: extract `locate_existing_pack()` helper + - repack: unconditionally exclude non-kept packs + + Teach `git repack` 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. + + Needs review. + cf. + source: + + +* jk/reftable-leakfix (2026-06-28) 1 commit + - reftable: fix unlikely leak on API error + + Leakfix. + + Will merge to 'next'? + cf. + source: <20260628090314.GA661068@coredump.intra.peff.net> + + +* sg/t3420-do-not-grep-in-missing-file (2021-10-10) 1 commit + (merged to 'next' on 2026-06-29 at 2bf33c6a40) + + t3420-rebase-autostash: don't try to grep non-existing files + + Test fix. + + Will merge to 'master'. + source: <20211010172809.1472914-1-szeder.dev@gmail.com> + +-------------------------------------------------- +[Graduated to 'master'] + +* jk/t5551-expensive-test-timeouts-fix (2026-06-28) 2 commits + - t5551: put many-tags case into its own repo + - t/lib-httpd: bump apache timeout + + The Apache timeout in HTTP tests has been increased to prevent test + failures on heavily loaded CI runners. The tests creating an + enormous number of refs have been isolated to their own + repositories to avoid slowing down subsequent tests. + cf. + source: <20260628075716.GA3525066@coredump.intra.peff.net> + + +* js/http-https-proxy-fix (2026-06-27) 1 commit + (merged to 'next' on 2026-06-28 at a7fdf2ec97) + + http: accept https:// proxies again + + We lost ability to use https:// proxies during this cycle; this is + a hotfix for the regression. + + source: + + +* ps/t4216-tap-fix (2026-06-19) 1 commit + (merged to 'next' on 2026-06-25 at 42296fc12e) + + t4216: fix no-op test that breaks TAP output + + TAP output breakage fix. + cf. + source: <20260619-pks-t4216-drop-unused-prereq-v1-1-2ce0d7bea088@pks.im> + +-------------------------------------------------- +[Stalled] + +* jt/config-lock-timeout (2026-05-17) 1 commit + - config: retry acquiring config.lock, configurable via core.configLockTimeout + + Configuration file locking now retries 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. + source: <20260517132111.1014901-1-joerg@thalheim.io> + + +* js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits + - SQUASH??? + - doc: document autocorrect API + - parseopt: add tests for subcommand autocorrection + - parseopt: enable subcommand autocorrection for git-remote and git-notes + - parseopt: autocorrect mistyped subcommands + - autocorrect: provide config resolution API + - autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT + - autocorrect: use mode and delay instead of magic numbers + - help: move tty check for autocorrection to autocorrect.c + - help: make autocorrect handling reusable + - parseopt: extract subcommand handling from parse_options_step() + + The parse-options library learned to auto-correct misspelled + subcommand names. + + Waiting for response(s) to review comment(s) for too long, stalled. + cf. + cf. + source: + + +* cl/conditional-config-on-worktree-path (2026-05-24) 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 learned to use the location of worktree + in its condition. + + Waiting for response(s) to review comment(s) for too long, stalled. + cf. + source: <20260525-includeif-worktree-v5-0-1efe525d025a@black-desk.cn> + +-------------------------------------------------- +[Cooking] + * ad/gpg-strip-cr-before-lf (2026-06-24) 1 commit - gpg-interface: fix strip_cr_before_lf to only remove CR before LF @@ -98,7 +223,7 @@ Release tarballs are available at: source: <20260624-b4-pks-odb-drop-whence-v1-0-8d1877b790ac@pks.im> -* ps/reftable-hardening (2026-06-24) 11 commits +* ps/reftable-hardening (2026-06-29) 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 @@ -106,6 +231,7 @@ Release tarballs are available at: - 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 @@ -116,94 +242,43 @@ Release tarballs are available at: during parsing. Needs review. - source: <20260624-pks-reftable-hardening-v1-0-66e4ce87c6b9@pks.im> + source: <20260629-pks-reftable-hardening-v2-0-b0228e7d908d@pks.im> -* hn/branch-push-slip-advice (2026-06-24) 3 commits - - SQUASH??? use test_grep +* hn/branch-push-slip-advice (2026-06-27) 2 commits - push: suggest for a slash slip - branch: suggest / on upstream slip "git push origin/main" and "git branch origin main" could both be an obvious typo, in which case offer the obvious typofix. - Waiting for response(s) to review comment(s). - cf. - source: + Will merge to 'next'? + cf. + source: -* jc/history-message-prep-fix (2026-06-25) 1 commit +* jc/history-message-prep-fix (2026-06-29) 1 commit - history: streamline message preparation and plug file stream leak Code clean-up with leakfix for a write file stream. Needs review. - source: + source: -* ty/migrate-excludes-file (2026-06-25) 2 commits +* ty/migrate-excludes-file (2026-06-27) 1 commit - environment: move excludes_file into repo_config_values - - dir: encapsulate excludes_file lazy-load Move excludes_file global variable into per-repository structure. Waiting for response(s) to review comment(s). - cf. - source: <20260625161845.7543-1-cat@malon.dev> + cf. + cf. + source: <20260627160813.1074201-2-cat@malon.dev> --------------------------------------------------- -[Stalled] - -* jt/config-lock-timeout (2026-05-17) 1 commit - - config: retry acquiring config.lock, configurable via core.configLockTimeout - - Configuration file locking now retries 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. - source: <20260517132111.1014901-1-joerg@thalheim.io> - - -* js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits - - SQUASH??? - - doc: document autocorrect API - - parseopt: add tests for subcommand autocorrection - - parseopt: enable subcommand autocorrection for git-remote and git-notes - - parseopt: autocorrect mistyped subcommands - - autocorrect: provide config resolution API - - autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT - - autocorrect: use mode and delay instead of magic numbers - - help: move tty check for autocorrection to autocorrect.c - - help: make autocorrect handling reusable - - parseopt: extract subcommand handling from parse_options_step() - The parse-options library learned to auto-correct misspelled - subcommand names. - - Waiting for response(s) to review comment(s) for too long, stalled. - cf. - cf. - source: - - -* cl/conditional-config-on-worktree-path (2026-05-24) 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 learned to use the location of worktree - in its condition. - - Waiting for response(s) to review comment(s) for too long, stalled. - cf. - source: <20260525-includeif-worktree-v5-0-1efe525d025a@black-desk.cn> - --------------------------------------------------- -[Cooking] - -* kk/merge-base-exhaustion (2026-06-24) 7 commits +* kk/merge-base-exhaustion (2026-06-28) 8 commits + - commit-reach: move min_generation check into paint_queue_get() - commit-reach: terminate merge-base walk when one paint side is exhausted - commit-reach: remove unused nonstale_queue dedup wrappers - commit-reach: introduce struct paint_state with per-side counters @@ -217,8 +292,9 @@ Release tarballs are available at: yielding significant speedups for queries with one-sided histories. Expecting a reroll. - cf. - source: + cf. <48bfdb11-2624-4aa6-8fbd-d3f894c33bcc@gmail.com> + cf. + source: * dk/meson-enable-use-nsec-build (2026-06-20) 1 commit @@ -229,15 +305,17 @@ Release tarballs are available at: Waiting for response(s) to review comment(s). cf. + cf. source: * ps/connected-generic-promisor-checks (2026-06-25) 5 commits - - connected: search promisor objects generically - - connected: split out promisor-based connectivity check - - odb/source-packed: support flags when iterating an object prefix - - odb/source-packed: extract logic to skip certain packs - - Merge branch 'ps/odb-source-packed' into ps/connected-generic-promisor-checks + (merged to 'next' on 2026-06-29 at 10eef65b98) + + connected: search promisor objects generically + + connected: split out promisor-based connectivity check + + odb/source-packed: support flags when iterating an object prefix + + odb/source-packed: extract logic to skip certain packs + + Merge branch 'ps/odb-source-packed' into ps/connected-generic-promisor-checks (this branch uses ps/odb-source-packed.) The connectivity check has been refactored to search for promisor @@ -245,12 +323,13 @@ Release tarballs are available at: rather than iterating packfiles directly. This allows connectivity checks to work properly in repositories that do not use packfiles. - Will merge to 'next'? - cf. + Will merge to 'master'. + cf. source: <20260625-pks-connected-generic-promisor-checks-v3-0-7308f3b9dc44@pks.im> -* ps/libgit-in-subdir (2026-06-22) 3 commits +* ps/libgit-in-subdir (2026-06-26) 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 @@ -260,7 +339,10 @@ Release tarballs are available at: directory to clean up the top-level directory and clearly separate library code. - Needs review. + Waiting for response(s) to review comment(s). + cf. <32bb1cf6-1e37-dc0c-dfb2-e78a30763342@gmx.de> + cf. + cf. source: <20260622-pks-libgit-in-subdir-v2-0-cb946c51ee7b@pks.im> @@ -275,7 +357,8 @@ Release tarballs are available at: flag, and a new `odb_prepare()` wrapper has been introduced to allow pre-opening object database sources. - Needs review. + Waiting for response(s) to review comment(s). + cf. <87ldc14i4n.fsf@emacs.iotcl.com> source: <20260622-b4-pks-odb-generalize-prepare-v1-0-d2a5c5d13144@pks.im> @@ -294,15 +377,16 @@ Release tarballs are available at: * wy/doc-clarify-review-replies (2026-06-21) 2 commits - - doc: advise batching patch rerolls - - doc: encourage review replies before rerolling + (merged to 'next' on 2026-06-29 at 21ae0599dc) + + doc: advise batching patch rerolls + + doc: encourage review replies before rerolling Documentation on community contribution guidelines has been updated to encourage replying to review comments before rerolling, and to advise a default limit of at most one reroll per day to give reviewers across different time zones enough time to participate. - Will merge to 'next'? + Will merge to 'master'. cf. source: @@ -320,7 +404,7 @@ Release tarballs are available at: source: <20260619155152.642760-1-cat@malon.dev> -* mm/line-log-limited-ops (2026-06-18) 7 commits +* mm/line-log-limited-ops (2026-06-27) 7 commits - diffcore-pickaxe: scope -G to the -L tracked range - diff: support --check with -L line ranges - line-log: support diff stat formats with -L @@ -332,12 +416,11 @@ Release tarballs are available at: "git log -L:" learned to limit various "diff" operations like --stat, --check, -G, to the specified range:path. - Expecting a reroll. - cf. - source: + Needs review. + source: -* hn/history-squash (2026-06-24) 4 commits +* hn/history-squash (2026-06-28) 4 commits - history: re-edit a squash with every message - history: add squash subcommand to fold a range - history: give commit_tree_ext a message template @@ -347,19 +430,10 @@ Release tarballs are available at: "squash" subcommand to fold a range of commits into a single commit, replaying any descendants on top. - Needs review. - source: - - -* ps/t4216-tap-fix (2026-06-19) 1 commit - (merged to 'next' on 2026-06-25 at 42296fc12e) - + t4216: fix no-op test that breaks TAP output - - TAP output breakage fix. - - Will merge to 'master'. - cf. - source: <20260619-pks-t4216-drop-unused-prereq-v1-1-2ce0d7bea088@pks.im> + Waiting for response(s) to review comment(s). + cf. + cf. + source: * mh/fetch-follow-remote-head-config (2026-06-19) 8 commits @@ -478,7 +552,8 @@ Release tarballs are available at: - t: fix grep assertions missing file arguments - t/README: document test_grep helper - Needs review. + Waiting for response(s) to review comment(s). + cf. source: @@ -520,18 +595,20 @@ Release tarballs are available at: source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com> -* tc/replay-linearize (2026-06-22) 3 commits +* tc/replay-linearize (2026-06-25) 3 commits - replay: offer an option to linearize the commit topology + - replay: better explain how pick_regular_commit() picks a base - replay: add helper to put entry into mapped_commits - - replay: refactor enum replay_mode into a bool git replay learns --linearize option to drop merge commits and linearize the replayed history, mimicking git rebase --no-rebase-merges. - Expecting a reroll. - cf. <87tsqrycke.fsf@emacs.iotcl.com> - source: <20260622-toon-git-replay-drop-merges-v4-0-ff257f534319@iotcl.com> + Waiting for response(s) to review comment(s). + cf. + cf. + cf. + source: <20260626-toon-git-replay-drop-merges-v5-0-5e120738b9d0@iotcl.com> * ps/setup-drop-global-state (2026-06-10) 8 commits @@ -556,27 +633,29 @@ Release tarballs are available at: source: <20260611-b4-pks-setup-drop-global-state-v2-0-a6f7269c841d@pks.im> -* ps/refs-avoid-chdir-notify-reparent (2026-06-25) 12 commits - - refs: protect against chicken-and-egg recursion - - refs/reftable: lazy-load configuration to fix chicken-and-egg - - reftable: split up write options - - refs/files: lazy-load configuration to fix chicken-and-egg - - refs: move parsing of "core.logAllRefUpdates" back into ref stores - - repository: free main reference database - - chdir-notify: drop unused `chdir_notify_reparent()` - - refs: unregister reference stores from "chdir_notify" - - setup: don't apply "GIT_REFERENCE_BACKEND" without a repository - - setup: stop applying repository format twice - - setup: inline `check_and_apply_repository_format()` - - Merge branch 'ps/setup-centralize-odb-creation' into ps/refs-avoid-chdir-notify-reparent - - The reference backends have been converted to always use absolute - paths internally. This allows dropping the calls to - `chdir_notify_reparent()` and fixes a memory leak in how the - reference database is constructed with an "onbranch" condition. +* ps/refs-onbranch-fixes (2026-06-25) 12 commits + (merged to 'next' on 2026-06-29 at 7b4929e311) + + refs: protect against chicken-and-egg recursion + + refs/reftable: lazy-load configuration to fix chicken-and-egg + + reftable: split up write options + + refs/files: lazy-load configuration to fix chicken-and-egg + + refs: move parsing of "core.logAllRefUpdates" back into ref stores + + repository: free main reference database + + chdir-notify: drop unused `chdir_notify_reparent()` + + refs: unregister reference stores from "chdir_notify" + + setup: don't apply "GIT_REFERENCE_BACKEND" without a repository + + setup: stop applying repository format twice + + setup: inline `check_and_apply_repository_format()` + + Merge branch 'ps/setup-centralize-odb-creation' into ps/refs-onbranch-fixes + + Reference backend configuration is now loaded lazily to avoid + recursive calls during repository initialization when "onbranch" + configuration conditions are evaluated. This also fixes a memory + leak and allows dropping the unused `chdir_notify_reparent()` + machinery. - Will merge to 'next'? - cf. + Will merge to 'master'. + cf. source: <20260625-b4-pks-refs-avoid-chdir-notify-reparent-v6-0-41fbca3cf5e3@pks.im> @@ -666,7 +745,7 @@ Release tarballs are available at: inapplicable or unsupported fields. Waiting for response(s) to review comment(s). - cf. + cf. source: <20260625-ps-eric-work-rebase-v14-0-09f7ffe21a53@gmail.com> @@ -776,22 +855,24 @@ Release tarballs are available at: * jk/repo-info-path-keys (2026-06-23) 3 commits - - repo: add path.gitdir with absolute and relative suffix formatting - - repo: add path.commondir with absolute and relative suffix formatting - - path: extract format_path() and use in rev-parse + (merged to 'next' on 2026-06-29 at fbf9652169) + + repo: add path.gitdir with absolute and relative suffix formatting + + repo: add path.commondir with absolute and relative suffix formatting + + path: extract format_path() and use in rev-parse The "git repo info" command has been taught new keys to output both absolute and relative paths for "gitdir" and "commondir", supported by a new path-formatting helper extracted from "git rev-parse". - Will merge to 'next'? + Will merge to 'master'. cf. source: <20260624033748.108281-1-jayatheerthkulkarni2005@gmail.com> -* ps/history-drop (2026-06-15) 10 commits +* ps/history-drop (2026-06-29) 11 commits - builtin/history: implement "drop" subcommand - builtin/history: split handling of ref updates into two phases + - replay: expose `replay_result_queue_update()` - reset: stop assuming that the caller passes in a clean index - reset: allow the caller to specify the current HEAD object - reset: introduce ability to skip updating HEAD @@ -805,9 +886,8 @@ Release tarballs are available at: subcommand to remove a commit and replay its descendants onto its parent. - Waiting for response(s) to review comment(s). - cf. - source: <20260615-b4-pks-history-drop-v6-0-2e329e536d78@pks.im> + Needs review. + source: <20260629-b4-pks-history-drop-v7-0-6e9392a957d8@pks.im> * jk/setup-gitfile-diag-fix (2026-06-16) 1 commit @@ -852,6 +932,7 @@ Release tarballs are available at: Waiting for response(s) to review comment(s). cf. + cf. source: @@ -940,6 +1021,7 @@ Release tarballs are available at: Waiting for response(s) to review comment(s). cf. <12998c3a-ff69-4a98-9ed6-18aa0224e75e@gmail.com> + cf. source: