What's cooking (2025/11 #04)

todo
Junio C Hamano 2025-11-14 13:43:45 -08:00
parent 6925194772
commit 650eea4f39
1 changed files with 177 additions and 117 deletions

View File

@ -1,10 +1,10 @@
To: git@vger.kernel.org
Subject: What's cooking in git.git (Nov 2025, #03; Fri, 7)
X-master-at: 4badef0c3503dc29059d678abba7fac0f042bc84
X-next-at: 30608eb744ed5714313f016f8dabdd2811e7cf7c
Subject: What's cooking in git.git (Nov 2025, #04; Fri, 14)
X-master-at: fd372d9b1a69a01a676398882bbe3840bf51fe72
X-next-at: 230fcf2819a6e6e5372cd128168db10ebbe23885
Bcc: lwn@lwn.net, gitster@pobox.com

What's cooking in git.git (Nov 2025, #03; Fri, 7)
What's cooking in git.git (Nov 2025, #04; Fri, 14)
--------------------------------------------------

Here are the topics that have been cooking in my tree. Commits
@ -17,11 +17,6 @@ topic without enough support may be discarded after a long period of
no activity (of course they can be resubmit when new interests
arise).

Git 2.52-rc1 has been tagged. Hopefully we can have a reasonably
solid Git 2.52 in the middle of this month. Until then let's
concentrate on finding and fixing regressions introduced during this
cycle, if any.

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
repositories have only a subset of branches.
@ -53,54 +48,162 @@ Release tarballs are available at:
--------------------------------------------------
[Graduated to 'master']

* cc/fast-import-export-i18n-cleanup (2025-10-30) 5 commits
(merged to 'next' on 2025-11-03 at 41a35c3e52)
+ gpg-interface: mark a string for translation
+ fast-import: mark strings for translation
+ fast-export: mark strings for translation
+ gpg-interface: use left shift to define GPG_VERIFY_*
+ gpg-interface: simplify ssh fingerprint parsing
* dk/make-git-contacts-executable (2025-11-04) 1 commit
(merged to 'next' on 2025-11-07 at 30608eb744)
+ perl: also mark git-contacts executable

Messages from fast-import/export are now marked for i18n.
source: <20251030123332.3337684-1-christian.couder@gmail.com>
Building "git contacts" script (in contrib/) left the resulting
file unexecutable, which has been corrected.
source: <7fbb341e8f05fcde3a1543e3bb4e5a3ec1101692.1762280097.git.ben.knoble+github@gmail.com>


* dk/parseopt-optional-filename-fixes (2025-11-04) 6 commits
(merged to 'next' on 2025-11-04 at 1cb7573414)
+ parseopt: remove unreachable code
+ parseopt: restore const qualifier to parsed filename
+ config: use boolean type for a simple flag
+ parseopt: use boolean type for a simple flag
+ doc: clarify command equivalence comment
+ parseopt: fix :(optional) at command line to only ignore missing files
* dk/meson-html-dir (2025-11-04) 1 commit
(merged to 'next' on 2025-11-07 at b30cf1f060)
+ meson: make GIT_HTML_PATH configurable

A recently added configuration variable and command line option
syntax ":(optional)" for values that are of filename type
inconsistently behaved on an empty file (configuration took it
happily, while the command line option pretended as if it did not
exist), which has been corrected.
source: <cover.1762100242.git.ben.knoble+github@gmail.com>
source: <xmqq1pmdr9qu.fsf@gitster.g>
The build procedure based on meson learned to allow builders to
specify the directory to install HTML documents.
source: <385992f6020703558f0ba75a1be6c4f9dae08b83.1762264709.git.ben.knoble+github@gmail.com>


* js/ci-github-actions-update (2025-11-06) 1 commit
(merged to 'next' on 2025-11-06 at 68957de207)
+ ci: update {download,upload}-artifact Action versions
* tc/last-modified-active-paths-optimization (2025-10-23) 1 commit
(merged to 'next' on 2025-11-03 at 9ab444edfb)
+ last-modified: implement faster algorithm

CI updates.
source: <pull.1996.git.1762437576488.gitgitgadget@gmail.com>
"git last-modified" was optimized by narrowing the set of paths to
follow as it dug deeper in the history.
source: <20251023-b4-toon-last-modified-faster-v3-1-40a4ddbbadec@iotcl.com>


* pk/reflog-migrate-message-fix (2025-11-05) 1 commit
(merged to 'next' on 2025-11-06 at c9c574a496)
+ refs: add missing space in messages
* tu/credential-wincred-makefile-update (2025-11-05) 1 commit
(merged to 'next' on 2025-11-07 at ed74befe91)
+ wincred: align Makefile with other Makefiles in contrib

Message fix.
source: <a8220721-3260-15cb-6960-ca8b6433d7b5@softwolves.pp.se>
Build procedure for Wincred credential helper has been updated.
source: <3869ec21-e20d-cf9b-5913-6389c372a5f0@mailbox.tu-dresden.de>

--------------------------------------------------
[New Topics]

* rs/diff-quiet-no-rename (2025-11-09) 1 commit
(merged to 'next' on 2025-11-14 at 2d94808185)
+ diff: disable rename detection with --quiet

As "git diff --quiet" only cares about the existence of any
changes, disable rename/copy detection to skip more expensive
processing whose result will be discarded anyway.

Will cook in 'next'.
source: <8796cd59-2335-4674-823d-d682ce7b7f8e@web.de>


* jc/gitattributes-whitespace-no-indent-fix (2025-11-11) 1 commit
(merged to 'next' on 2025-11-14 at 230fcf2819)
+ .gitattributes: remove misspelled no-op whitespace attribute

Ever since we added whitespace rules for this project, we misspelt
an entry, which has been corrected.

Will cook in 'next'.
source: <xmqqv7jgwgxb.fsf@gitster.g>


* kn/fix-fetch-backfill-tag-with-batched-ref-updates (2025-11-13) 2 commits
- fetch: fix non-conflicting tags not being committed
- fetch: extract out reference committing logic

"git fetch" that involves fetching tags, when a tag being fetched
needs to overwrite existing one, failed to fetch other tags, which
has been corrected.

Will merge to 'next'?
source: <20251113-fix-tags-not-fetching-v5-0-371ea7ec638d@gmail.com>


* jk/asan-bonanza (2025-11-12) 10 commits
- amend! Makefile: turn on NO_MMAP when building with ASan
- t: enable ASan's strict_string_checks option
- fsck: avoid parse_timestamp() on buffer that isn't NUL-terminated
- fsck: remove redundant date timestamp check
- fsck: avoid strcspn() in fsck_ident()
- fsck: assert newline presence in fsck_ident()
- cache-tree: avoid strtol() on non-string buffer
- Makefile: turn on NO_MMAP when building with ASan
- pack-bitmap: handle name-hash lookups in incremental bitmaps
- compat/mmap: mark unused argument in git_munmap()

Various issues detected by Asan have been corrected.

Expecting a reroll?
cf. <aRbToFLhzewwBaSv@pks.im>
source: <20251112075522.GA978866@coredump.intra.peff.net>


* jk/attr-macroexpand-wo-recursion (2025-11-11) 1 commit
- attr: avoid recursion when expanding attribute macros

The code to expand attribute macros has been rewritten to avoid
recursion to avoid running out of stack space in an uncontrolled
way.

Will merge to 'next'?
source: <20251111223647.GA4055973@coredump.intra.peff.net>


* bc/submodule-force-same-hash (2025-11-12) 1 commit
- object-file: disallow adding submodules of different hash algo

Adding a repository that uses a different hash function is a no-no,
but "git submodule add" did nt prevent it, which has been corrected.

Will merge to 'next'?
source: <20251112235434.1499699-1-sandals@crustytoothpaste.net>


* jc/ci-drop-p4-macosx (2025-11-14) 1 commit
- CI: drop Perforce tests from macOSX jobs

Drop P4 tests on macOSX platform on GitHub Actions CI.

Comments?
source: <xmqqqzu0gxq2.fsf_-_@gitster.g>


* jx/repo-struct-utf8width-fix (2025-11-13) 2 commits
- builtin/repo: fix table alignment for UTF-8 characters
- t/unit-tests: add UTF-8 width tests for CJK chars

The "git repo structure" subcommand tried to align its output but
mixed up byte count and display column width, which has been
corrected.

Comments?
source: <cover.1763098804.git.worldhello.net@gmail.com>


* kh/doc-commit-extra-references (2025-11-14) 1 commit
- doc: commit: link to git-status(1) on all format options

Doc update.

Will merge to 'next'?
source: <c4349a03724.1763129061.git.code@khaugsbakk.name>


* kn/osxkeychain-idempotent-store-fix (2025-11-13) 1 commit
- osxkeychain: avoid incorrectly skipping store operation

An earlier check added to osx keychain credential helper to avoid
storing the credential itself supplied was overeager and rejected
credential material supplied by other helper backends that it would
have wanted to store, which has been corrected.

Will merge to 'next'?
source: <pull.1999.v2.git.1763100270949.gitgitgadget@gmail.com>

--------------------------------------------------
[Cooking]

* lc/rebase-trailer (2025-11-05) 4 commits
- rebase: support --trailer
- trailer: append trailers in-process and drop the fork to `interpret-trailers`
@ -115,28 +218,17 @@ Release tarballs are available at:


* ps/ref-peeled-tags-fixes (2025-11-06) 2 commits
- object: fix performance regression when peeling tags
- Merge branch 'ps/ref-peeled-tags' into ps/ref-peeled-tags-fixes
(merged to 'next' on 2025-11-11 at 3549877a16)
+ object: fix performance regression when peeling tags
+ Merge branch 'ps/ref-peeled-tags' into ps/ref-peeled-tags-fixes
(this branch uses ps/ref-peeled-tags.)

Another fix-up to "peeled-tags" topic.

Will merge to 'next'.
Will cook in 'next'.
source: <20251106-b4-pks-peel-object-performance-regression-v1-1-a386147750b0@pks.im>


* tu/credential-wincred-makefile-update (2025-11-05) 1 commit
(merged to 'next' on 2025-11-07 at ed74befe91)
+ wincred: align Makefile with other Makefiles in contrib

Build procedure for Wincred credential helper has been updated.

Will cook in 'next'.
source: <3869ec21-e20d-cf9b-5913-6389c372a5f0@mailbox.tu-dresden.de>

--------------------------------------------------
[Cooking]

* en/ort-rename-another-fix (2025-11-03) 3 commits
- merge-ort: fix failing merges in special corner case
- merge-ort: remove debugging crud
@ -149,43 +241,22 @@ Release tarballs are available at:
source: <pull.1992.git.1762192908.gitgitgadget@gmail.com>


* dk/make-git-contacts-executable (2025-11-04) 1 commit
(merged to 'next' on 2025-11-07 at 30608eb744)
+ perl: also mark git-contacts executable

Building "git contacts" script (in contrib/) leaves the resulting
file unexecutable, which has been corrected.

Will cook in 'next'.
source: <7fbb341e8f05fcde3a1543e3bb4e5a3ec1101692.1762280097.git.ben.knoble+github@gmail.com>


* dk/meson-html-dir (2025-11-04) 1 commit
(merged to 'next' on 2025-11-07 at b30cf1f060)
+ meson: make GIT_HTML_PATH configurable

The build procedure based on meson learned to allow builders to
specify the directory to install HTML documents.

Will cook in 'next'.
source: <385992f6020703558f0ba75a1be6c4f9dae08b83.1762264709.git.ben.knoble+github@gmail.com>


* kn/maintenance-is-needed (2025-11-06) 7 commits
- maintenance: add 'is-needed' subcommand
- maintenance: add checking logic in `pack_refs_condition()`
- refs: add a `optimize_required` field to `struct ref_storage_be`
- reftable/stack: add function to check if optimization is required
- reftable/stack: return stack segments directly
- Merge branch 'kn/refs-optim-cleanup' into kn/maintenance-is-needed
- Merge branch 'ps/ref-peeled-tags' into kn/maintenance-is-needed
* kn/maintenance-is-needed (2025-11-08) 7 commits
(merged to 'next' on 2025-11-14 at ed70525e16)
+ maintenance: add 'is-needed' subcommand
+ maintenance: add checking logic in `pack_refs_condition()`
+ refs: add a `optimize_required` field to `struct ref_storage_be`
+ reftable/stack: add function to check if optimization is required
+ reftable/stack: return stack segments directly
+ Merge branch 'kn/refs-optim-cleanup' into kn/maintenance-is-needed
+ Merge branch 'ps/ref-peeled-tags' into kn/maintenance-is-needed
(this branch uses kn/refs-optim-cleanup and ps/ref-peeled-tags.)

"git maintenance" command learned "is-needed" subcommand to tell if
it is necessary to perform various maintenance tasks.

Will merge to 'next'?
source: <20251106-562-add-sub-command-to-check-if-maintenance-is-needed-v3-0-d611a2a95cf5@gmail.com>
Will cook in 'next'.
source: <20251108-562-add-sub-command-to-check-if-maintenance-is-needed-v4-0-a90f229b6023@gmail.com>


* qj/doc-http-bad-want-response (2025-11-05) 1 commit
@ -209,18 +280,19 @@ Release tarballs are available at:


* cc/fast-import-strip-if-invalid (2025-11-04) 3 commits
- fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>
- commit: refactor verify_commit_buffer()
- fast-import: refactor finalize_commit_buffer()
. fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>
. commit: refactor verify_commit_buffer()
. fast-import: refactor finalize_commit_buffer()

"git fast-import" learns "--strip-if-invalid" option to drop
invalid cryptographic signature from objects.

Comments?
Expecting a reroll. Its test does not work well with existing tests
cf. <xmqqjz00e5ns.fsf@gitster.g>
source: <20251105061918.3688870-1-christian.couder@gmail.com>


* jc/whitespace-incomplete-line (2025-11-05) 12 commits
* jc/whitespace-incomplete-line (2025-11-12) 12 commits
- attr: enable incomplete-line whitespace error for this project
- diff: highlight and error out on incomplete lines
- apply: check and fix incomplete lines
@ -229,7 +301,7 @@ Release tarballs are available at:
- diff: update the way rewrite diff handles incomplete lines
- diff: call emit_callback ecbdata everywhere
- diff: refactor output of incomplete line
- diff: fix incorrect counting of line numbers
- diff: keep track of the type of the last line seen
- diff: correct suppress_blank_empty hack
- diff: emit_line_ws_markup() if/else style fix
- whitespace: correct bit assignment comments
@ -238,18 +310,7 @@ Release tarballs are available at:
"incomplete-line".

Comments?
source: <20251105213052.1499224-1-gitster@pobox.com>


* tc/last-modified-active-paths-optimization (2025-10-23) 1 commit
(merged to 'next' on 2025-11-03 at 9ab444edfb)
+ last-modified: implement faster algorithm

"git last-modified" was optimized by narrowing the set of paths to
follow as it dug deeper in the history.

Will cook in 'next'.
source: <20251023-b4-toon-last-modified-faster-v3-1-40a4ddbbadec@iotcl.com>
source: <20251112220258.1009253-1-gitster@pobox.com>


* ps/object-source-loose (2025-11-02) 13 commits
@ -274,7 +335,8 @@ Release tarballs are available at:
source: <20251103-b4-pks-odb-loose-backend-v3-0-6a61ea977393@pks.im>


* bc/sha1-256-interop-02 (2025-10-29) 15 commits
* bc/sha1-256-interop-02 (2025-11-14) 16 commits
- SQUASH??? cargo clippy
- SQUASH??? downgrade build.rs syntax
- object-file-convert: always make sure object ID algo is valid
- rust: add a small wrapper around the hashfile code
@ -352,7 +414,7 @@ Release tarballs are available at:
source: <20251026225409.46647-1-lucasseikioshiro@gmail.com>


* en/xdiff-cleanup-2 (2025-10-29) 10 commits
* en/xdiff-cleanup-2 (2025-11-11) 10 commits
- 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
@ -361,13 +423,13 @@ Release tarballs are available at:
- 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 ssize_t for dstart/dend, make them last in xdfile_t
- xdiff: use ptrdiff_t for dstart/dend
- doc: define unambiguous type mappings across C and Rust

Code clean-up.

Comments?
source: <pull.2070.v2.git.git.1761776388.gitgitgadget@gmail.com>
source: <pull.2070.v3.git.git.1762890152.gitgitgadget@gmail.com>


* ar/run-command-hook (2025-10-17) 10 commits
@ -432,15 +494,13 @@ Release tarballs are available at:
source: <20251023-b4-pks-ref-filter-skip-parsing-objects-v4-0-2be68ce82c9a@pks.im>


* je/doc-data-model (2025-10-31) 2 commits
- SQUASH??? fix xml that does not validate
* je/doc-data-model (2025-11-12) 1 commit
- doc: add an explanation of Git's data model

Add a new manual that describes the data model.

Expecting a (hopefully small and final) reroll?
cf. <aQhcZwv0PdwNc6RW@pks.im>
source: <pull.1981.v5.git.1761856336360.gitgitgadget@gmail.com>
Will merge to 'next'?
source: <pull.1981.v7.git.1762977200244.gitgitgadget@gmail.com>


* ps/history (2025-10-27) 12 commits