To: git@vger.kernel.org
-Subject: What's cooking in git.git (Sep 2025, #03; Mon, 8)
+Subject: What's cooking in git.git (Sep 2025, #04; Wed, 10)
X-master-at: 4975ec3473b4bc61bc8a3df1ef29d0b7e7959e87
-X-next-at: 87641ccf932d9ff14ba9770a85800514f51c415d
+X-next-at: afdaf0ed07e9cf343775fe4d542e679c90adf6f0
Bcc: lwn@lwn.net, gitster@pobox.com
-What's cooking in git.git (Sep 2025, #03; Mon, 8)
+What's cooking in git.git (Sep 2025, #04; Wed, 10)
--------------------------------------------------
Here are the topics that have been cooking in my tree. Commits
https://www.kernel.org/pub/software/scm/git/
--------------------------------------------------
-[Graduated to 'master']
+[New Topics]
-* 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()
+* jt/odb-transaction (2025-09-09) 7 commits
+ - odb: add transaction interface
+ - object-file: update naming from bulk-checkin
+ - object-file: relocate ODB transaction code
+ - bulk-checkin: drop flush_odb_transaction()
+ - builtin/update-index: end ODB transaction when --verbose is specified
+ - bulk-checkin: remove ODB transaction nesting
+ - Merge branch 'jt/de-global-bulk-checkin' into jt/odb-transaction
+ (this branch uses jt/de-global-bulk-checkin.)
- 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.
- cf. <xmqqecsvqal6.fsf@gitster.g>
- source: <20250728190520.10962-1-amonakov@ispras.ru>
+ Continue the work to build on the bulk-checkin infrastructure to
+ create many objects at once in a transaction and abstract it into
+ the generic object layer.
+ Comments?
+ source: <20250909191134.555689-1-jltobler@gmail.com>
-* 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.
-
- source: <20250826233525.2635432-1-davvid@gmail.com>
+* cc/fast-import-strip-signed-commits (2025-09-10) 2 commits
+ - fast-import: add '--signed-commits=<mode>' option
+ - gpg-interface: refactor 'enum sign_mode' parsing
+ "git fast-import" learned that "--signed-commits=<how>" option that
+ corresponds to that of "git fast-export".
-* 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
+ Comments?
+ source: <20250910080839.2142651-1-christian.couder@gmail.com>
- "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.
-
- source: <pull.1955.git.1755274373717.gitgitgadget@gmail.com>
+--------------------------------------------------
+[Stalled]
+These topics have been expecting updates for quite some time. I'll
+eject any of them when they start to conflict with other topics in
+'seen' and may drop them from my tree when they are dormant for too
+long (let's say 8 weeks is way too long, for now). After that, they
+can be proposed again by rerolling them in a shape that would work
+well with other topics in 'seen' (and of course 'next' and
+"master').
-* 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
+* lc/rebase-trailer (2025-08-03) 2 commits
+ - rebase: support --trailer
+ - trailer: append trailers in-process and drop the fork to `interpret-trailers`
- "git repack --path-walk" lost objects in some corner cases, which
- has been corrected.
- cf. <CABPp-BHFxxGrqKc0m==TjQNjDGdO=H5Rf6EFsf2nfE1=TuraOQ@mail.gmail.com>
- source: <pull.1956.v2.git.1756126197.gitgitgadget@gmail.com>
+ Expecting a reroll.
+ cf. <198826af571.62b85cb31711042.2415806544948206668@linux.beauty>
+ cf. <xmqqiki7qasu.fsf@gitster.g>
+ source: <20250803150059.402017-1-me@linux.beauty>
-* 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
+* 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
- A new command "git last-modified" has been added to show the closest
- ancestor commit that touched each path.
-
- source: <20250730175510.987383-1-toon@iotcl.com>
+ Two global variables related to sparse checkout have been moved to
+ the repository settings structure.
+
+ Expecting a reroll.
+ cf. <CAE7as+bnG6KgA8X_n36pqP15bmyM6re+xEb1MOXKvZSUdJ8Arg@mail.gmail.com>
+ Ejected out of 'seen' for now.
+ source: <cover.1752882401.git.ayu.chandekar@gmail.com>
+
+
+* 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. <20250530065034.GC1321283@coredump.intra.peff.net>
+ source: <cover.1748473122.git.me@ttaylorr.com>
+
+
+* cc/promisor-remote-capability (2025-09-07) 7 commits
+ - promisor-remote: use string_list_split() in mark_remotes_as_accepted()
+ - promisor-remote: allow a client to check fields
+ - promisor-remote: use string_list_split() in filter_promisor_remote()
+ - promisor-remote: refactor how we parse advertised fields
+ - promisor-remote: use string constants for 'name' and 'url' too
+ - 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.
+
+ Will merge to 'next'?
+ source: <20250908053056.956907-1-christian.couder@gmail.com>
+
+
+* ar/submodule-gitdir-tweak (2025-09-08) 10 commits
+ - t7425: add gitdir encoding tests
+ - t7450: move nested gitdir tests to t7425
+ - submodule: remove validate_submodule_git_dir()
+ - submodule: error out if gitdir name is too long
+ - submodule: encode gitdir paths to avoid conflicts
+ - strbuf: bring back is_rfc3986_unreserved
+ - t7425: add basic mixed submodule 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.
+ source: <20250908140117.262205-1-adrian.ratiu@collabora.com>
--------------------------------------------------
-[New Topics]
+[Cooking]
* pw/3.0-default-initial-branch-to-main (2025-09-04) 4 commits
- t0613: stop setting default initial branch
source: <20250904-b4-pks-commit-graph-via-source-v1-0-d932c2481e1a@pks.im>
-* ps/rust-balloon (2025-09-05) 7 commits
+* ps/rust-balloon (2025-09-08) 8 commits
- ci: enable Rust for breaking-changes jobs
- ci: convert "pedantic" job into full build with breaking changes
- BreakingChanges: announce Rust becoming mandatory
- rust: implement a test balloon via the "varint" subsystem
- help: report on whether or not Rust is enabled
- Makefile: introduce infrastructure to build internal Rust library
+ - Makefile: reorder sources after includes
- meson: add infrastructure to build internal Rust library
Dip our toes a bit to (optionally) use Rust implemented helper
called from our C code.
- source: <20250905-b4-pks-rust-breaking-change-v2-0-6939cbf4a0b8@pks.im>
+ source: <20250908-b4-pks-rust-breaking-change-v3-0-1cd7189fed3b@pks.im>
* kh/doc-fast-import-markup-fix (2025-09-08) 1 commit
Expecting a reroll.
source: <aL21kDwK-zGZyJ9q@ArchLinux>
---------------------------------------------------
-[Stalled]
-
-These topics have been expecting updates for quite some time. I'll
-eject any of them when they start to conflict with other topics in
-'seen' and may drop them from my tree when they are dormant for too
-long (let's say 8 weeks is way too long, for now). After that, they
-can be proposed again by rerolling them in a shape that would work
-well with other topics in 'seen' (and of course 'next' and
-"master').
-
-* 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. <198826af571.62b85cb31711042.2415806544948206668@linux.beauty>
- cf. <xmqqiki7qasu.fsf@gitster.g>
- source: <20250803150059.402017-1-me@linux.beauty>
-
-
-* 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
-
- Two global variables related to sparse checkout have been moved to
- the repository settings structure.
-
- Expecting a reroll.
- cf. <CAE7as+bnG6KgA8X_n36pqP15bmyM6re+xEb1MOXKvZSUdJ8Arg@mail.gmail.com>
- Ejected out of 'seen' for now.
- source: <cover.1752882401.git.ayu.chandekar@gmail.com>
-
-
-* 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. <20250530065034.GC1321283@coredump.intra.peff.net>
- source: <cover.1748473122.git.me@ttaylorr.com>
-
-
-* cc/promisor-remote-capability (2025-09-07) 7 commits
- - promisor-remote: use string_list_split() in mark_remotes_as_accepted()
- - promisor-remote: allow a client to check fields
- - promisor-remote: use string_list_split() in filter_promisor_remote()
- - promisor-remote: refactor how we parse advertised fields
- - promisor-remote: use string constants for 'name' and 'url' too
- - 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.
-
- Will merge to 'next'?
- source: <20250908053056.956907-1-christian.couder@gmail.com>
-
-
-* ar/submodule-gitdir-tweak (2025-09-02) 11 commits
- . fixup! t: submodules: add basic mixed gitdir path tests
- . 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.
-
- Need to pick up a reroll.
- cf.<20250908140117.262205-1-adrian.ratiu@collabora.com>
- Breaks builds.
- cf. https://github.com/git/git/actions/runs/17447961977/job/49546783809
- source: <20250816213642.3517822-1-adrian.ratiu@collabora.com>
-
---------------------------------------------------
-[Cooking]
* ds/midx-write-fixes (2025-09-05) 6 commits
(merged to 'next' on 2025-09-08 at 74b87ce5ba)
source: <20250902-b4-pks-gitlab-ci-windows-defender-v1-1-fcb1f19321aa@pks.im>
-* ps/packfile-store (2025-09-02) 16 commits
+* ps/packfile-store (2025-09-09) 16 commits
- packfile: refactor `get_packed_git_mru()` to work on packfile store
- packfile: refactor `get_all_packs()` to work on packfile store
- packfile: remove `get_packed_git()`
object database(s).
Comments?
- source: <20250902-b4-pks-packfiles-store-v3-0-6925278efeda@pks.im>
+ source: <20250909-b4-pks-packfiles-store-v4-0-151c4ba3619f@pks.im>
* kh/doc-markup-fixes (2025-09-02) 2 commits
backend is used for ref storage, by failing only the ones that are
involved in the conflict while allowing others.
- Comments?
+ Expecting a reroll.
+ cf. <aL_SwghVaAXL-yeX@pks.im>
source: <20250908-587-git-fetch-1-fails-fetches-on-case-insensitive-repositories-v2-0-b2eb2459befb@gmail.com>
* mm/worktree-doc-typofix (2025-09-03) 1 commit
- - docs: fix typo in worktree.adoc 'extension'
+ (merged to 'next' on 2025-09-09 at afdaf0ed07)
+ + docs: fix typo in worktree.adoc 'extension'
Docfix.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <pull.1967.git.1756911040439.gitgitgadget@gmail.com>
source: <20250827080702.GA3572995@coredump.intra.peff.net>
-* kh/you-still-use-whatchanged-fix (2025-09-08) 8 commits
+* kh/you-still-use-whatchanged-fix (2025-09-09) 7 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
- t0014: test shadowing of aliases for a sample of builtins
- git: allow alias-shadowing deprecated builtins
- - git: make the two loops look more symmetric
- git: add `deprecated` category to --list-cmds
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: <cover.1757345711.git.code@khaugsbakk.name>
+ source: <cover.1757446619.git.code@khaugsbakk.name>
* pc/range-diff-memory-limit (2025-08-29) 1 commit
+ bulk-checkin: require transaction for index_blob_bulk_checkin()
+ bulk-checkin: remove global transaction state
+ bulk-checkin: introduce object database transaction structure
+ (this branch is used by jt/odb-transaction.)
The bulk-checkin code used to depend on a file-scope static
singleton variable, which has been updated to pass an instance
prune otherwise unused working-tree files that are outside the
areas of interest.
- Rebased not to depend on ac/deglobal-sparse-variables
- Will merge to 'next'?
+ Waiting for review responses?
+ cf. <c3c0fbef-f395-4972-8352-dd89af6799d5@gmail.com>
+ (Rebased not to depend on ac/deglobal-sparse-variables)
source: <pull.1941.v2.git.1752716054.gitgitgadget@gmail.com>