From: Junio C Hamano Date: Mon, 8 Jun 2026 17:44:26 +0000 (+0900) Subject: What's cooking (2026/06 #03) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f66322d84cf5300da35c24368a282848490e3ae6;p=thirdparty%2Fgit.git What's cooking (2026/06 #03) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index af2cf69283..2e9b59447d 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, #02) -X-master-at: 9ac3f193c05c2237e2b14ebaa1149e9fc8a1abe0 -X-next-at: db2ca164c43750165ab5e82abe85bdbbc99a810f +Subject: What's cooking in git.git (Jun 2026, #03) +X-master-at: 600fe743028cbfb640855f659e9851522214bc0b +X-next-at: 3af1d1dc617ff77b2d2d43d1d742f19887db26f5 Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Jun 2026, #02) +What's cooking in git.git (Jun 2026, #03) ----------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -45,34 +45,236 @@ Release tarballs are available at: https://www.kernel.org/pub/software/scm/git/ +-------------------------------------------------- +[Graduated to 'master'] + +* aj/stash-patch-optimize-temporary-index (2026-05-22) 1 commit + (merged to 'next' on 2026-05-31 at d1b1dd94f5) + + stash: reuse cached index entries in --patch temporary index + + "git stash -p" has been optimized by reusing cached index + entries in its temporary index, avoiding unnecessary lstat() + calls on unchanged files. + cf. + source: + + +* ar/receive-pack-worktree-env (2026-05-25) 1 commit + (merged to 'next' on 2026-05-27 at 9c246d1969) + + receive-pack: fix updateInstead with core.worktree + + The GIT_WORK_TREE variable prepared to invoke the push-to-checkout + hook was leaking into the environment even when there was no hook + used and broke the default push-to-deploy (i.e., let "git checkout" + update the working tree only when the working tree is clean). + source: <20260525162311.66240-2-hi@alyssa.is> + + +* ds/restore-sparse-index (2026-05-26) 2 commits + (merged to 'next' on 2026-05-31 at e85a961bc7) + + restore: avoid sparse index expansion + + t1092: test 'git restore' with sparse index + + 'git restore --staged' has been optimized to avoid unnecessarily expanding + the sparse index when operating on paths within the sparse checkout + definition, by handling sparse directory entries at the tree level. + source: + + +* ja/doc-synopsis-style-again (2026-05-25) 6 commits + (merged to 'next' on 2026-05-31 at cc4fe82d87) + + doc: convert git-imap-send synopsis and options to new style + + doc: convert git-apply synopsis and options to new style + + doc: convert git-am synopsis and options to new style + + doc: convert git-grep synopsis and options to new style + + doc: git bisect: clarify the usage of the synopsis vs actual command + + doc: convert git-bisect to synopsis style + + A batch of documentation pages has been updated to use the modern + synopsis style. + cf. + source: + + +* kh/free-commit-list (2026-05-28) 2 commits + (merged to 'next' on 2026-05-31 at 154f83b192) + + commit: remove deprecated functions + + *: replace deprecated free_commit_list + + Code clean-up. + source: + + +* kk/commit-reach-optim (2026-05-25) 3 commits + (merged to 'next' on 2026-05-31 at eeb8d0c207) + + commit-reach: replace queue_has_nonstale() scan with O(1) tracking + + commit-reach: deduplicate queue entries in paint_down_to_common + + object.h: fix stale entries in object flag allocation table + + The check for non-stale commits in the priority queue used by + `paint_down_to_common` and `ahead_behind` has been optimized by + replacing an O(N) scan with an O(1) counter, yielding performance + improvements in repositories with wide histories. + cf. + source: + -------------------------------------------------- [New Topics] -* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit - - http: preserve wwwauth_headers across redirects +* ps/odb-source-packed (2026-06-04) 17 commits + - odb/source-packed: drop pointer to "files" parent source + - midx: refactor interfaces to work on "packed" source + - odb/source-packed: stub out remaining functions + - odb/source-packed: wire up `freshen_object()` callback + - odb/source-packed: wire up `find_abbrev_len()` callback + - odb/source-packed: wire up `count_objects()` callback + - odb/source-packed: wire up `for_each_object()` callback + - odb/source-packed: wire up `read_object_stream()` callback + - odb/source-packed: wire up `read_object_info()` callback + - packfile: use higher-level interface to implement `has_object_pack()` + - odb/source-packed: wire up `reprepare()` callback + - odb/source-packed: wire up `close()` callback + - odb/source-packed: start converting to a proper `struct odb_source` + - odb/source-packed: store pointer to "files" instead of generic source + - packfile: move packed source into "odb/" subsystem + - packfile: rename `struct packfile_store` to `odb_source_packed` + - Merge branch 'ps/odb-source-loose' into ps/odb-source-packed + (this branch uses ps/odb-source-loose.) + + The packed object source has been refactored into a proper struct + odb_source. - When cURL follows a redirect, the WWW-Authenticate headers from the - redirect target were lost because credential_from_url() cleared the - credential state. This has been fixed by preserving the collected - headers across the redirect update. + Comments? + source: <20260604-pks-odb-source-packed-v1-0-2e7ab31b4b5c@pks.im> - Expecting a reroll. - cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com> - source: <20260602161150.1527493-1-aplattner@nvidia.com> +* ps/transport-helper-tsan-fix (2026-06-04) 1 commit + - transport-helper: fix TSAN race in transfer_debug() -* ps/doc-recommend-b4 (2026-06-02) 3 commits - - b4: introduce configuration for the Git project - - Documentation/MyFirstContribution: recommend the use of b4 - - Documentation/MyFirstContribution: recommend shallow threading + The TSAN race in transfer_debug() within transport-helper.c has been + resolved by initializing the debug flag early in + bidirectional_transfer_loop() before spawning worker threads, allowing + the removal of a TSAN suppression. - Project-specific configuration for b4 has been introduced, and the - documentation has been updated to recommend using it as a - streamlined method for submitting patches. + Comments? + source: <20260604132327.277693-3-pushkarkumarsingh1970@gmail.com> - Waiting for response(s) to review comment(s). - cf. - source: <20260603-pks-b4-v2-0-a8aea0aa2c23@pks.im> + +* ta/typofixes (2026-06-04) 1 commit + - docs: fix typos + + Typofixes + + Comments? + source: <20260604131457.19215-1-taahol@utu.fi> + + +* js/win-kill-child-more-gently (2026-06-04) 2 commits + - mingw: really handle SIGINT + - mingw: kill child processes in a gentler way + + Advanced emulation of kill() used on Windows in GfW has been + upstreamed to improve the symptoms like left-behind .lock files and + that fails to let the child clean-up itself when it gets killed. + + Comments? + source: + + +* dl/posix-unused-warning-clang (2026-06-08) 2 commits + - compat/posix.h: simplify GIT_GNUC_PREREQ() comparison + - compat/posix.h: enable UNUSED warning messages for Clang + + The UNUSED macro in 'compat/posix.h' has been updated to use a + newly introduced GIT_CLANG_PREREQ macro for compiler version + checks, and the existing GIT_GNUC_PREREQ macro has been modernized + to use explicit major/minor comparisons rather than bit-shifting. + + Comments? + source: <20260608124419.38905-1-dominik.loidolt@univie.ac.at> + + +* lo/doc-format-patch-subject-prefix (2026-06-04) 1 commit + - Documentation: remove redundant 'instead' in --subject-prefix + + Wording used in "format-patch --subject-prefix" documentation + has been improved. + + Will merge to 'next'. + source: <20260604163510.36687-2-lucasseikioshiro@gmail.com> + + +* am/doc-tech-hash-typofix (2026-06-05) 1 commit + - doc: fix typo in GIT_ALTERNATE_OBJECT_DIRECTORIES + + Typofix. + + Will merge to 'next'. + cf. + source: <20260605172643.8796-1-amonakov@ispras.ru> + + +* td/ref-filter-restore-prefix-iteration (2026-06-05) 1 commit + - ref-filter: restore prefix-scoped iteration + + Commands that list branches and tags (like git branch and git tag) + have been optimized to pass the namespace prefix when initializing + their ref iterator, avoiding a loose-ref scaling regression in + repositories with many unrelated loose references. + + Comments? + source: <20260605-fix-git-branch-regression-v1-1-02f40ad40929@gmail.com> + + +* ty/move-protect-hfs-ntfs (2026-06-06) 1 commit + - environment.c: move 'protect_hfs' and 'protect_ntfs' into 'repo_config_values' + + The global configuration variables protect_hfs and protect_ntfs have + been migrated into struct repo_config_values to tie them to + per-repository configuration state. + + Comments? + source: <20260606143412.15443-1-cat@malon.dev> + + +* ds/config-no-includes (2026-06-08) 3 commits + - git: add --no-includes top-level option + - config: add GIT_CONFIG_INCLUDES + - git-config.adoc: fix paragraph break + + Two new mechanisms, the GIT_CONFIG_INCLUDES environment variable and + the top-level --no-includes command-line option, have been introduced + to ignore configuration include directives. + + Comments? + source: + + +* ps/cat-file-remote-object-info (2026-06-08) 12 commits + - cat-file: make remote-object-info allow-list dynamic + - cat-file: validate remote atoms with allow_list + - cat-file: add remote-object-info to batch-command + - transport: add client support for object-info + - serve: advertise object-info feature + - fetch-pack: move fetch initialization + - connect: refactor packet writing + - fetch-pack: move function to connect.c + - t1006: split test utility functions into new "lib-cat-file.sh" + - cat-file: add declaration of variable i inside its for loop + - git-compat-util: add strtoul_ul() with error handling + - transport-helper: fix memory leak of helper on disconnect + + The `remote-object-info` command has been added to `git cat-file + --batch-command`, allowing clients to request object metadata + (currently size) from a remote server via protocol v2 without + downloading the entire object. + + The client dynamically filters format placeholders based on + server-advertised capabilities and safely returns empty strings for + inapplicable or unsupported fields. + + Comments? + source: <20260608-ps-eric-work-rebase-v12-0-5338b766e658@gmail.com> -------------------------------------------------- [Stalled] @@ -105,15 +307,30 @@ Release tarballs are available at: -------------------------------------------------- [Cooking] -* kh/free-commit-list (2026-05-28) 2 commits - (merged to 'next' on 2026-05-31 at 154f83b192) - + commit: remove deprecated functions - + *: replace deprecated free_commit_list +* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit + - http: preserve wwwauth_headers across redirects - Code clean-up. + When cURL follows a redirect, the WWW-Authenticate headers from the + redirect target were lost because credential_from_url() cleared the + credential state. This has been fixed by preserving the collected + headers across the redirect update. + + Expecting a reroll. + cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com> + source: <20260602161150.1527493-1-aplattner@nvidia.com> - Will merge to 'master'. - source: + +* ps/doc-recommend-b4 (2026-06-07) 3 commits + - b4: introduce configuration for the Git project + - MyFirstContribution: recommend the use of b4 + - MyFirstContribution: recommend shallow threading of cover letters + + Project-specific configuration for b4 has been introduced, and the + documentation has been updated to recommend using it as a + streamlined method for submitting patches. + + Comments? + source: <20260608-pks-b4-v3-0-f5e497d10c56@pks.im> * kk/streaming-walk-pqueue (2026-05-27) 3 commits @@ -151,7 +368,8 @@ Release tarballs are available at: underlying real branches, fixing failures when branch aliases (like a default branch rename) are present. - Comments? + Waiting for response(s) to review comment(s). + cf. source: @@ -217,12 +435,12 @@ Release tarballs are available at: * mm/diff-process-hunks (2026-05-29) 6 commits - - blame: consult diff process for no-hunk detection - - diff: bypass diff process with --no-ext-diff and in format-patch - - diff: add long-running diff process via diff..process - - sub-process: separate process lifecycle from hashmap management - - userdiff: add diff..process config - - xdiff: support external hunks via xpparam_t + . blame: consult diff process for no-hunk detection + . diff: bypass diff process with --no-ext-diff and in format-patch + . diff: add long-running diff process via diff..process + . sub-process: separate process lifecycle from hashmap management + . userdiff: add diff..process config + . xdiff: support external hunks via xpparam_t A new `diff..process` configuration has been introduced to allow a long-running external process to act as a hunk provider to @@ -230,8 +448,8 @@ Release tarballs are available at: while leaving all output formatting (word diff, color, blame, etc.) to Git's standard pipeline. - Breaks CI. - cf. + Expecting a reroll. + cf. source: @@ -273,7 +491,11 @@ Release tarballs are available at: Typofixes. Will merge to 'next'. + cf. <3398ef40-1547-4324-2cfc-97b9e2b24854@gmx.de> + cf. source: <20260531184428.55905-1-algonell@gmail.com> + source: <20260506101631.18127-1-algonell@gmail.com> + source: <3398ef40-1547-4324-2cfc-97b9e2b24854@gmx.de> * kk/prio-queue-cascade-sift (2026-06-01) 1 commit @@ -301,22 +523,21 @@ Release tarballs are available at: source: -* jk/repo-info-path-keys (2026-06-01) 4 commits +* jk/repo-info-path-keys (2026-06-05) 4 commits - repo: add path.commondir with absolute and relative suffix formatting - repo: add path.gitdir with absolute and relative suffix formatting - - rev-parse: use strbuf_add_path for path formatting - - path: add strbuf_add_path for formatting paths + - rev-parse: use format_path for path formatting + - path: introduce format_path() for centralized path formatting 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". - Waiting for response(s) to review comment(s). - cf. <8ebc3d98-40a5-4e99-a205-34254cf5172b@gmail.com> - source: <20260601151950.30686-1-jayatheerthkulkarni2005@gmail.com> + Comments? + source: <20260605163012.181089-1-jayatheerthkulkarni2005@gmail.com> -* ps/history-drop (2026-06-03) 9 commits +* ps/history-drop (2026-06-08) 9 commits - builtin/history: implement "drop" subcommand - builtin/history: split handling of ref updates into two phases - reset: stop assuming that the caller passes in a clean index @@ -332,7 +553,7 @@ Release tarballs are available at: parent. Comments? - source: <20260603-b4-pks-history-drop-v2-0-742cb5b5176d@pks.im> + source: <20260608-b4-pks-history-drop-v3-0-84ca8e43e937@pks.im> * ls/doc-raw-timestamp-prefix (2026-06-02) 1 commit @@ -342,8 +563,8 @@ Release tarballs are available at: raw timestamp format requires a `@` prefix for values less than 100,000,000 to prevent ambiguity with other formats like YYYYMMDD. - Will merge to 'next'? - cf. + Will merge to 'next'. + cf. xmqqmrxdxq1r.fsf@gitster.g> source: <20260602081924.673763-2-dev@luna.gl> @@ -367,25 +588,29 @@ Release tarballs are available at: have been added to SubmittingPatches, which also got a new marker to separate the section for typofixes. - Will merge to 'next'? + Will merge to 'next'. cf. + cf. source: <20260602144304.3341000-1-gitster@pobox.com> -* ps/t7527-fix-tap-output (2026-06-02) 4 commits +* ps/t7527-fix-tap-output (2026-06-04) 8 commits - t: let prove fail when parsing invalid TAP output - t/lib-git-p4: silence output when killing p4d and its watchdog - t/test-lib: silence EBUSY errors on Windows during test cleanup + - t7810: turn MB_REGEX check into a lazy prereq - t7527: fix broken TAP output + - ci: unify Linux images across GitLab and GitHub + - gitlab-ci: add missing Linux jobs + - gitlab-ci: rearrange Linux jobs to match GitHub's order A recent regression in t7527 that broke TAP output has been fixed, some other test noise that also broke TAP output has been silenced, and 'prove' is now configured to fail on invalid TAP output to prevent future regressions. - Expecting a (small and hopefully final) reroll. - cf. - source: <20260603-pks-t7527-fix-tap-output-v2-0-cf3af5694e20@pks.im> + Comments? + source: <20260604-pks-t7527-fix-tap-output-v3-0-7d766ed481e4@pks.im> * ob/more-repo-config-values (2026-06-02) 8 commits @@ -402,7 +627,7 @@ Release tarballs are available at: variables into 'repo_config_values' to tie them to a specific repository instance, avoiding cross-repository state leakage. - Will merge to 'next'? + Will merge to 'next'. source: <20260602170921.35869-1-belkid98@gmail.com> @@ -436,48 +661,6 @@ Release tarballs are available at: source: -* ds/restore-sparse-index (2026-05-26) 2 commits - (merged to 'next' on 2026-05-31 at e85a961bc7) - + restore: avoid sparse index expansion - + t1092: test 'git restore' with sparse index - - 'git restore --staged' has been optimized to avoid unnecessarily expanding - the sparse index when operating on paths within the sparse checkout - definition, by handling sparse directory entries at the tree level. - - Will merge to 'master'. - source: - - -* kk/commit-reach-optim (2026-05-25) 3 commits - (merged to 'next' on 2026-05-31 at eeb8d0c207) - + commit-reach: replace queue_has_nonstale() scan with O(1) tracking - + commit-reach: deduplicate queue entries in paint_down_to_common - + object.h: fix stale entries in object flag allocation table - - The check for non-stale commits in the priority queue used by - `paint_down_to_common` and `ahead_behind` has been optimized by - replacing an O(N) scan with an O(1) counter, yielding performance - improvements in repositories with wide histories. - - Will merge to 'master'. - cf. - source: - - -* ar/receive-pack-worktree-env (2026-05-25) 1 commit - (merged to 'next' on 2026-05-27 at 9c246d1969) - + receive-pack: fix updateInstead with core.worktree - - The GIT_WORK_TREE variable prepared to invoke the push-to-checkout - hook was leaking into the environment even when there was no hook - used and broke the default push-to-deploy (i.e., let "git checkout" - update the working tree only when the working tree is clean). - - Will merge to 'master'. - source: <20260525162311.66240-2-hi@alyssa.is> - - * ib/doc-push-default-simple (2026-05-25) 1 commit (merged to 'next' on 2026-06-02 at 5c1ff2a769) + doc: clarify push.default=simple behavior @@ -546,6 +729,7 @@ Release tarballs are available at: + odb/source-loose: store pointer to "files" instead of generic source + odb/source-loose: move loose source into "odb/" subsystem + Merge branch 'ps/odb-in-memory' into ps/odb-source-loose + (this branch is used by ps/odb-source-packed.) The loose object source has been refactored into a proper `struct odb_source`. @@ -554,7 +738,7 @@ Release tarballs are available at: source: <20260601-b4-pks-odb-source-loose-v2-0-90ff159430af@pks.im> -* ps/setup-centralize-odb-creation (2026-05-25) 9 commits +* ps/setup-centralize-odb-creation (2026-06-04) 9 commits - setup: construct object database in `apply_repository_format()` - repository: stop reading loose object map twice on repo init - setup: stop initializing object database without repository @@ -569,11 +753,12 @@ Release tarballs are available at: refactored, and the initialization of the object database has been centralized. - Comments? - source: <20260526-b4-pks-setup-centralize-odb-creation-v2-0-2fa5b385c13e@pks.im> + Will merge to 'next'. + cf. + source: <20260604-b4-pks-setup-centralize-odb-creation-v3-0-0691834f318a@pks.im> -* kh/doc-replay-config (2026-06-03) 4 commits +* kh/doc-replay-config (2026-06-05) 4 commits - doc: replay: move “default” to the right-hand side - doc: replay: use a nested description list - doc: replay: improve config description @@ -583,20 +768,7 @@ Release tarballs are available at: variables. Comments? - source: - - -* aj/stash-patch-optimize-temporary-index (2026-05-22) 1 commit - (merged to 'next' on 2026-05-31 at d1b1dd94f5) - + stash: reuse cached index entries in --patch temporary index - - "git stash -p" has been optimized by reusing cached index - entries in its temporary index, avoiding unnecessary lstat() - calls on unchanged files. - - Will merge to 'master'. - cf. - source: + source: * tb/bitmap-build-performance (2026-05-27) 9 commits @@ -680,27 +852,11 @@ Release tarballs are available at: that the user meant "git config set foo.bar baz". Give advice when giving an error message. - Will merge to 'next'? + Will merge to 'next'. + cf. source: -* ja/doc-synopsis-style-again (2026-05-25) 6 commits - (merged to 'next' on 2026-05-31 at cc4fe82d87) - + doc: convert git-imap-send synopsis and options to new style - + doc: convert git-apply synopsis and options to new style - + doc: convert git-am synopsis and options to new style - + doc: convert git-grep synopsis and options to new style - + doc: git bisect: clarify the usage of the synopsis vs actual command - + doc: convert git-bisect to synopsis style - - A batch of documentation pages has been updated to use the modern - synopsis style. - - Will merge to 'master'. - cf. - source: - - * jt/config-lock-timeout (2026-05-17) 1 commit - config: retry acquiring config.lock, configurable via core.configLockTimeout @@ -713,20 +869,20 @@ Release tarballs are available at: source: <20260517132111.1014901-1-joerg@thalheim.io> -* hn/branch-prune-merged (2026-06-03) 6 commits - - branch: add --dry-run for --prune-merged - - branch: add branch..pruneMerged opt-out - - branch: add --prune-merged - - branch: prepare delete_branches for a bulk caller - - branch: let delete_branches warn instead of error on bulk refusal - - branch: add --forked filter for --list mode +* hn/branch-prune-merged (2026-06-05) 6 commits + . branch: add --dry-run for --prune-merged + . branch: add branch..pruneMerged opt-out + . branch: add --prune-merged + . branch: prepare delete_branches for a bulk caller + . branch: let delete_branches warn instead of error on bulk refusal + . branch: add --forked filter for --list mode "git branch" command learned "--prune-merged" option to remove local branches that have already been merged to the remote-tracking branches they track. - Comments? - source: + Breaks tests. + source: * st/daemon-sockaddr-fixes (2026-05-27) 3 commits