To: git@vger.kernel.org
-Subject: What's cooking in git.git (Jul 2026, #10)
+Subject: What's cooking in git.git (Jul 2026, #11)
X-master-at: 9a0c4701dcd5725c4184599322b52933ff5005ca
-X-next-at: 3f0d50209424de9b2a3b57975503a767e485f62a
+X-next-at: e436a42272e5f75bb9ac8df1355c4593652372fe
Bcc: lwn@lwn.net, gitster@pobox.com
-What's cooking in git.git (Jul 2026, #10)
+What's cooking in git.git (Jul 2026, #11)
-----------------------------------------
Here are the topics that have been cooking in my tree. Commits
https://www.kernel.org/pub/software/scm/git/
--------------------------------------------------
-[Graduated to 'master']
-
-* cc/doc-fast-export-synopsis-fix (2026-07-13) 1 commit
- (merged to 'next' on 2026-07-16 at b1dbc0cb3f)
- + fast-export: standardize usage string and SYNOPSIS
-
- The usage string and SYNOPSIS for 'git fast-export' have been
- standardized to make them consistent with each other and with other
- commands.
-
- Graduated to 'master'.
- cf. <alX5Nl8uX4ctVqo3@pks.im>
- cf. <xmqq4ii228dd.fsf@gitster.g>
- source: <20260713124153.245268-1-christian.couder@gmail.com>
-
-
-* cl/b4-cover-change-id (2026-07-10) 1 commit
- (merged to 'next' on 2026-07-13 at 15c7ad9a3f)
- + b4: include change-id in cover template
-
- The in-tree 'b4' cover letter template has been updated to include the
- 'change-id' trailer, ensuring that sent tags generated by 'b4' contain
- the required tracking information for subsequent runs.
-
- Graduated to 'master'.
- source: <20260710-add-change-id-to-b4-template-v1-1-1bd37a25064e@black-desk.cn>
-
-
-* cl/conditional-config-on-worktree-path (2026-07-09) 2 commits
- (merged to 'next' on 2026-07-15 at 86ca33c437)
- + config: add "worktree" and "worktree/i" includeIf conditions
- + config: refactor include_by_gitdir() into include_by_path()
-
- The '[includeIf "condition"]' conditional inclusion facility for
- configuration files has been taught to use the location of the
- worktree in its condition.
-
- Graduated to 'master'.
- cf. <alTJCTKR9jOWfgbk@pks.im>
- source: <20260710-includeif-worktree-v8-0-04686d8a616c@black-desk.cn>
-
+[New Topics]
-* dm/submodule-update-i-shorthand (2026-07-07) 1 commit
- (merged to 'next' on 2026-07-15 at 55ef0fb748)
- + submodule--helper: accept '-i' shorthand for update --init
+* af/clone-revision-v0-segfault-fix (2026-07-24) 1 commit
+ - builtin/clone: fix segfault when using --revision with protocol v0
- The '-i' shorthand for the '--init' option, which was accepted by the
- 'git submodule update' command until it was broken in a modernization
- of the option-parsing code, has been restored.
+ 'git clone --revision' talking to a server that does not support
+ protocol v2 (falling back to protocol v0) segfaulted, which has
+ been corrected.
- Graduated to 'master'.
- cf. <xmqq8q7ltf51.fsf@gitster.g>
- source: <20260708-submodule-init-v1-1-719456077262@atmark-techno.com>
+ Will merge to 'next'?
+ cf. <xmqqldb08jcd.fsf@gitster.g>
+ source: <20260724124138.666877-1-adrian.friedli@mt.com>
-* jt/receive-pack-use-odb-transactions (2026-07-10) 11 commits
- (merged to 'next' on 2026-07-15 at aba57e3365)
- + builtin/receive-pack: stage incoming objects via ODB transactions
- + builtin/receive-pack: drop redundant tmpdir env
- + odb/transaction: introduce ODB transaction flags
- + odb/transaction: add transaction env interface
- + odb/transaction: propagate commit errors
- + odb/transaction: propagate begin errors
- + object-file: propagate files transaction errors
- + object-file: drop check for inflight transactions
- + object-file: embed transaction flush logic in commit function
- + object-file: rename files transaction fsync function
- + object-file: rename files transaction prepare function
- (this branch is used by ps/odb-move-loose-object-writing.)
+* lo/mv-missing-dest-dir-check (2026-07-23) 2 commits
+ - mv: check for missing destination directory before renaming
+ - mv: name both source and destination when rename fails
- 'git receive-pack' has been refactored to use ODB transaction
- interfaces instead of directly managing 'tmp_objdir' for staging
- incoming objects, bringing it closer to being ODB backend agnostic.
+ 'git mv' has been updated to check for a missing destination
+ leading directory during the checking phase, allowing 'git mv -n'
+ to report the failure. The error message when the rename(2)
+ syscall fails has also been improved to name both the source and
+ the destination.
- Graduated to 'master'.
- cf. <alR1P-RGZNmjyiUE@pks.im>
- source: <20260710163722.2962278-1-jltobler@gmail.com>
+ Waiting for response.
+ cf. <xmqq8q71k3fy.fsf@gitster.g>
+ cf. <xmqqh5lpk3r3.fsf@gitster.g>
+ source: <pull.2356.v2.git.git.1784812390.gitgitgadget@gmail.com>
-* kk/no-walk-pathspec-fix (2026-07-16) 2 commits
- (merged to 'next' on 2026-07-16 at 4dd6fb0e7e)
- + revision: fix --no-walk path filtering regression
- + Merge branch 'kk/streaming-walk-pqueue' into kk/no-walk-pathspec-fix
+* ps/odb-make-creation-pluggable (2026-07-23) 5 commits
+ - odb: make creation of on-disk structures pluggable
+ - odb/source: introduce function to map source type to name
+ - setup: defer object database creation
+ - setup: detangle loading of loose object maps
+ - loose: load loose object map for the correct source
- The 'git rev-list --no-walk' command has been corrected to restore
- pathspec filtering, which was lost when the streaming walk was
- refactored.
+ The creation of the on-disk data structures for the object database
+ has been made pluggable, allowing future backends to customize their
+ setup. As part of this, the initialization of the object database
+ has been deferred, and the loading of the loose-object map has been
+ detangled from repository initialization.
- Graduated to 'master'.
- source: <pull.2181.git.1784198879711.gitgitgadget@gmail.com>
+ Needs review.
+ cf. <xmqq5x248fk9.fsf@gitster.g>
+ cf. <xmqqh5lo6xi2.fsf@gitster.g>
+ cf. <xmqq5x246x35.fsf@gitster.g>
+ source: <20260724-pks-odb-create-on-disk-v1-0-3b3d265d979b@pks.im>
+--------------------------------------------------
+[Stalled]
-* ml/t9811-replace-test-f (2026-07-11) 2 commits
- (merged to 'next' on 2026-07-15 at ffb7fcad15)
- + t9811: replace 'test -f' and '! test -f' with 'test_path_*'
- + t9811: break long && chains into multiple lines
+* tb/repack-geometric-cruft (2026-06-28) 11 commits
+ - SQUASH??? bare grep !???
+ - repack: support combining '--geometric' with '--cruft'
+ - pack-objects: support '--refs-snapshot' with 'follow-reachable'
+ - pack-objects: introduce '--stdin-packs=follow-reachable'
+ - pack-objects: extract `stdin_packs_add_all_pack_entries()`
+ - repack-geometry: drop unused redundant-pack removal
+ - repack: delete geometric packs via existing_packs
+ - repack: teach MIDX retention about geometric rollups
+ - repack: mark geometric progression of packs as retained
+ - repack: extract `locate_existing_pack()` helper
+ - repack: unconditionally exclude non-kept packs
- The test script 't/t9811-git-p4-label-import.sh' has been
- modernized to use 'test_path_is_file' and 'test_path_is_missing'
- instead of raw 'test -f' and '! test -f' calls.
+ 'git repack' has been taught to accept '--geometric' and '--cruft'
+ together. When both are given, non-cruft packs are rolled up by the
+ geometric repack as usual, while a separate cruft pack is written to
+ collect unreachable objects.
- Graduated to 'master'.
- cf. <alTHrUEh4_O5ROeu@pks.im>
- source: <20260711160447.99708-1-marcelomlage@usp.br>
+ Waiting for response for too long, stalled.
+ cf. <xmqqpl1d56dd.fsf@gitster.g>
+ cf. <xmqqwlvl56vh.fsf@gitster.g>
+ source: <cover.1782500507.git.me@ttaylorr.com>
-* ps/odb-for-each-object-filter (2026-07-14) 10 commits
- (merged to 'next' on 2026-07-16 at 8f30e80d33)
- + builtin/cat-file: filter objects via object database
- + odb: introduce object filters to `odb_for_each_object()`
- + pack-bitmap: introduce function to open bitmap for a single source
- + pack-bitmap: drop `_1` suffix from functions that open bitmaps
- + pack-bitmap: iterate object sources when opening bitmaps
- + pack-bitmap: allow aborting iteration of bitmapped objects
- + pack-objects: drop unused return value from add_object_entry()
- + pack-bitmap: mark object filter as `const`
- + odb/source-packed: improve lookup when enumerating objects
- + Merge branch 'ps/odb-drop-whence' into ps/odb-for-each-object-filter
+* hn/checkout-track-fetch (2026-06-24) 2 commits
+ - checkout: extend --track with a "fetch" mode to refresh start-point
+ - branch: expose helpers for finding the remote owning a tracking ref
- The object database enumeration interface odb_for_each_object() has
- been taught to accept object filters, allowing the underlying backends
- to optimize the traversal by using reachability bitmaps when
- available. 'git cat-file --batch-all-objects' has been updated to use
- this generic interface, simplifying its code and avoiding direct
- access to ODB backend internals.
+ The 'git checkout --track=...' command has been taught to optionally
+ fetch the branch from the remote that the new branch will work with.
- Graduated to 'master'.
- cf. <874ii0h2uf.fsf@emacs.iotcl.com>
- source: <20260715-pks-odb-for-each-object-filter-v4-0-616d7adf7fb7@pks.im>
+ Waiting for response for too long, stalled.
+ cf. <xmqq5x37h6fj.fsf@gitster.g>
+ cf. <CAL71e4MiijEiM26TKJcOYT7L4pfQeMM_F2oT3U3igP-wOZm2Ag@mail.gmail.com>
+ source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
-* ps/odb-stream-double-close-fix (2026-07-10) 1 commit
- (merged to 'next' on 2026-07-13 at dd2c5795b7)
- + object-file: fix closing object stream twice
+* za/completion-hide-dotfiles (2026-06-20) 2 commits
+ - completion: hide dotfiles by default for path completion
+ - completion: hide dotfiles for selected path completion
- The stream-based object signature verification path has been
- corrected to avoid double-closing the stream on read errors.
+ Path completion for commands like 'git rm' and 'git mv' has been
+ updated to hide dotfiles by default unless the user explicitly starts
+ the path with a dot, matching standard shell-completion behavior.
- Graduated to 'master'.
- source: <20260710-pks-odb-stream-double-close-v1-1-d5fa233a37c7@pks.im>
+ Waiting for response, stalled.
+ cf. <xmqq1pe0g08t.fsf@gitster.g>
+ cf. <xmqqik71t3nr.fsf@gitster.g>
+ source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
-* rs/strbuf-avoid-redundant-reset (2026-07-14) 1 commit
- (merged to 'next' on 2026-07-16 at f258ce38ba)
- + strbuf: avoid redundant reset in strbuf_getwholeline()
+* kh/doc-trailers (2026-06-10) 10 commits
+ - doc: interpret-trailers: document comment line treatment
+ - doc: interpret-trailers: commit to “trailer block” term
+ - doc: interpret-trailers: join new-trailers again
+ - doc: interpret-trailers: add key format example
+ - doc: interpret-trailers: explain key format
+ - doc: interpret-trailers: explain the format after the intro
+ - doc: interpret-trailers: not just for commit messages
+ - doc: interpret-trailers: use “metadata” in Name as well
+ - doc: interpret-trailers: replace “lines” with “metadata”
+ - doc: interpret-trailers: stop fixating on RFC 822
- A redundant strbuf_reset() call in the 'HAVE_GETDELIM' path of
- strbuf_getwholeline() has been removed, as getdelim() overwrites the
- buffer and the length is updated afterward.
+ Documentation for 'git interpret-trailers' has been updated to explain
+ the format of trailer keys (alphanumeric characters and hyphens),
+ replace outdated terminology, define key terms upfront, and document
+ how comment lines in the input are treated.
- Graduated to 'master'.
- cf. <xmqq8q7dv82b.fsf@gitster.g>
- cf. <20260714214941.GB4095533@coredump.intra.peff.net>
- source: <d4ffe7fb-f782-4f06-9e3b-f72729d1e225@web.de>
+ Expecting a reroll for too long, stalled.
+ cf. <xmqq1pedthkv.fsf@gitster.g>
+ source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
-* sk/t1100-modernize (2026-07-14) 2 commits
- (merged to 'next' on 2026-07-16 at 621ca4ca5f)
- + t1100: move creation of expected output into setup test
- + t1100: modernize test style
+* 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
+ - doc: link to config for git-replay(1)
- The test script 't/t1100-commit-tree-options.sh' has been modernized
- by converting test cases to the modern style (using single quotes and
- tab indentation) and moving the creation of the expected file inside
- the setup test so it runs under the protection of the test harness.
+ Documentation for 'git replay' has been updated to refer to its
+ configuration variables.
- Graduated to 'master'.
- cf. <xmqq4ii1v7x0.fsf@gitster.g>
- source: <20260714122033.61947-1-diy2903@gmail.com>
+ Waiting for response for too long, stalled.
+ cf. <87cxwxofgv.fsf@emacs.iotcl.com>
+ source: <V3_CV_doc_replay_config.780@msgid.xyz>
+--------------------------------------------------
+[Cooking]
-* sk/t7614-do-not-hide-git-exit-status (2026-07-15) 1 commit
- (merged to 'next' on 2026-07-16 at 0d143986e7)
- + t7614: avoid hiding git's exit code in a pipe
+* jt/config-lock-timeout (2026-05-17) 1 commit
+ (merged to 'next' on 2026-07-24 at 3cb8da6b6a)
+ + config: retry acquiring config.lock, configurable via core.configLockTimeout
- The test script 't/t7614-merge-signoff.sh' has been updated to avoid
- suppressing the exit code of 'git' commands in a pipe.
+ Configuration file locking has been updated to retry for a short
+ period, avoiding failures when multiple processes attempt to update
+ the configuration simultaneously.
- Graduated to 'master'.
- cf. <xmqq1pd4m4ea.fsf@gitster.g>
- source: <20260715113344.3490-1-diy2903@gmail.com>
+ Will merge to 'master'.
+ cf. <agrIrGwSMFlKTx9x@pks.im>
+ cf. <xmqqzf1xbl4i.fsf@gitster.g>
+ source: <20260517132111.1014901-1-joerg@thalheim.io>
---------------------------------------------------
-[New Topics]
* hs/rebase-continue-edit (2026-07-21) 1 commit
- rebase: add --[no-]edit to --continue
forcing it with '--edit'. A new configuration variable
'rebase.noEdit' can be used to set the default behavior.
- Needs review.
+ Waiting for a response.
+ cf. <xmqqldb4xlqa.fsf@gitster.g>
source: <20260721140443.1809379-2-hugo@hsal.es>
* tn/stash-avoid-sparse-index-expansion (2026-07-20) 2 commits
- - stash: avoid sparse-index expansion for in-cone paths
- - pathspec: use match for sparse-index expansion checks
+ (merged to 'next' on 2026-07-23 at 8ccf28493e)
+ + stash: avoid sparse-index expansion for in-cone paths
+ + pathspec: use match for sparse-index expansion checks
The 'git stash push' command has been optimized to avoid unnecessary
sparse index expansion when pathspecs are wholly inside the
sparse-index expansion check helper pathspec_needs_expanded_index()
has been fixed by consistently using the parsed, prefixed path.
- Will merge to 'next'.
+ Will merge to 'master'.
cf. <al61UTM0aK9j9eiP@com-79390>
cf. <al61ERa3fS2MerHp@com-79390>
source: <20260720223118.62821-4-tnyman@openai.com>
-* en/submodule-insteadof-remote-match (2026-07-21) 1 commit
- - submodule: resolve insteadof-aliases when matching remote
+* en/submodule-insteadof-remote-match (2026-07-22) 1 commit
+ - submodule: resolve insteadOf aliases when matching remote
The remote-matching logic for submodules has been corrected to
resolve 'url.*.insteadOf' aliases before comparing the inventoried
URL from '.gitmodules' with the URLs of configured remotes.
- Needs review.
- source: <20260721213042.3357346-1-ccjmne@gmail.com>
+ Will merge to 'next'?
+ cf. <xmqqbjbyole1.fsf@gitster.g>
+ source: <20260723002132.3989727-1-ccjmne@gmail.com>
* td/fsmonitor-darwin-cookie-flush (2026-07-21) 1 commit
FSEvents before waiting for the cookie file, to avoid premature
timeouts on busy systems.
- Needs review.
+ Waiting for a resposne.
+ cf. <CAOTNsDy4pKbPHdK1T688Ax6Mgz15K-qfZR-8fAvTk48z3E43Rg@mail.gmail.com>
source: <20260721-fsmonitor-darwin-cookie-flush-v1-1-357dc5e32040@gmail.com>
properly stop after the first parent even when it has already been
marked as SEEN.
- Needs review.
+ Will merge to 'next'.
source: <xmqqbjbzq7n2.fsf@gitster.g>
---------------------------------------------------
-[Stalled]
-
-* kh/doc-trailers (2026-06-10) 10 commits
- - doc: interpret-trailers: document comment line treatment
- - doc: interpret-trailers: commit to “trailer block” term
- - doc: interpret-trailers: join new-trailers again
- - doc: interpret-trailers: add key format example
- - doc: interpret-trailers: explain key format
- - doc: interpret-trailers: explain the format after the intro
- - doc: interpret-trailers: not just for commit messages
- - doc: interpret-trailers: use “metadata” in Name as well
- - doc: interpret-trailers: replace “lines” with “metadata”
- - doc: interpret-trailers: stop fixating on RFC 822
-
- Documentation for 'git interpret-trailers' has been updated to explain
- the format of trailer keys (alphanumeric characters and hyphens),
- replace outdated terminology, define key terms upfront, and document
- how comment lines in the input are treated.
-
- Expecting a reroll for too long, stalled.
- cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
- cf. <xmqqcxxyt4op.fsf@gitster.g>
- source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
-
-
-* jt/config-lock-timeout (2026-05-17) 1 commit
- - config: retry acquiring config.lock, configurable via core.configLockTimeout
-
- Configuration file locking has been updated to retry for a short
- period, avoiding failures when multiple processes attempt to update
- the configuration simultaneously.
-
- Waiting for response for too long, stalled.
- cf. <agrIrGwSMFlKTx9x@pks.im>
- source: <20260517132111.1014901-1-joerg@thalheim.io>
-
---------------------------------------------------
-[Cooking]
* sn/rebase-update-refs-symrefs (2026-07-22) 2 commits
- rebase: guard non-branch symref targets
the current branch are skipped and duplicate updates are avoided to
prevent failures when branch aliases are present.
- Needs review.
+ Waiting for a response.
+ cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
+ cf. <00e529b6-7ae7-463f-a4b3-0991e9411aba@gmail.com>
source: <pull.2126.v3.git.1784708107.gitgitgadget@gmail.com>
source: <20260719010842.17991-1-sandals@crustytoothpaste.net>
-* ja/doc-synopsis-style-yet-more (2026-07-19) 4 commits
+* ja/doc-synopsis-style-yet-more (2026-07-23) 4 commits
- doc: convert git-request-pull synopsis and options to new style
- doc: convert git-send-email synopsis and options to new style
- doc: convert git-format-patch synopsis and options to new style
'git imap-send', 'git send-email', and 'git request-pull' have been
updated to the modern style.
- Expecting a reroll.
- cf. <23179740.EfDdHjke4D@piment-oiseau>
- cf. <2418232.ElGaqSPkdT@piment-oiseau>
- source: <pull.2185.git.1784490878.gitgitgadget@gmail.com>
+ Needs review.
+ source: <pull.2185.v2.git.1784841567.gitgitgadget@gmail.com>
* hn/url-push-tracking (2026-07-22) 2 commits
uniquely matching configured remote is now used to find and update
the remote-tracking branch (e.g., '@{push}').
- Will merge to 'next'?
+ Will merge to 'next'.
cf. <xmqqpl0eoniz.fsf@gitster.g>
- cf. <3FE12592-B663-438C-B33E-A251AE08E146@gmail.com>
source: <pull.2358.v4.git.git.1784743738.gitgitgadget@gmail.com>
'gitweb' has been corrected to work even when the index line carries
a trailing file mode.
- Needs review.
+ Will merge to 'next'?
+ cf. <xmqqjyqu6u7i.fsf@gitster.g>
source: <SA1PR10MB9977150C823C0751E53B150D5AF1C62@SA1PR10MB997715.namprd10.prod.outlook.com>
Waiting for response.
cf. <845D6852-98F5-4168-82CD-90B3B476BCF5@gmail.com>
+ cf. <xmqq33xejomv.fsf@gitster.g>
source: <20260717133015.32040-1-jayatheerthkulkarni2005@gmail.com>
* sk/userdiff-swift (2026-07-20) 1 commit
- - userdiff: add support for Swift
+ (merged to 'next' on 2026-07-23 at 45dbcc6307)
+ + userdiff: add support for Swift
Userdiff patterns for Swift have been added, with support for
Swift-specific constructs such as attributes, modifiers, failable
initializers, and generics.
- Will merge to 'next'?
+ Will merge to 'master'.
+ cf. <2a3a73c5-5e90-44a3-bf6a-6e98ce5e5a59@kdbg.org>
cf. <7b541cd5-bd66-4675-818d-8e23eb1c9530@kdbg.org>
source: <20260721065736.8747-1-diy2903@gmail.com>
first refactoring force_object_loose() to use generic ODB write
interfaces instead of loose-backend internals.
- Needs review.
+ Will merge to 'next'?
+ cf. <87jyqnp365.fsf@emacs.iotcl.com>
+ cf. <87fr1bp0bi.fsf@emacs.iotcl.com>
source: <20260717-pks-odb-move-loose-object-writing-v1-0-46446a3cb5b7@pks.im>
to pre-filter commits, and maintains per-path Bloom filters even when
wildcard pathspecs are used.
- Expecting a reroll.
+ Waiting for a response.
cf. <87cxwl1lb4.fsf@emacs.iotcl.com>
+ cf. <20260720094218.GA681989@coredump.intra.peff.net>
source: <20260717-toon-speed-up-last-modified-v1-0-410418f18614@iotcl.com>
Waiting for response.
cf. <xmqqldbdqciy.fsf@gitster.g>
cf. <xmqqh5m1qcfh.fsf@gitster.g>
- cf. <alcvmX3b6y92KE4y@pks.im>
cf. <alcvnm0xiOv5W0w_@pks.im>
source: <pull.2179.git.1784069325.gitgitgadget@gmail.com>
avoid a segfault when encountering unmerged paths outside the
prefix.
- Needs review.
+ Will merge to 'next'?
source: <20260715060523.GA517940@coredump.intra.peff.net>
Waiting for response.
cf. <f8050598-392f-44c9-8d66-0454740a7a12@kdbg.org>
- cf. <a2676ec6-39d5-4220-8549-10a17daec668@hogyros.de>
- cf. <xmqqfr1ig0hv.fsf@gitster.g>
+ cf. <xmqqwluuekbh.fsf@gitster.g>
source: <20260716-pks-reintroduce-writev-v1-0-ea9038c884bc@pks.im>
source: <alQ7WKITYDXfiVn9@com-79390>
-* tn/packfile-uri-concurrency (2026-07-21) 3 commits
+* tn/packfile-uri-concurrency (2026-07-24) 3 commits
- fetch-pack: accept "pack" output for packfile URIs
- http: avoid concurrent appends to partial packs
- http-fetch: correct --index-pack-arg documentation
'.keep' files.
Needs review.
- source: <cover.1784676106.git.tnyman@openai.com>
+ cf. <xmqqldb19evx.fsf@gitster.g>
+ source: <cover.1784874850.git.tnyman@openai.com>
* rs/tempfile-wo-the-repository (2026-07-14) 5 commits
to spawn a 'git apply' subprocess.
Needs review.
+ cf. <xmqqechab03t.fsf@gitster.g>
source: <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com>
script on repositories already managed by the new tool.
Expecting a reroll.
- cf. <27219.20156.438730.881821@chiark.greenend.org.uk>
+ cf. <27215.27575.968985.583226@chiark.greenend.org.uk>
source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
source: <cover.1784128921.git.phillip.wood@dunelm.org.uk>
-* tb/repack-geometric-cruft (2026-06-28) 11 commits
- - SQUASH??? bare grep !???
- - repack: support combining '--geometric' with '--cruft'
- - pack-objects: support '--refs-snapshot' with 'follow-reachable'
- - pack-objects: introduce '--stdin-packs=follow-reachable'
- - pack-objects: extract `stdin_packs_add_all_pack_entries()`
- - repack-geometry: drop unused redundant-pack removal
- - repack: delete geometric packs via existing_packs
- - repack: teach MIDX retention about geometric rollups
- - repack: mark geometric progression of packs as retained
- - repack: extract `locate_existing_pack()` helper
- - repack: unconditionally exclude non-kept packs
-
- 'git repack' has been taught to accept '--geometric' and '--cruft'
- together. When both are given, non-cruft packs are rolled up by the
- geometric repack as usual, while a separate cruft pack is written to
- collect unreachable objects.
-
- Waiting for response.
- cf. <xmqqpl1d56dd.fsf@gitster.g>
- cf. <xmqqwlvl56vh.fsf@gitster.g>
- source: <cover.1782500507.git.me@ttaylorr.com>
-
-
* ty/migrate-excludes-file (2026-07-13) 10 commits
- - repository: adjust the comment of config_values_private_
- - environment: move object_creation_mode into repo_config_values
- - environment: move autorebase into repo_config_values
- - environment: move push_default into repo_config_values
- - environment: migrate apply_default_whitespace and apply_default_ignorewhitespace
- - environment: move askpass_program into repo_config_values
- - environment: move pager_program into repo_config_values
- - environment: move editor_program into repo_config_values
- - environment: move excludes_file into repo_config_values
- - repository: introduce repo_config_values_clear()
+ (merged to 'next' on 2026-07-23 at 749560a29c)
+ + repository: adjust the comment of config_values_private_
+ + environment: move object_creation_mode into repo_config_values
+ + environment: move autorebase into repo_config_values
+ + environment: move push_default into repo_config_values
+ + environment: migrate apply_default_whitespace and apply_default_ignorewhitespace
+ + environment: move askpass_program into repo_config_values
+ + environment: move pager_program into repo_config_values
+ + environment: move editor_program into repo_config_values
+ + environment: move excludes_file into repo_config_values
+ + repository: introduce repo_config_values_clear()
The 'excludes_file' and various other global configuration variables
(including 'editor_program', 'pager_program', 'askpass_program', and
'push_default') have been migrated into the per-repository structure.
- Will merge to 'next'.
+ Will merge to 'master'.
cf. <xmqqa4ruyhbh.fsf@gitster.g>
source: <20260714032525.1611141-1-cat@malon.dev>
the specified range and path.
Needs review.
+ cf. <xmqq8q8bpl03.fsf@gitster.g>
source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
* hn/history-squash (2026-07-20) 5 commits
- - history: re-edit a squash with every message
- - sequencer: share the squash message marker helpers and flags
- - history: add squash subcommand to fold a range
- - history: give commit_tree_ext a message template
- - history: extract helper for a commit's parent tree
+ (merged to 'next' on 2026-07-23 at 2790c83e45)
+ + history: re-edit a squash with every message
+ + sequencer: share the squash message marker helpers and flags
+ + history: add squash subcommand to fold a range
+ + history: give commit_tree_ext a message template
+ + history: extract helper for a commit's parent tree
The experimental 'git history' command has been taught a new 'squash'
subcommand to fold a range of commits into a single commit, with any
descendants replayed on top.
- Will merge to 'next'.
+ Will merge to 'master'.
cf. <DK1KIF2OI8IF.11188A3YEQV1C@lfurio.us>
cf. <DK1KIH6CXW0X.1U2V3GU8L6HB7@lfurio.us>
source: <pull.2337.v10.git.git.1784536024.gitgitgadget@gmail.com>
source: <20260707-toon-git-replay-drop-merges-v7-0-808ab9b4afa6@iotcl.com>
-* ps/cat-file-remote-object-info (2026-07-18) 13 commits
- - cat-file: make remote-object-info allow-list adapt to the server
- - cat-file: add remote-object-info to batch-command
- - transport: add client support for object-info
- - serve: advertise object-info feature
- - protocol-caps: check object existence regardless of the attributes requested
- - fetch-pack: move fetch initialization
- - connect: make write_fetch_command_and_capabilities() more generic
- - fetch-pack: move write_fetch_command_and_capabilities() to connect.c
- - fetch-pack: use unsigned int for hash_algo variable
- - fetch-pack: drop the static advertise_sid variable
- - t1006: extract helper functions into new 'lib-cat-file.sh'
- - cat-file: declare loop counter inside for()
- - transport-helper: fix memory leak of helper on disconnect
+* ps/cat-file-remote-object-info (2026-07-24) 13 commits
+ (merged to 'next' on 2026-07-24 at e436a42272)
+ + cat-file: make remote-object-info allow-list adapt to the server
+ + cat-file: add remote-object-info to batch-command
+ + transport: add client support for object-info
+ + serve: advertise object-info feature
+ + protocol-caps: check object existence regardless of the attributes requested
+ + fetch-pack: move fetch initialization
+ + connect: make write_fetch_command_and_capabilities() more generic
+ + fetch-pack: move write_fetch_command_and_capabilities() to connect.c
+ + fetch-pack: use unsigned int for hash_algo variable
+ + fetch-pack: drop the static advertise_sid variable
+ + t1006: extract helper functions into new 'lib-cat-file.sh'
+ + cat-file: declare loop counter inside for()
+ + 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
filtered on the client based on server-advertised capabilities,
returning empty strings for inapplicable or unsupported fields.
- Needs review.
- source: <20260718-ps-eric-work-rebase-v20-0-0c13962ac532@gmail.com>
+ Will merge to 'master'.
+ source: <20260724-ps-eric-work-rebase-v21-0-ba67f024fdff@gmail.com>
* mm/diff-process-hunks (2026-07-15) 9 commits
Ejected for now, as it conflicts badly with 'mm/line-log-limited-ops'.
Expecting a reroll.
- cf. <xmqq8q7aj3b0.fsf@gitster.g>
cf. <CAC2QwmKRp90hmBAckug9PPvvD53Pi53q5csZhi15LRhzdQasQg@mail.gmail.com>
source: <pull.2120.v5.git.1784149323.gitgitgadget@gmail.com>
* ty/migrate-trust-executable-bit (2026-07-20) 4 commits
- - environment: move has_symlinks into repo_config_values
- - environment: move trust_executable_bit into repo_config_values
- - read-cache: pass 'repo' to 'ce_mode_from_stat()'
- - read-cache: remove redundant extern declarations
+ (merged to 'next' on 2026-07-23 at 4873f289dd)
+ + environment: move has_symlinks into repo_config_values
+ + environment: move trust_executable_bit into repo_config_values
+ + read-cache: pass 'repo' to 'ce_mode_from_stat()'
+ + read-cache: remove redundant extern declarations
The 'trust_executable_bit' (coming from the 'core.filemode'
configuration) has been migrated into 'struct repo_config_values' to
tie it to a specific repository instance.
- Will merge to 'next'.
+ Will merge to 'master'.
cf. <alvNq8rXF/jofqUc@szeder.dev>
cf. <xmqq8q7961xe.fsf@gitster.g>
source: <20260720105335.3202013-1-cat@malon.dev>
-* za/completion-hide-dotfiles (2026-06-20) 2 commits
- - completion: hide dotfiles by default for path completion
- - completion: hide dotfiles for selected path completion
-
- Path completion for commands like 'git rm' and 'git mv' has been
- updated to hide dotfiles by default unless the user explicitly starts
- the path with a dot, matching standard shell-completion behavior.
-
- Waiting for response, stalled.
- cf. <xmqqik71t3nr.fsf@gitster.g>
- cf. <xmqq1pe0g08t.fsf@gitster.g>
- source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
-
-
* ec/commit-fixup-options (2026-05-26) 2 commits
- commit: allow -c/-C for all kinds of --fixup
- commit: allow -m/-F for all kinds of --fixup
source: <cover.1779792311.git.erik@cervined.in>
-* 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
- - doc: link to config for git-replay(1)
-
- Documentation for 'git replay' has been updated to refer to its
- configuration variables.
-
- Waiting for response for too long, stalled.
- cf. <87cxwxofgv.fsf@emacs.iotcl.com>
- source: <V3_CV_doc_replay_config.780@msgid.xyz>
-
-
-* hn/branch-delete-merged (2026-07-22) 7 commits
+* hn/branch-delete-merged (2026-07-24) 7 commits
- branch: add --dry-run for --delete-merged
- branch: add branch.<name>.deleteMerged opt-out
- branch: add --delete-merged <branch>
to remove local branches that are already merged into their tracked
remote-tracking branches.
- Needs review.
+ Will merge to 'next'?
cf. <9b9b9a2c-dd0f-44f8-b80e-565eed9a55a8@gmail.com>
cf. <xmqqik6an5t3.fsf@gitster.g>
- source: <pull.2285.v20.git.git.1784704238.gitgitgadget@gmail.com>
-
-
-* hn/checkout-track-fetch (2026-06-24) 2 commits
- - checkout: extend --track with a "fetch" mode to refresh start-point
- - branch: expose helpers for finding the remote owning a tracking ref
-
- The 'git checkout --track=...' command has been taught to optionally
- fetch the branch from the remote that the new branch will work with.
-
- Waiting for response for too long, stalled.
- cf. <xmqq5x37h6fj.fsf@gitster.g>
- cf. <CAL71e4MiijEiM26TKJcOYT7L4pfQeMM_F2oT3U3igP-wOZm2Ag@mail.gmail.com>
- source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
+ source: <pull.2285.v21.git.git.1784889377.gitgitgadget@gmail.com>
* ps/shift-root-in-graph (2026-07-14) 7 commits
Needs review.
cf. <xmqqse5en8wz.fsf@gitster.g>
- cf. <xmqqv7al9rbj.fsf@gitster.g>
source: <pull.2149.v6.git.1783776466.gitgitgadget@gmail.com>