Subject: RE: What's cooking in git.git (Sep 2025, #01; Tue, 2)

From: <[email-masked]>
Date: Tue, 2 Sep 2025 13:35:01 -0400

On September 2, 2025 12:58 PM, Junio C Hamano wrote:
>Here are the topics that have been cooking in my tree.  Commits
>prefixed with '+' are in 'next' (being in 'next' is a sign that a
>topic is stable enough to be used and are candidate to be in a
>future release).  Commits prefixed with '-' are only in 'seen', and
>aren't considered "accepted" at all and may be annotated with an URL
>to a message that raises issues but they are no means exhaustive.  A
>topic without enough support may be discarded after a long period of
>no activity (of course they can be resubmit when new interests
>arise).
>
>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.
>
>With maint, master, next, seen, todo:
>
>	git://git.kernel.org/pub/scm/git/git.git/
>	git://repo.or.cz/alt-git.git/
>	https://kernel.googlesource.com/pub/scm/git/git/
>	https://github.com/git/git/
>	https://gitlab.com/git-scm/git/
>
>With all the integration branches and topics broken out:
>
>	https://github.com/gitster/git/
>
>Even though the preformatted documentation in HTML and man format
>are not sources, they are published in these repositories for
>convenience (replace "htmldocs" with "manpages" for the manual
>pages):
>
>	git://git.kernel.org/pub/scm/git/git-htmldocs.git/
>	https://github.com/gitster/git-htmldocs.git/
>
>Release tarballs are available at:
>
>	https://www.kernel.org/pub/software/scm/git/
>
>--------------------------------------------------
>[Cooking]
>
>* ag/doc-sendmail-gmail-example-update (2025-08-26) 1 commit
> - docs: update sendmail docs to use more secure SMTP server for Gmail
>
> Doc update.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* da/cargo-serialize (2025-08-26) 1 commit
>  (merged to 'next' on 2025-08-29 at 5a193b1525)
> + Makefile: build libgit-rs and libgit-sys serially
>
> Makefile tried to run multiple "cargo build" which would not work
> very well; serialize their execution to work it around.
>
> Will merge to 'master'.
> source: <[email-masked]>
>
>
>* en/rust-xdiff (2025-08-22) 6 commits
> - ivec: create a vector type that is interoperable between C and Rust
> - github workflows: upload Cargo.lock
> - win+Meson: do allow linking with the Rust-built xdiff
> - github workflows: install rust
> - xdiff: introduce rust
> - doc: add a policy for using Rust
>
> Rust!
>
> Comments?
> source: <[email-masked]>
>
>
>* je/doc-checkout (2025-08-29) 5 commits
> - doc: git-checkout: clarify restoring files section
> - doc: git-checkout: deduplicate --detach explanation
> - doc: git-checkout: don't use "reset"
> - doc: git-checkout: clarify `git checkout <branch>`
> - doc: git-checkout: clarify intro
>
> Doc updates.
> source: <[email-masked]>
>
>
>* kn/clang-format-bitfields (2025-08-26) 1 commit
> - Documentation: note styling for bit fields
>
> CodingGuidelines now spells out how bitfields are to be written.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* jk/curl-global-trace-components (2025-08-27) 1 commit
> - curl: add support for curl_global_trace() components
>
> Adjust to the way newer versions of cURL selectivel enables tracing
> options, so that our tests can continue to work.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* kh/you-still-use-whatchanged-fix (2025-08-29) 4 commits
> - BreakingChanges: remove claim about whatchanged reports
> - whatchanged: remove not-even-shorter clause
> - whatchanged: tell users the git-log(1) equivalent
> - you-still-use-that??: help the user help themselves
>
> Update "do you still use it?" message given by a command that is
> deeply deprecated and allow us to suggest alternatives.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* ds/ls-files-lazy-unsparse (2025-08-15) 1 commit
>  (merged to 'next' on 2025-08-29 at a48fee2dde)
> + ls-files: conditionally leave index sparse
>
> "git ls-files <pathspec>..." should not necessarily have to expand
> the index fully if a sparsified directory is excluded by the
> pathspec; the code is taught to expand the index on demand to avoid
> this.
>
> Will merge to 'master'.
> source: <[email-masked]>
>
>
>* pc/range-diff-memory-limit (2025-08-29) 1 commit
> - range-diff: add configurable memory limit for cost matrix
>
> "git range-diff" learned a way to limit the memory consumed by
> O(N*N) cost matrix.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* ne/alloc-free-and-null (2025-08-29) 1 commit
> - alloc: fix dangling pointer in alloc_state cleanup
>
> The clear_alloc_state() API function was not fully clearing the
> structure for reuse, but since nobody reuses it, replace it with a
> variant that frees the structure as well, making the callers simpler.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* ds/doc-ggg-pr-fork-clarify (2025-08-23) 1 commit
>  (merged to 'next' on 2025-08-25 at 71aea64ee4)
> + doc: clarify which remotes can be used with GitGitGadget
>
> Update the instruction to use of GGG in the MyFirstContribution
> document to say that a GitHub PR could be made against `git/git`
> instead of `gitgitgadget/git`.
>
> Will merge to 'master'.
> cf. <[email-masked]>
> source: <[email-masked]>
>
>
>* js/doc-sending-patch-via-thunderbird (2025-08-22) 1 commit
>  (merged to 'next' on 2025-08-25 at 1e63ebff8c)
> + doc/format-patch: adjust Thunderbird MUA hint to new add-on
>
> Doc update.
>
> Will merge to 'master'.
> source: <[email-masked]>
>
>
>* kh/doc-config-typofix (2025-08-24) 1 commit
>  (merged to 'next' on 2025-08-25 at f82e0a4c9b)
> + doc: config: replace backtick with apostrophe for possessive
>
> Documentation typofix.
>
> Will merge to 'master'.
> cf. <[email-masked]>
> source:
><3ec6a00e3046166c7adb593f38c4099921d8ada3.1756064760.git.code@khaug
>sbakk.name>
>
>
>* rs/describe-with-lazy-queue-and-khash (2025-08-24) 1 commit
> - describe: use khash in finish_depth_computation()
>
> Instead of scanning for the remaining items to see if there are
> still commits to be explored in the queue, use khash to remember
> which items are still on the queue (an unacceptable alternative is
> to reserve one object flag bits).
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* lo/repo-info-step-2 (2025-08-26) 3 commits
> - repo: add the field objects.format
> - repo: add the flag -z as an alias for --format=nul
> - Merge branch 'lo/repo-info' into lo/repo-info-step-2
>
> "repo info" learns a short-hand option "-z" that is the same as
> "--format=nul", and learns to report the objects format used in the
> repository.
>
> Waiting for review responses.
> cf. <[email-masked]>
> source: <[email-masked]>
>
>
>* jc/doc-includeif-hasconfig-remote-url-fix (2025-08-21) 1 commit
> - config: document includeIf conditions consistently
>
> Doc mark-up fix.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* jk/add-i-color (2025-08-21) 4 commits
> - contrib/diff-highlight: mention interactive.diffFilter
> - add-interactive: manually fall back color config to color.ui
> - add-interactive: respect color.diff for diff coloring
> - stash: pass --no-color to diff-tree child processes
>
> Some among "git add -p" and friends ignored color.diff and/or
> color.ui configuration variables, which is an old regression, which
> has been corrected.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* jt/de-global-bulk-checkin (2025-08-22) 4 commits
> - bulk-checkin: use repository variable from transaction
> - bulk-checkin: require transaction for index_blob_bulk_checkin()
> - bulk-checkin: remove global transaction state
> - bulk-checkin: introduce object database transaction structure
>
> The bulk-checkin code used to depend on a file-scope static
> singleton variable, which has been updated to pass an instance
> throughout the callchain.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* kh/doc-interpret-trailers-markup-fix (2025-08-22) 1 commit
>  (merged to 'next' on 2025-08-25 at 9bee54a64d)
> + doc: interpret-trailers: close all pairs of single quotes
>
> Fix missing single-quote pairs in a documentation page.
>
> Will merge to 'master'.
> source:
><4eac944102a846695a9f61ead39a5a86361a0532.1755875970.git.code@khaug
>sbakk.name>
>
>
>* ar/submodule-gitdir-tweak (2025-08-18) 10 commits
> . fixup! t: add gitdir encoding tests
> . t: add gitdir encoding tests
> . t: move nested gitdir tests to proper location
> . submodule: remove validate_submodule_git_dir()
> . submodule: encode gitdir paths to avoid conflicts
> . strbuf: bring back is_rfc3986_unreserved
> . t: submodules: add basic mixed gitdir path tests
> . submodule: add gitdir path config override
> . submodule: create new gitdirs under submodules path
> . submodule--helper: use submodule_name_to_gitdir in add_submodule
>
> Avoid local submodule repository directory paths overlapping with
> each other by encoding submodule names before using them as path
> components.
>
> Expecting a reroll.
> cf. <[email-masked]>
> source: <[email-masked]>
>
>
>* je/doc-add (2025-08-29) 3 commits
> - doc: rephrase the purpose of the staging area
>  (merged to 'next' on 2025-08-25 at 0c84501ed2)
> + doc: git-add: simplify discussion of ignored files
> + doc: git-add: clarify intro & add an example
>
> Documentation for "git add" has been updated.
>
> Will merge to 'next' and then to 'master'.
> source: <[email-masked]>
> source: <[email-masked]>
>
>
>* ds/path-walk-repack-fix (2025-08-25) 2 commits
>  (merged to 'next' on 2025-08-29 at 13028ffb8e)
> + path-walk: create initializer for path lists
> + path-walk: fix setup of pending objects
>
> "git repack --path-walk" lost objects in some corner cases, which
> has been corrected.
>
> Will merge to 'master'.
> cf. <CABPp-
>BHFxxGrqKc0m==TjQNjDGdO=H5Rf6EFsf2nfE1=[email-masked]>
> source: <[email-masked]>
>
>
>* sg/line-log-boundary-fixes (2025-08-18) 2 commits
> - line-log: show all line ranges touched by the same diff range
> - line-log: fix assertion error
>
> Fix for a corner case bug in "git log -L...".
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* ja/asciidoc-doctor-verbatim-fixes (2025-08-20) 1 commit
>  (merged to 'next' on 2025-08-22 at 61fb953314)
> + doc: fix asciidoc format compatibility in pretty-formats.adoc
>
> Doc mark-up fix.
>
> Will merge to 'master'.
> source: <[email-masked]>
>
>
>* jc/longer-disambiguation-fix (2025-08-14) 1 commit
> - abbrev: allow extending beyond 32 chars to disambiguate
>
> "git rev-parse --short" and friends failed to disambiguate two
> objects with object names that share common prefix longer than 32
> characters.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* tc/t0450-harden (2025-08-12) 3 commits
> - fixup! t0450: add allowlist for builtins with missing .adoc
> - t0450: add allowlist for builtins with missing .adoc
> - t0450: fix test for out-of-tree builds
>
> Test updates.
>
> Expecting a reroll.
> cf. <[email-masked]>
> source: <[email-masked]>
>
>
>* lc/rebase-trailer (2025-08-03) 2 commits
> - rebase: support --trailer
> - trailer: append trailers in-process and drop the fork to
`interpret-trailers`
>
> Expecting a reroll.
> cf. <[email-masked]>
> cf. <[email-masked]>
> source: <[email-masked]>
>
>
>* ps/object-store-midx-dedup-info (2025-08-11) 11 commits
> - midx: compute paths via their source
> - midx: stop duplicating info redundant with its owning source
> - midx: write multi-pack indices via their source
> - midx: load multi-pack indices via their source
> - midx: drop redundant `struct repository` parameter
> - odb: simplify calling `link_alt_odb_entry()`
> - odb: return newly created in-memory sources
> - odb: consistently use "dir" to refer to alternate's directory
> - odb: allow `odb_find_source()` to fail
> - odb: store locality in object database sources
> - Merge branch 'ps/object-store-midx' into ps/object-store-midx-dedup-info
>
> Further code clean-up for multi-pack-index code paths.
>
> Will merge to 'next'?
> cf. <[email-masked]>
> cf. <[email-masked]>
> source: <20250811-b4-pks-midx-deduplicate-source-info-v3-0-
>[email-masked]>
>
>
>* am/xdiff-hash-tweak (2025-07-28) 2 commits
>  (merged to 'next' on 2025-08-29 at 43590f0b38)
> + xdiff: optimize xdl_hash_record_verbatim
> + xdiff: refactor xdl_hash_record()
>
> Inspired by Ezekiel's recent effort to showcase Rust interface, the
> hash function implementation used to hash lines have been updated
> to the one used for ELF symbol lookup by Glibc.
>
> Will merge to 'master'.
> cf. <[email-masked]>
> source: <[email-masked]>
>
>
>* ag/send-email-imap-sent (2025-08-11) 2 commits
> - send-email: enable copying emails to an IMAP folder without actually
sending
>them
> - send-email: add ability to send a copy of sent emails to an IMAP folder
>
> "git send-email" learned to drive "git imap-send" to store already
> sent e-mails in an IMAP folder.
>
> Will merge to 'next'?
> source:
><[email-masked]
>1.PROD.OUTLOOK.COM>
>
>
>* ds/sparse-checkout-clean (2025-07-16) 9 commits
> - sparse-checkout: make 'clean' clear more files
> - t: expand tests around sparse merges and clean
> - sparse-index: point users to new 'clean' action
> - sparse-checkout: add --verbose option to 'clean'
> - dir: add generic "walk all files" helper
> - sparse-checkout: match some 'clean' behavior
> - sparse-checkout: add basics of 'clean' command
> - sparse-checkout: remove use of the_repository
> - Merge branch 'ac/deglobal-sparse-variables' into
ds/sparse-checkout-clean
> (this branch uses ac/deglobal-sparse-variables.)
>
> "git sparse-checkout" subcommand learned a new "clean" action to
> prune otherwise unused working-tree files that are outside the
> areas of interest.
>
> Needs to wait for the base topic to solidify.
> Waiting for review responses.
> cf. <[email-masked]>
> source: <[email-masked]>
>
>
>* pw/3.0-commentchar-auto-deprecation (2025-08-26) 4 commits
> - commit: print advice when core.commentString=auto
> - config: warn on core.commentString=auto
> - breaking-changes: deprecate support for core.commentString=auto
> - Merge branch 'ps/config-wo-the-repository' into pw/3.0-commentchar-auto-
>deprecation
>
> Proposes to deprecate "core.commentChar=auto" that attempts to
> dynamically pick a suitable comment character, as it is too much
> trouble to support for little benefit.
>
> Will merge to 'next'?
> source: <[email-masked]>
>
>
>* tc/last-modified (2025-08-05) 3 commits
>  (merged to 'next' on 2025-08-29 at 3f3e111189)
> + last-modified: use Bloom filters when available
> + t/perf: add last-modified perf script
> + last-modified: new subcommand to show when files were last modified
>
> A new command "git last-modified" is proposed to show the closest
> ancestor commit that touched each path.
>
> Will merge to 'master'.
> source: <[email-masked]>
>
>
>* ac/deglobal-sparse-variables (2025-07-18) 3 commits
> - environment: remove the global variable
>'sparse_expect_files_outside_of_patterns'
> - environment: move access to "core.sparsecheckoutcone" into repo_settings
> - environment: move access to "core.sparsecheckout" into repo_settings
> (this branch is used by ds/sparse-checkout-clean.)
>
> Two global variables related to sparse checkout have been moved to
> the repository settings structure.
>
> Expecting a reroll.
> cf.
><[email-masked]
>m>
> source: <[email-masked]>
>
>
>* tb/prepare-midx-pack-cleanup (2025-05-28) 5 commits
> - midx: return a `packed_git` pointer from `prepare_midx_pack()`
> - midx-write.c: extract inner loop from fill_packs_from_midx()
> - midx-write.c: guard against incremental MIDXs in want_included_pack()
> - midx: access pack names through `nth_midxed_pack_name()`
> - Merge branch 'ps/midx-negative-packfile-cache' into
tb/prepare-midx-pack-
>cleanup
>
> Improvement on Multi-pack-index API.
>
> Expecting a reroll.
> cf. <[email-masked]>
> source: <[email-masked]>
>
>
>* cc/promisor-remote-capability (2025-07-31) 5 commits
> - promisor-remote: use string constants for 'name' and 'url' too
> - promisor-remote: allow a client to check fields
> - promisor-remote: refactor how we parse advertised fields
> - promisor-remote: allow a server to advertise more fields
> - promisor-remote: refactor to get rid of 'struct strvec'
>
> The "promisor-remote" capability mechanism has been updated to
> allow the "partialCloneFilter" settings and the "token" value to be
> communicated from the server side.
>
> Expecting a reroll.
> cf. <[email-masked]>
> source: <[email-masked]>

One comment. It would be helpful for some of us to have a release plan for
when git will
no longer be fully buildable because of Rust. Dropping this in at 2.52.0 is
short notice in
the mailing list.