From: Junio C Hamano Date: Tue, 9 Dec 2025 13:04:12 +0000 (+0900) Subject: What's cooking (2025/12 #02) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1b73e598593ade0fdefa070b455b33c4359f053;p=thirdparty%2Fgit.git What's cooking (2025/12 #02) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 6b53b6fdaa..1ea1e70627 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 (Dec 2025, #01) -X-master-at: bdc5341ff65278a3cc80b2e8a02a2f02aa1fac06 -X-next-at: 3f4935d65f8d04f04e16a208ba4f77a42d207db3 +Subject: What's cooking in git.git (Dec 2025, #02) +X-master-at: e85ae279b0d58edc2f4c3fd5ac391b51e1223985 +X-next-at: 3fc767764aec198db34053b394419bf8a1e8e5d2 Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Dec 2025, #01) +What's cooking in git.git (Dec 2025, #02) ----------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -51,128 +51,151 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* cc/fast-import-strip-if-invalid (2025-11-16) 3 commits - (merged to 'next' on 2025-11-26 at 7235cd0d18) - + fast-import: add 'strip-if-invalid' mode to --signed-commits= - + commit: refactor verify_commit_buffer() - + fast-import: refactor finalize_commit_buffer() +* bc/zsh-testsuite (2025-11-27) 2 commits + (merged to 'next' on 2025-11-30 at b4a3081f6f) + + t5564: fix test hang under zsh's sh mode + + t0614: use numerical comparison with test_line_count + + A few tests have been updated to work under the shell compatible + mode of zsh. + source: <20251128012107.101431-1-sandals@crustytoothpaste.net> + - "git fast-import" learns "--strip-if-invalid" option to drop - invalid cryptographic signature from objects. - source: <20251117043450.322644-1-christian.couder@gmail.com> - - -* en/xdiff-cleanup-2 (2025-11-18) 10 commits - (merged to 'next' on 2025-11-25 at 452b7107da) - + xdiff: rename rindex -> reference_index - + xdiff: change rindex from long to size_t in xdfile_t - + xdiff: make xdfile_t.nreff a size_t instead of long - + xdiff: make xdfile_t.nrec a size_t instead of long - + xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash - + xdiff: use unambiguous types in xdl_hash_record() - + xdiff: use size_t for xrecord_t.size - + xdiff: make xrecord_t.ptr a uint8_t instead of char - + xdiff: use ptrdiff_t for dstart/dend - + doc: define unambiguous type mappings across C and Rust - - Code clean-up. - source: - - -* jc/optional-path (2025-11-20) 3 commits - (merged to 'next' on 2025-11-25 at 5e75404281) - + config: really treat missing optional path as not configured - + config: really pretend missing :(optional) value is not there - + config: mark otherwise unused function as file-scope static - - "git config get --path" segfaulted on an ":(optional)path" that - does not exist, which has been corrected. - source: - - -* js/ci-show-breakage-in-dockerized-jobs (2025-11-17) 1 commit - (merged to 'next' on 2025-11-26 at 3c4a8c430f) - + ci(dockerized): do show the result of failing tests again - - Dockerised jobs at the GitHub Actions CI have been taught to show - more details of failed tests. - cf. - cf. - source: - - -* js/strip-scalar-too (2025-11-17) 1 commit - (merged to 'next' on 2025-11-25 at 9f2607acfb) - + make strip: include `scalar` - - "make strip" has been taught to strip "scalar" as well as "git". - cf. - source: - - -* kh/doc-committer-date-is-author-date (2025-11-20) 1 commit - (merged to 'next' on 2025-11-25 at 9f829587af) - + doc: warn against --committer-date-is-author-date - - The "--committer-date-is-author-date" option of "git am/rebase" is - a misguided one. The documentation is updated to discourage its - use. - source: - - -* ps/object-source-management (2025-11-18) 14 commits - (merged to 'next' on 2025-11-26 at 6f98745b4a) - + odb: handle recreation of quarantine directories - + odb: handle changing a repository's commondir - + chdir-notify: add function to unregister listeners - + odb: handle initialization of sources in `odb_new()` - + http-push: stop setting up `the_repository` for each reference - + t/helper: stop setting up `the_repository` repeatedly - + builtin/index-pack: fix deferred fsck outside repos - + oidset: introduce `oidset_equal()` - + odb: move logic to disable ref updates into repo - + odb: refactor `odb_clear()` to `odb_free()` - + odb: adopt logic to close object databases - + setup: convert `set_git_dir()` to have file scope - + path: move `enter_repo()` into "setup.c" - + Merge branch 'ps/object-source-loose' into ps/object-source-management - - Code refactoring around object database sources. - cf. - source: <20251119-b4-pks-odb-creation-v1-0-2b2ed2612cb6@pks.im> - - -* rs/config-set-multi-error-message-fix (2025-11-24) 1 commit - (merged to 'next' on 2025-11-26 at 639a1e26d2) - + config: fix suggestion for failed set of multi-valued option - - The error message given by "git config set", when the variable - being updated has more than one values defined, used old style "git - config" syntax with an incorrect option in its hint, both of which - have been corrected. - source: - - -* rs/config-unset-opthelp-fix (2025-11-24) 1 commit - (merged to 'next' on 2025-11-26 at 31e282f4ae) - + config: fix short help of unset flags +* en/replay-doc-revision-range (2025-11-28) 1 commit + (merged to 'next' on 2025-11-30 at 37ba09bea2) + + Documentation/git-replay.adoc: fix errors around revision range + + The use of "revision" (a connected set of commits) has been + clarified in the "git replay" documentation. + source: - The option help text given by "git config unset -h" described - the "--all" option to "replace", not "unset", multiple variables, - which has been corrected. - source: <06997dce-e4d5-4889-8e70-5f44da3dc800@web.de> + +* pw/replay-exclude-gpgsig-fix (2025-11-26) 1 commit + (merged to 'next' on 2025-11-30 at 3dda1242db) + + replay: do not copy "gpgsign-sha256" header + (this branch is used by ps/history and pw/replay-drop-empty.) + + "git replay" forgot to omit the "gpgsig-sha256" extended header + from the resulting commit the same way it omits "gpgsig", which has + been corrected. + source: <4f04af5790353b074cf122c450c1cd3f8d1cecf3.1764167611.git.phillip.wood@dunelm.org.uk> + + +* yc/xdiff-patience-optim (2025-11-26) 1 commit + (merged to 'next' on 2025-11-30 at db62d67599) + + xdiff: optimize patience diff's LCS search + + The way patience diff finds LCS has been optimized. + source: -------------------------------------------------- [New Topics] -* ap/packfile-promisor-object-optim (2025-12-05) 1 commit - - packfile: skip decompressing and hashing blobs in add_promisor_object() +* jc/capability-leak (2025-12-06) 1 commit + - connect: plug protocol capability leak + + Leakfix. + + Will merge to 'next'. + source: + + +* kh/doc-replay-updates (2025-12-07) 3 commits + - doc: replay: link section using markup + - doc: replay: document --contained + - doc: replay: mention no output on conflicts + + "git replay" documentation updates. + + Will merge to 'next'. + source: + + +* lo/repo-info-keys (2025-12-07) 1 commit + - repo: add new flag --keys to git-repo-info + (this branch uses lo/repo-struct-z.) + + "git repo info" learns "--keys" action to list known keys. + + Expecting a reroll. + source: <20251204210843.79411-1-lucasseikioshiro@gmail.com> + + +* kh/doc-pre-commit-fix (2025-12-07) 1 commit + - doc: join default pre-commit paragraphs + + Docfix. + + Will merge to 'next'. + source: + + +* kh/doc-send-email-paragraph-fix (2025-12-08) 1 commit + - doc: send-email: fix broken list continuation + + Docfix. + + Will merge to 'next'. + source: + + +* mh/doc-config-gui-gcwarning (2025-12-08) 1 commit + - config: document 'gui.GCWarning' + + Docfix. + + Will merge to 'next'. + source: <20251208190400.64920-1-matthewhughes934@gmail.com> + + +* ps/odb-alternates-object-sources (2025-12-08) 8 commits + - odb: write alternates via sources + - odb: read alternates via sources + - odb: drop forward declaration of `read_info_alternates()` + - odb: remove mutual recursion when parsing alternates + - odb: adapt `odb_add_to_alternates_file()` to call `odb_add_source()` + - odb: move computation of normalized objdir into `alt_odb_usable()` + - odb: resolve relative alternative paths when parsing + - odb: refactor parsing of alternates to be self-contained + + Code refactoring around alternate object store. + + Comments? + source: <20251208-b4-pks-odb-alternates-via-source-v1-0-e7ebb8b18c03@pks.im> + + +* ps/repack-avoid-noop-midx-rewrite (2025-12-08) 2 commits + - builtin/repack: don't regenerate MIDX unless needed + - midx: fix `BUG()` when getting preferred pack without a reverse index + + Even when there is no changes in the packfile and no need to + recompute bitmaps, "git repack" recomputed and updated the MIDX + file, which has been corrected. + + Comments? + source: <20251208-pks-skip-noop-rewrite-v1-0-430d52dba9f0@pks.im> + + +* sb/doc-update-ref-markup-fix (2025-12-08) 1 commit + - doc: fix `update-ref` `symref-create` formatting + + Doc mark-up fix. + + Will merget to 'next'. + source: + +-------------------------------------------------- +[Cooking] + +* ap/packfile-promisor-object-optim (2025-12-08) 2 commits + - packfile: skip hash checks in add_promisor_object() + - object: apply skip_hash and discard_tree optimizations to unknown blobs too The code path that enumerates promisor objects have been optimized to skip pointlessly parsing blob objects. Comments? - source: <20251206002014.2066644-1-aplattner@nvidia.com> + source: <20251209014900.402637-1-aplattner@nvidia.com> * je/doc-pull (2025-12-03) 1 commit @@ -212,6 +235,7 @@ Release tarballs are available at: + repo: add -z as an alias for --format=nul to git-repo-structure + repo: use [--format=... | -z] instead of [-z] in git-repo-info synopsis + repo: remove blank line from Documentation/git-repo.adoc + (this branch is used by lo/repo-info-keys.) "git repo struct" learned to take "-z" as a synonym to "--format=nul". @@ -266,16 +290,17 @@ Release tarballs are available at: * rs/ban-mktemp (2025-12-06) 5 commits - - compat: remove gitmkdtemp() - - banned.h: ban mktemp(3) - - compat: remove mingw_mktemp() - - compat: use git_mkdtemp() - - wrapper: add git_mkdtemp() + (merged to 'next' on 2025-12-09 at d459e9d8dd) + + compat: remove gitmkdtemp() + + banned.h: ban mktemp(3) + + compat: remove mingw_mktemp() + + compat: use git_mkdtemp() + + wrapper: add git_mkdtemp() Rewrite the only use of "mktemp()" that is subject to TOCTOU race and Stop using the insecure "mktemp()" function. - Will merge to 'next'. + Will merge to 'master'. source: <64e62623-b911-4ddd-a481-05191853c0a6@web.de> @@ -300,7 +325,8 @@ Release tarballs are available at: Further work on incremental repacking using MIDX/bitmap - Comments? + Expecting a reroll. + cf. source: @@ -323,8 +349,6 @@ Release tarballs are available at: Comments? source: --------------------------------------------------- -[Cooking] * tc/last-modified-active-paths-optimization (2025-11-28) 1 commit (merged to 'next' on 2025-12-05 at 42c18b607f) @@ -337,17 +361,6 @@ Release tarballs are available at: source: <20251128-toon-big-endian-ci-v1-1-80da0f629c1e@iotcl.com> -* en/replay-doc-revision-range (2025-11-28) 1 commit - (merged to 'next' on 2025-11-30 at 37ba09bea2) - + Documentation/git-replay.adoc: fix errors around revision range - - The use of "revision" (a connected set of commits) has been - clarified in the "git replay" documentation. - - Will merge to 'master'. - source: - - * jk/parse-int (2025-11-30) 5 commits - fsck: use parse_unsigned_from_buf() for parsing timestamp - cache-tree: use parse_int_from_buf() @@ -399,19 +412,6 @@ Release tarballs are available at: source: -* pw/replay-exclude-gpgsig-fix (2025-11-26) 1 commit - (merged to 'next' on 2025-11-30 at 3dda1242db) - + replay: do not copy "gpgsign-sha256" header - (this branch is used by ps/history and pw/replay-drop-empty.) - - "git replay" forgot to omit the "gpgsig-sha256" extended header - from the resulting commit the same way it omits "gpgsig", which has - been corrected. - - Will merge to 'master'. - source: <4f04af5790353b074cf122c450c1cd3f8d1cecf3.1764167611.git.phillip.wood@dunelm.org.uk> - - * tc/last-modified-options-cleanup (2025-11-26) 4 commits - fixup! last-modified: document option --max-depth - last-modified: document how depth is handled better @@ -425,28 +425,6 @@ Release tarballs are available at: source: <20251126-toon-last-modified-zzzz-v1-0-608350df0caa@iotcl.com> -* yc/xdiff-patience-optim (2025-11-26) 1 commit - (merged to 'next' on 2025-11-30 at db62d67599) - + xdiff: optimize patience diff's LCS search - - The way patience diff finds LCS has been optimized. - - Will merge to 'master'. - source: - - -* bc/zsh-testsuite (2025-11-27) 2 commits - (merged to 'next' on 2025-11-30 at b4a3081f6f) - + t5564: fix test hang under zsh's sh mode - + t0614: use numerical comparison with test_line_count - - A few tests have been updated to work under the shell compatible - mode of zsh. - - Will merge to 'master'. - source: <20251128012107.101431-1-sandals@crustytoothpaste.net> - - * ds/doc-scalar-config (2025-12-01) 5 commits - scalar: document config settings - scalar: alphabetize and simplify config @@ -464,7 +442,7 @@ Release tarballs are available at: * pw/replay-drop-empty (2025-11-27) 2 commits - replay: drop commits that become empty - Merge branch 'ps/history' into pw/replay-drop-empty - (this branch uses ps/history and pw/replay-exclude-gpgsig-fix.) + (this branch uses ps/history.) "git replay" is taught to drop commits that become empty (not the ones that are empty in the original). @@ -485,11 +463,12 @@ Release tarballs are available at: * gf/win32-pthread-cond-init (2025-11-20) 1 commit - - win32: pthread_cond_init should return a value + (merged to 'next' on 2025-12-09 at 202516d20c) + + win32: pthread_cond_init should return a value Emulation code clean-up. - Will merge to 'next'. + Will merge to 'master'. source: @@ -522,31 +501,32 @@ Release tarballs are available at: * ps/object-read-stream (2025-11-23) 20 commits - - streaming: drop redundant type and size pointers - - streaming: move into object database subsystem - - streaming: refactor interface to be object-database-centric - - streaming: move logic to read packed objects streams into backend - - streaming: move logic to read loose objects streams into backend - - streaming: make the `odb_read_stream` definition public - - streaming: get rid of `the_repository` - - streaming: rely on object sources to create object stream - - packfile: introduce function to read object info from a store - - streaming: move zlib stream into backends - - streaming: create structure for filtered object streams - - streaming: create structure for packed object streams - - streaming: create structure for loose object streams - - streaming: create structure for in-core object streams - - streaming: allocate stream inside the backend-specific logic - - streaming: explicitly pass packfile info when streaming a packed object - - streaming: propagate final object type via the stream - - streaming: drop the `open()` callback function - - streaming: rename `git_istream` into `odb_read_stream` - - Merge branch 'ps/object-source-loose' into ps/object-read-stream + (merged to 'next' on 2025-12-09 at c8d645f8ea) + + streaming: drop redundant type and size pointers + + streaming: move into object database subsystem + + streaming: refactor interface to be object-database-centric + + streaming: move logic to read packed objects streams into backend + + streaming: move logic to read loose objects streams into backend + + streaming: make the `odb_read_stream` definition public + + streaming: get rid of `the_repository` + + streaming: rely on object sources to create object stream + + packfile: introduce function to read object info from a store + + streaming: move zlib stream into backends + + streaming: create structure for filtered object streams + + streaming: create structure for packed object streams + + streaming: create structure for loose object streams + + streaming: create structure for in-core object streams + + streaming: allocate stream inside the backend-specific logic + + streaming: explicitly pass packfile info when streaming a packed object + + streaming: propagate final object type via the stream + + streaming: drop the `open()` callback function + + streaming: rename `git_istream` into `odb_read_stream` + + Merge branch 'ps/object-source-loose' into ps/object-read-stream The "git_istream" abstraction has been revamped to make it easier to interface with pluggable object database design. - Will merge to 'next'. + Will merge to 'master'. source: <20251123-b4-pks-odb-read-stream-v3-0-1a129182822b@pks.im> @@ -670,7 +650,7 @@ Release tarballs are available at: - replay: extract logic to pick commits - wt-status: provide function to expose status for trees - Merge branch 'pw/replay-exclude-gpgsig-fix' into ps/history - (this branch is used by pw/replay-drop-empty; uses pw/replay-exclude-gpgsig-fix.) + (this branch is used by pw/replay-drop-empty.) "git history" history rewriting UI.