What's cooking (2026/07 #11)

Junio C Hamano committed Jul 24, 2026 at 15:09 UTC 2883c9d288e0423a524fc63c8dc75b2dc0f0fbc9
1 file changed +207 -328
whats-cooking.txt
+207 -328
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Jul 2026, #10)
2 +Subject: What's cooking in git.git (Jul 2026, #11)
3 X-master-at: 9a0c4701dcd5725c4184599322b52933ff5005ca
4 -X-next-at: 3f0d50209424de9b2a3b57975503a767e485f62a
4 +X-next-at: e436a42272e5f75bb9ac8df1355c4593652372fe
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Jul 2026, #10)
7 +What's cooking in git.git (Jul 2026, #11)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -48,190 +48,160 @@ Release tarballs are available at:
48 https://www.kernel.org/pub/software/scm/git/
49
50 --------------------------------------------------
51 -[Graduated to 'master']
52 -
53 -* cc/doc-fast-export-synopsis-fix (2026-07-13) 1 commit
54 - (merged to 'next' on 2026-07-16 at b1dbc0cb3f)
55 - + fast-export: standardize usage string and SYNOPSIS
56 -
57 - The usage string and SYNOPSIS for 'git fast-export' have been
58 - standardized to make them consistent with each other and with other
59 - commands.
60 -
61 - Graduated to 'master'.
62 - cf. <alX5Nl8uX4ctVqo3@pks.im>
63 - cf. <xmqq4ii228dd.fsf@gitster.g>
64 - source: <20260713124153.245268-1-christian.couder@gmail.com>
65 -
66 -
67 -* cl/b4-cover-change-id (2026-07-10) 1 commit
68 - (merged to 'next' on 2026-07-13 at 15c7ad9a3f)
69 - + b4: include change-id in cover template
70 -
71 - The in-tree 'b4' cover letter template has been updated to include the
72 - 'change-id' trailer, ensuring that sent tags generated by 'b4' contain
73 - the required tracking information for subsequent runs.
74 -
75 - Graduated to 'master'.
76 - source: <20260710-add-change-id-to-b4-template-v1-1-1bd37a25064e@black-desk.cn>
77 -
78 -
79 -* cl/conditional-config-on-worktree-path (2026-07-09) 2 commits
80 - (merged to 'next' on 2026-07-15 at 86ca33c437)
81 - + config: add "worktree" and "worktree/i" includeIf conditions
82 - + config: refactor include_by_gitdir() into include_by_path()
83 -
84 - The '[includeIf "condition"]' conditional inclusion facility for
85 - configuration files has been taught to use the location of the
86 - worktree in its condition.
87 -
88 - Graduated to 'master'.
89 - cf. <alTJCTKR9jOWfgbk@pks.im>
90 - source: <20260710-includeif-worktree-v8-0-04686d8a616c@black-desk.cn>
91 -
51 +[New Topics]
52
93 -* dm/submodule-update-i-shorthand (2026-07-07) 1 commit
94 - (merged to 'next' on 2026-07-15 at 55ef0fb748)
95 - + submodule--helper: accept '-i' shorthand for update --init
53 +* af/clone-revision-v0-segfault-fix (2026-07-24) 1 commit
54 + - builtin/clone: fix segfault when using --revision with protocol v0
55
97 - The '-i' shorthand for the '--init' option, which was accepted by the
98 - 'git submodule update' command until it was broken in a modernization
99 - of the option-parsing code, has been restored.
56 + 'git clone --revision' talking to a server that does not support
57 + protocol v2 (falling back to protocol v0) segfaulted, which has
58 + been corrected.
59
101 - Graduated to 'master'.
102 - cf. <xmqq8q7ltf51.fsf@gitster.g>
103 - source: <20260708-submodule-init-v1-1-719456077262@atmark-techno.com>
60 + Will merge to 'next'?
61 + cf. <xmqqldb08jcd.fsf@gitster.g>
62 + source: <20260724124138.666877-1-adrian.friedli@mt.com>
63
64
106 -* jt/receive-pack-use-odb-transactions (2026-07-10) 11 commits
107 - (merged to 'next' on 2026-07-15 at aba57e3365)
108 - + builtin/receive-pack: stage incoming objects via ODB transactions
109 - + builtin/receive-pack: drop redundant tmpdir env
110 - + odb/transaction: introduce ODB transaction flags
111 - + odb/transaction: add transaction env interface
112 - + odb/transaction: propagate commit errors
113 - + odb/transaction: propagate begin errors
114 - + object-file: propagate files transaction errors
115 - + object-file: drop check for inflight transactions
116 - + object-file: embed transaction flush logic in commit function
117 - + object-file: rename files transaction fsync function
118 - + object-file: rename files transaction prepare function
119 - (this branch is used by ps/odb-move-loose-object-writing.)
65 +* lo/mv-missing-dest-dir-check (2026-07-23) 2 commits
66 + - mv: check for missing destination directory before renaming
67 + - mv: name both source and destination when rename fails
68
121 - 'git receive-pack' has been refactored to use ODB transaction
122 - interfaces instead of directly managing 'tmp_objdir' for staging
123 - incoming objects, bringing it closer to being ODB backend agnostic.
69 + 'git mv' has been updated to check for a missing destination
70 + leading directory during the checking phase, allowing 'git mv -n'
71 + to report the failure. The error message when the rename(2)
72 + syscall fails has also been improved to name both the source and
73 + the destination.
74
125 - Graduated to 'master'.
126 - cf. <alR1P-RGZNmjyiUE@pks.im>
127 - source: <20260710163722.2962278-1-jltobler@gmail.com>
75 + Waiting for response.
76 + cf. <xmqq8q71k3fy.fsf@gitster.g>
77 + cf. <xmqqh5lpk3r3.fsf@gitster.g>
78 + source: <pull.2356.v2.git.git.1784812390.gitgitgadget@gmail.com>
79
80
130 -* kk/no-walk-pathspec-fix (2026-07-16) 2 commits
131 - (merged to 'next' on 2026-07-16 at 4dd6fb0e7e)
132 - + revision: fix --no-walk path filtering regression
133 - + Merge branch 'kk/streaming-walk-pqueue' into kk/no-walk-pathspec-fix
81 +* ps/odb-make-creation-pluggable (2026-07-23) 5 commits
82 + - odb: make creation of on-disk structures pluggable
83 + - odb/source: introduce function to map source type to name
84 + - setup: defer object database creation
85 + - setup: detangle loading of loose object maps
86 + - loose: load loose object map for the correct source
87
135 - The 'git rev-list --no-walk' command has been corrected to restore
136 - pathspec filtering, which was lost when the streaming walk was
137 - refactored.
88 + The creation of the on-disk data structures for the object database
89 + has been made pluggable, allowing future backends to customize their
90 + setup. As part of this, the initialization of the object database
91 + has been deferred, and the loading of the loose-object map has been
92 + detangled from repository initialization.
93
139 - Graduated to 'master'.
140 - source: <pull.2181.git.1784198879711.gitgitgadget@gmail.com>
94 + Needs review.
95 + cf. <xmqq5x248fk9.fsf@gitster.g>
96 + cf. <xmqqh5lo6xi2.fsf@gitster.g>
97 + cf. <xmqq5x246x35.fsf@gitster.g>
98 + source: <20260724-pks-odb-create-on-disk-v1-0-3b3d265d979b@pks.im>
99
100 +--------------------------------------------------
101 +[Stalled]
102
143 -* ml/t9811-replace-test-f (2026-07-11) 2 commits
144 - (merged to 'next' on 2026-07-15 at ffb7fcad15)
145 - + t9811: replace 'test -f' and '! test -f' with 'test_path_*'
146 - + t9811: break long && chains into multiple lines
103 +* tb/repack-geometric-cruft (2026-06-28) 11 commits
104 + - SQUASH??? bare grep !???
105 + - repack: support combining '--geometric' with '--cruft'
106 + - pack-objects: support '--refs-snapshot' with 'follow-reachable'
107 + - pack-objects: introduce '--stdin-packs=follow-reachable'
108 + - pack-objects: extract `stdin_packs_add_all_pack_entries()`
109 + - repack-geometry: drop unused redundant-pack removal
110 + - repack: delete geometric packs via existing_packs
111 + - repack: teach MIDX retention about geometric rollups
112 + - repack: mark geometric progression of packs as retained
113 + - repack: extract `locate_existing_pack()` helper
114 + - repack: unconditionally exclude non-kept packs
115
148 - The test script 't/t9811-git-p4-label-import.sh' has been
149 - modernized to use 'test_path_is_file' and 'test_path_is_missing'
150 - instead of raw 'test -f' and '! test -f' calls.
116 + 'git repack' has been taught to accept '--geometric' and '--cruft'
117 + together. When both are given, non-cruft packs are rolled up by the
118 + geometric repack as usual, while a separate cruft pack is written to
119 + collect unreachable objects.
120
152 - Graduated to 'master'.
153 - cf. <alTHrUEh4_O5ROeu@pks.im>
154 - source: <20260711160447.99708-1-marcelomlage@usp.br>
121 + Waiting for response for too long, stalled.
122 + cf. <xmqqpl1d56dd.fsf@gitster.g>
123 + cf. <xmqqwlvl56vh.fsf@gitster.g>
124 + source: <cover.1782500507.git.me@ttaylorr.com>
125
126
157 -* ps/odb-for-each-object-filter (2026-07-14) 10 commits
158 - (merged to 'next' on 2026-07-16 at 8f30e80d33)
159 - + builtin/cat-file: filter objects via object database
160 - + odb: introduce object filters to `odb_for_each_object()`
161 - + pack-bitmap: introduce function to open bitmap for a single source
162 - + pack-bitmap: drop `_1` suffix from functions that open bitmaps
163 - + pack-bitmap: iterate object sources when opening bitmaps
164 - + pack-bitmap: allow aborting iteration of bitmapped objects
165 - + pack-objects: drop unused return value from add_object_entry()
166 - + pack-bitmap: mark object filter as `const`
167 - + odb/source-packed: improve lookup when enumerating objects
168 - + Merge branch 'ps/odb-drop-whence' into ps/odb-for-each-object-filter
127 +* hn/checkout-track-fetch (2026-06-24) 2 commits
128 + - checkout: extend --track with a "fetch" mode to refresh start-point
129 + - branch: expose helpers for finding the remote owning a tracking ref
130
170 - The object database enumeration interface odb_for_each_object() has
171 - been taught to accept object filters, allowing the underlying backends
172 - to optimize the traversal by using reachability bitmaps when
173 - available. 'git cat-file --batch-all-objects' has been updated to use
174 - this generic interface, simplifying its code and avoiding direct
175 - access to ODB backend internals.
131 + The 'git checkout --track=...' command has been taught to optionally
132 + fetch the branch from the remote that the new branch will work with.
133
177 - Graduated to 'master'.
178 - cf. <874ii0h2uf.fsf@emacs.iotcl.com>
179 - source: <20260715-pks-odb-for-each-object-filter-v4-0-616d7adf7fb7@pks.im>
134 + Waiting for response for too long, stalled.
135 + cf. <xmqq5x37h6fj.fsf@gitster.g>
136 + cf. <CAL71e4MiijEiM26TKJcOYT7L4pfQeMM_F2oT3U3igP-wOZm2Ag@mail.gmail.com>
137 + source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
138
139
182 -* ps/odb-stream-double-close-fix (2026-07-10) 1 commit
183 - (merged to 'next' on 2026-07-13 at dd2c5795b7)
184 - + object-file: fix closing object stream twice
140 +* za/completion-hide-dotfiles (2026-06-20) 2 commits
141 + - completion: hide dotfiles by default for path completion
142 + - completion: hide dotfiles for selected path completion
143
186 - The stream-based object signature verification path has been
187 - corrected to avoid double-closing the stream on read errors.
144 + Path completion for commands like 'git rm' and 'git mv' has been
145 + updated to hide dotfiles by default unless the user explicitly starts
146 + the path with a dot, matching standard shell-completion behavior.
147
189 - Graduated to 'master'.
190 - source: <20260710-pks-odb-stream-double-close-v1-1-d5fa233a37c7@pks.im>
148 + Waiting for response, stalled.
149 + cf. <xmqq1pe0g08t.fsf@gitster.g>
150 + cf. <xmqqik71t3nr.fsf@gitster.g>
151 + source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
152
153
193 -* rs/strbuf-avoid-redundant-reset (2026-07-14) 1 commit
194 - (merged to 'next' on 2026-07-16 at f258ce38ba)
195 - + strbuf: avoid redundant reset in strbuf_getwholeline()
154 +* kh/doc-trailers (2026-06-10) 10 commits
155 + - doc: interpret-trailers: document comment line treatment
156 + - doc: interpret-trailers: commit to “trailer block” term
157 + - doc: interpret-trailers: join new-trailers again
158 + - doc: interpret-trailers: add key format example
159 + - doc: interpret-trailers: explain key format
160 + - doc: interpret-trailers: explain the format after the intro
161 + - doc: interpret-trailers: not just for commit messages
162 + - doc: interpret-trailers: use “metadata” in Name as well
163 + - doc: interpret-trailers: replace “lines” with “metadata”
164 + - doc: interpret-trailers: stop fixating on RFC 822
165
197 - A redundant strbuf_reset() call in the 'HAVE_GETDELIM' path of
198 - strbuf_getwholeline() has been removed, as getdelim() overwrites the
199 - buffer and the length is updated afterward.
166 + Documentation for 'git interpret-trailers' has been updated to explain
167 + the format of trailer keys (alphanumeric characters and hyphens),
168 + replace outdated terminology, define key terms upfront, and document
169 + how comment lines in the input are treated.
170
201 - Graduated to 'master'.
202 - cf. <xmqq8q7dv82b.fsf@gitster.g>
203 - cf. <20260714214941.GB4095533@coredump.intra.peff.net>
204 - source: <d4ffe7fb-f782-4f06-9e3b-f72729d1e225@web.de>
171 + Expecting a reroll for too long, stalled.
172 + cf. <xmqq1pedthkv.fsf@gitster.g>
173 + source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
174
175
207 -* sk/t1100-modernize (2026-07-14) 2 commits
208 - (merged to 'next' on 2026-07-16 at 621ca4ca5f)
209 - + t1100: move creation of expected output into setup test
210 - + t1100: modernize test style
176 +* kh/doc-replay-config (2026-06-05) 4 commits
177 + - doc: replay: move “default” to the right-hand side
178 + - doc: replay: use a nested description list
179 + - doc: replay: improve config description
180 + - doc: link to config for git-replay(1)
181
212 - The test script 't/t1100-commit-tree-options.sh' has been modernized
213 - by converting test cases to the modern style (using single quotes and
214 - tab indentation) and moving the creation of the expected file inside
215 - the setup test so it runs under the protection of the test harness.
182 + Documentation for 'git replay' has been updated to refer to its
183 + configuration variables.
184
217 - Graduated to 'master'.
218 - cf. <xmqq4ii1v7x0.fsf@gitster.g>
219 - source: <20260714122033.61947-1-diy2903@gmail.com>
185 + Waiting for response for too long, stalled.
186 + cf. <87cxwxofgv.fsf@emacs.iotcl.com>
187 + source: <V3_CV_doc_replay_config.780@msgid.xyz>
188
189 +--------------------------------------------------
190 +[Cooking]
191
222 -* sk/t7614-do-not-hide-git-exit-status (2026-07-15) 1 commit
223 - (merged to 'next' on 2026-07-16 at 0d143986e7)
224 - + t7614: avoid hiding git's exit code in a pipe
192 +* jt/config-lock-timeout (2026-05-17) 1 commit
193 + (merged to 'next' on 2026-07-24 at 3cb8da6b6a)
194 + + config: retry acquiring config.lock, configurable via core.configLockTimeout
195
226 - The test script 't/t7614-merge-signoff.sh' has been updated to avoid
227 - suppressing the exit code of 'git' commands in a pipe.
196 + Configuration file locking has been updated to retry for a short
197 + period, avoiding failures when multiple processes attempt to update
198 + the configuration simultaneously.
199
229 - Graduated to 'master'.
230 - cf. <xmqq1pd4m4ea.fsf@gitster.g>
231 - source: <20260715113344.3490-1-diy2903@gmail.com>
200 + Will merge to 'master'.
201 + cf. <agrIrGwSMFlKTx9x@pks.im>
202 + cf. <xmqqzf1xbl4i.fsf@gitster.g>
203 + source: <20260517132111.1014901-1-joerg@thalheim.io>
204
233 ---------------------------------------------------
234 -[New Topics]
205
206 * hs/rebase-continue-edit (2026-07-21) 1 commit
207 - rebase: add --[no-]edit to --continue
@@ -241,13 +211,15 @@ Release tarballs are available at:
211 forcing it with '--edit'. A new configuration variable
212 'rebase.noEdit' can be used to set the default behavior.
213
244 - Needs review.
214 + Waiting for a response.
215 + cf. <xmqqldb4xlqa.fsf@gitster.g>
216 source: <20260721140443.1809379-2-hugo@hsal.es>
217
218
219 * tn/stash-avoid-sparse-index-expansion (2026-07-20) 2 commits
249 - - stash: avoid sparse-index expansion for in-cone paths
250 - - pathspec: use match for sparse-index expansion checks
220 + (merged to 'next' on 2026-07-23 at 8ccf28493e)
221 + + stash: avoid sparse-index expansion for in-cone paths
222 + + pathspec: use match for sparse-index expansion checks
223
224 The 'git stash push' command has been optimized to avoid unnecessary
225 sparse index expansion when pathspecs are wholly inside the
@@ -255,21 +227,22 @@ Release tarballs are available at:
227 sparse-index expansion check helper pathspec_needs_expanded_index()
228 has been fixed by consistently using the parsed, prefixed path.
229
258 - Will merge to 'next'.
230 + Will merge to 'master'.
231 cf. <al61UTM0aK9j9eiP@com-79390>
232 cf. <al61ERa3fS2MerHp@com-79390>
233 source: <20260720223118.62821-4-tnyman@openai.com>
234
235
264 -* en/submodule-insteadof-remote-match (2026-07-21) 1 commit
265 - - submodule: resolve insteadof-aliases when matching remote
236 +* en/submodule-insteadof-remote-match (2026-07-22) 1 commit
237 + - submodule: resolve insteadOf aliases when matching remote
238
239 The remote-matching logic for submodules has been corrected to
240 resolve 'url.*.insteadOf' aliases before comparing the inventoried
241 URL from '.gitmodules' with the URLs of configured remotes.
242
271 - Needs review.
272 - source: <20260721213042.3357346-1-ccjmne@gmail.com>
243 + Will merge to 'next'?
244 + cf. <xmqqbjbyole1.fsf@gitster.g>
245 + source: <20260723002132.3989727-1-ccjmne@gmail.com>
246
247
248 * td/fsmonitor-darwin-cookie-flush (2026-07-21) 1 commit
@@ -279,7 +252,8 @@ Release tarballs are available at:
252 FSEvents before waiting for the cookie file, to avoid premature
253 timeouts on busy systems.
254
282 - Needs review.
255 + Waiting for a resposne.
256 + cf. <CAOTNsDy4pKbPHdK1T688Ax6Mgz15K-qfZR-8fAvTk48z3E43Rg@mail.gmail.com>
257 source: <20260721-fsmonitor-darwin-cookie-flush-v1-1-357dc5e32040@gmail.com>
258
259
@@ -290,48 +264,9 @@ Release tarballs are available at:
264 properly stop after the first parent even when it has already been
265 marked as SEEN.
266
293 - Needs review.
267 + Will merge to 'next'.
268 source: <xmqqbjbzq7n2.fsf@gitster.g>
269
296 ---------------------------------------------------
297 -[Stalled]
298 -
299 -* kh/doc-trailers (2026-06-10) 10 commits
300 - - doc: interpret-trailers: document comment line treatment
301 - - doc: interpret-trailers: commit to “trailer block” term
302 - - doc: interpret-trailers: join new-trailers again
303 - - doc: interpret-trailers: add key format example
304 - - doc: interpret-trailers: explain key format
305 - - doc: interpret-trailers: explain the format after the intro
306 - - doc: interpret-trailers: not just for commit messages
307 - - doc: interpret-trailers: use “metadata” in Name as well
308 - - doc: interpret-trailers: replace “lines” with “metadata”
309 - - doc: interpret-trailers: stop fixating on RFC 822
310 -
311 - Documentation for 'git interpret-trailers' has been updated to explain
312 - the format of trailer keys (alphanumeric characters and hyphens),
313 - replace outdated terminology, define key terms upfront, and document
314 - how comment lines in the input are treated.
315 -
316 - Expecting a reroll for too long, stalled.
317 - cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
318 - cf. <xmqqcxxyt4op.fsf@gitster.g>
319 - source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
320 -
321 -
322 -* jt/config-lock-timeout (2026-05-17) 1 commit
323 - - config: retry acquiring config.lock, configurable via core.configLockTimeout
324 -
325 - Configuration file locking has been updated to retry for a short
326 - period, avoiding failures when multiple processes attempt to update
327 - the configuration simultaneously.
328 -
329 - Waiting for response for too long, stalled.
330 - cf. <agrIrGwSMFlKTx9x@pks.im>
331 - source: <20260517132111.1014901-1-joerg@thalheim.io>
332 -
333 ---------------------------------------------------
334 -[Cooking]
270
271 * sn/rebase-update-refs-symrefs (2026-07-22) 2 commits
272 - rebase: guard non-branch symref targets
@@ -342,7 +277,9 @@ Release tarballs are available at:
277 the current branch are skipped and duplicate updates are avoided to
278 prevent failures when branch aliases are present.
279
345 - Needs review.
280 + Waiting for a response.
281 + cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
282 + cf. <00e529b6-7ae7-463f-a4b3-0991e9411aba@gmail.com>
283 source: <pull.2126.v3.git.1784708107.gitgitgadget@gmail.com>
284
285
@@ -361,7 +298,7 @@ Release tarballs are available at:
298 source: <20260719010842.17991-1-sandals@crustytoothpaste.net>
299
300
364 -* ja/doc-synopsis-style-yet-more (2026-07-19) 4 commits
301 +* ja/doc-synopsis-style-yet-more (2026-07-23) 4 commits
302 - doc: convert git-request-pull synopsis and options to new style
303 - doc: convert git-send-email synopsis and options to new style
304 - doc: convert git-format-patch synopsis and options to new style
@@ -371,10 +308,8 @@ Release tarballs are available at:
308 'git imap-send', 'git send-email', and 'git request-pull' have been
309 updated to the modern style.
310
374 - Expecting a reroll.
375 - cf. <23179740.EfDdHjke4D@piment-oiseau>
376 - cf. <2418232.ElGaqSPkdT@piment-oiseau>
377 - source: <pull.2185.git.1784490878.gitgitgadget@gmail.com>
311 + Needs review.
312 + source: <pull.2185.v2.git.1784841567.gitgitgadget@gmail.com>
313
314
315 * hn/url-push-tracking (2026-07-22) 2 commits
@@ -385,9 +320,8 @@ Release tarballs are available at:
320 uniquely matching configured remote is now used to find and update
321 the remote-tracking branch (e.g., '@{push}').
322
388 - Will merge to 'next'?
323 + Will merge to 'next'.
324 cf. <xmqqpl0eoniz.fsf@gitster.g>
390 - cf. <3FE12592-B663-438C-B33E-A251AE08E146@gmail.com>
325 source: <pull.2358.v4.git.git.1784743738.gitgitgadget@gmail.com>
326
327
@@ -398,7 +332,8 @@ Release tarballs are available at:
332 'gitweb' has been corrected to work even when the index line carries
333 a trailing file mode.
334
401 - Needs review.
335 + Will merge to 'next'?
336 + cf. <xmqqjyqu6u7i.fsf@gitster.g>
337 source: <SA1PR10MB9977150C823C0751E53B150D5AF1C62@SA1PR10MB997715.namprd10.prod.outlook.com>
338
339
@@ -418,17 +353,20 @@ Release tarballs are available at:
353
354 Waiting for response.
355 cf. <845D6852-98F5-4168-82CD-90B3B476BCF5@gmail.com>
356 + cf. <xmqq33xejomv.fsf@gitster.g>
357 source: <20260717133015.32040-1-jayatheerthkulkarni2005@gmail.com>
358
359
360 * sk/userdiff-swift (2026-07-20) 1 commit
425 - - userdiff: add support for Swift
361 + (merged to 'next' on 2026-07-23 at 45dbcc6307)
362 + + userdiff: add support for Swift
363
364 Userdiff patterns for Swift have been added, with support for
365 Swift-specific constructs such as attributes, modifiers, failable
366 initializers, and generics.
367
431 - Will merge to 'next'?
368 + Will merge to 'master'.
369 + cf. <2a3a73c5-5e90-44a3-bf6a-6e98ce5e5a59@kdbg.org>
370 cf. <7b541cd5-bd66-4675-818d-8e23eb1c9530@kdbg.org>
371 source: <20260721065736.8747-1-diy2903@gmail.com>
372
@@ -451,7 +389,9 @@ Release tarballs are available at:
389 first refactoring force_object_loose() to use generic ODB write
390 interfaces instead of loose-backend internals.
391
454 - Needs review.
392 + Will merge to 'next'?
393 + cf. <87jyqnp365.fsf@emacs.iotcl.com>
394 + cf. <87fr1bp0bi.fsf@emacs.iotcl.com>
395 source: <20260717-pks-odb-move-loose-object-writing-v1-0-46446a3cb5b7@pks.im>
396
397
@@ -480,8 +420,9 @@ Release tarballs are available at:
420 to pre-filter commits, and maintains per-path Bloom filters even when
421 wildcard pathspecs are used.
422
483 - Expecting a reroll.
423 + Waiting for a response.
424 cf. <87cxwl1lb4.fsf@emacs.iotcl.com>
425 + cf. <20260720094218.GA681989@coredump.intra.peff.net>
426 source: <20260717-toon-speed-up-last-modified-v1-0-410418f18614@iotcl.com>
427
428
@@ -521,7 +462,6 @@ Release tarballs are available at:
462 Waiting for response.
463 cf. <xmqqldbdqciy.fsf@gitster.g>
464 cf. <xmqqh5m1qcfh.fsf@gitster.g>
524 - cf. <alcvmX3b6y92KE4y@pks.im>
465 cf. <alcvnm0xiOv5W0w_@pks.im>
466 source: <pull.2179.git.1784069325.gitgitgadget@gmail.com>
467
@@ -533,7 +473,7 @@ Release tarballs are available at:
473 avoid a segfault when encountering unmerged paths outside the
474 prefix.
475
536 - Needs review.
476 + Will merge to 'next'?
477 source: <20260715060523.GA517940@coredump.intra.peff.net>
478
479
@@ -651,8 +591,7 @@ Release tarballs are available at:
591
592 Waiting for response.
593 cf. <f8050598-392f-44c9-8d66-0454740a7a12@kdbg.org>
654 - cf. <a2676ec6-39d5-4220-8549-10a17daec668@hogyros.de>
655 - cf. <xmqqfr1ig0hv.fsf@gitster.g>
594 + cf. <xmqqwluuekbh.fsf@gitster.g>
595 source: <20260716-pks-reintroduce-writev-v1-0-ea9038c884bc@pks.im>
596
597
@@ -683,7 +622,7 @@ Release tarballs are available at:
622 source: <alQ7WKITYDXfiVn9@com-79390>
623
624
686 -* tn/packfile-uri-concurrency (2026-07-21) 3 commits
625 +* tn/packfile-uri-concurrency (2026-07-24) 3 commits
626 - fetch-pack: accept "pack" output for packfile URIs
627 - http: avoid concurrent appends to partial packs
628 - http-fetch: correct --index-pack-arg documentation
@@ -696,7 +635,8 @@ Release tarballs are available at:
635 '.keep' files.
636
637 Needs review.
699 - source: <cover.1784676106.git.tnyman@openai.com>
638 + cf. <xmqqldb19evx.fsf@gitster.g>
639 + source: <cover.1784874850.git.tnyman@openai.com>
640
641
642 * rs/tempfile-wo-the-repository (2026-07-14) 5 commits
@@ -764,6 +704,7 @@ Release tarballs are available at:
704 to spawn a 'git apply' subprocess.
705
706 Needs review.
707 + cf. <xmqqechab03t.fsf@gitster.g>
708 source: <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com>
709
710
@@ -862,7 +803,7 @@ Release tarballs are available at:
803 script on repositories already managed by the new tool.
804
805 Expecting a reroll.
865 - cf. <27219.20156.438730.881821@chiark.greenend.org.uk>
806 + cf. <27215.27575.968985.583226@chiark.greenend.org.uk>
807 source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
808
809
@@ -926,47 +867,24 @@ Release tarballs are available at:
867 source: <cover.1784128921.git.phillip.wood@dunelm.org.uk>
868
869
929 -* tb/repack-geometric-cruft (2026-06-28) 11 commits
930 - - SQUASH??? bare grep !???
931 - - repack: support combining '--geometric' with '--cruft'
932 - - pack-objects: support '--refs-snapshot' with 'follow-reachable'
933 - - pack-objects: introduce '--stdin-packs=follow-reachable'
934 - - pack-objects: extract `stdin_packs_add_all_pack_entries()`
935 - - repack-geometry: drop unused redundant-pack removal
936 - - repack: delete geometric packs via existing_packs
937 - - repack: teach MIDX retention about geometric rollups
938 - - repack: mark geometric progression of packs as retained
939 - - repack: extract `locate_existing_pack()` helper
940 - - repack: unconditionally exclude non-kept packs
941 -
942 - 'git repack' has been taught to accept '--geometric' and '--cruft'
943 - together. When both are given, non-cruft packs are rolled up by the
944 - geometric repack as usual, while a separate cruft pack is written to
945 - collect unreachable objects.
946 -
947 - Waiting for response.
948 - cf. <xmqqpl1d56dd.fsf@gitster.g>
949 - cf. <xmqqwlvl56vh.fsf@gitster.g>
950 - source: <cover.1782500507.git.me@ttaylorr.com>
951 -
952 -
870 * ty/migrate-excludes-file (2026-07-13) 10 commits
954 - - repository: adjust the comment of config_values_private_
955 - - environment: move object_creation_mode into repo_config_values
956 - - environment: move autorebase into repo_config_values
957 - - environment: move push_default into repo_config_values
958 - - environment: migrate apply_default_whitespace and apply_default_ignorewhitespace
959 - - environment: move askpass_program into repo_config_values
960 - - environment: move pager_program into repo_config_values
961 - - environment: move editor_program into repo_config_values
962 - - environment: move excludes_file into repo_config_values
963 - - repository: introduce repo_config_values_clear()
871 + (merged to 'next' on 2026-07-23 at 749560a29c)
872 + + repository: adjust the comment of config_values_private_
873 + + environment: move object_creation_mode into repo_config_values
874 + + environment: move autorebase into repo_config_values
875 + + environment: move push_default into repo_config_values
876 + + environment: migrate apply_default_whitespace and apply_default_ignorewhitespace
877 + + environment: move askpass_program into repo_config_values
878 + + environment: move pager_program into repo_config_values
879 + + environment: move editor_program into repo_config_values
880 + + environment: move excludes_file into repo_config_values
881 + + repository: introduce repo_config_values_clear()
882
883 The 'excludes_file' and various other global configuration variables
884 (including 'editor_program', 'pager_program', 'askpass_program', and
885 'push_default') have been migrated into the per-repository structure.
886
969 - Will merge to 'next'.
887 + Will merge to 'master'.
888 cf. <xmqqa4ruyhbh.fsf@gitster.g>
889 source: <20260714032525.1611141-1-cat@malon.dev>
890
@@ -1002,21 +920,23 @@ Release tarballs are available at:
920 the specified range and path.
921
922 Needs review.
923 + cf. <xmqq8q8bpl03.fsf@gitster.g>
924 source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
925
926
927 * hn/history-squash (2026-07-20) 5 commits
1009 - - history: re-edit a squash with every message
1010 - - sequencer: share the squash message marker helpers and flags
1011 - - history: add squash subcommand to fold a range
1012 - - history: give commit_tree_ext a message template
1013 - - history: extract helper for a commit's parent tree
928 + (merged to 'next' on 2026-07-23 at 2790c83e45)
929 + + history: re-edit a squash with every message
930 + + sequencer: share the squash message marker helpers and flags
931 + + history: add squash subcommand to fold a range
932 + + history: give commit_tree_ext a message template
933 + + history: extract helper for a commit's parent tree
934
935 The experimental 'git history' command has been taught a new 'squash'
936 subcommand to fold a range of commits into a single commit, with any
937 descendants replayed on top.
938
1019 - Will merge to 'next'.
939 + Will merge to 'master'.
940 cf. <DK1KIF2OI8IF.11188A3YEQV1C@lfurio.us>
941 cf. <DK1KIH6CXW0X.1U2V3GU8L6HB7@lfurio.us>
942 source: <pull.2337.v10.git.git.1784536024.gitgitgadget@gmail.com>
@@ -1069,20 +989,21 @@ Release tarballs are available at:
989 source: <20260707-toon-git-replay-drop-merges-v7-0-808ab9b4afa6@iotcl.com>
990
991
1072 -* ps/cat-file-remote-object-info (2026-07-18) 13 commits
1073 - - cat-file: make remote-object-info allow-list adapt to the server
1074 - - cat-file: add remote-object-info to batch-command
1075 - - transport: add client support for object-info
1076 - - serve: advertise object-info feature
1077 - - protocol-caps: check object existence regardless of the attributes requested
1078 - - fetch-pack: move fetch initialization
1079 - - connect: make write_fetch_command_and_capabilities() more generic
1080 - - fetch-pack: move write_fetch_command_and_capabilities() to connect.c
1081 - - fetch-pack: use unsigned int for hash_algo variable
1082 - - fetch-pack: drop the static advertise_sid variable
1083 - - t1006: extract helper functions into new 'lib-cat-file.sh'
1084 - - cat-file: declare loop counter inside for()
1085 - - transport-helper: fix memory leak of helper on disconnect
992 +* ps/cat-file-remote-object-info (2026-07-24) 13 commits
993 + (merged to 'next' on 2026-07-24 at e436a42272)
994 + + cat-file: make remote-object-info allow-list adapt to the server
995 + + cat-file: add remote-object-info to batch-command
996 + + transport: add client support for object-info
997 + + serve: advertise object-info feature
998 + + protocol-caps: check object existence regardless of the attributes requested
999 + + fetch-pack: move fetch initialization
1000 + + connect: make write_fetch_command_and_capabilities() more generic
1001 + + fetch-pack: move write_fetch_command_and_capabilities() to connect.c
1002 + + fetch-pack: use unsigned int for hash_algo variable
1003 + + fetch-pack: drop the static advertise_sid variable
1004 + + t1006: extract helper functions into new 'lib-cat-file.sh'
1005 + + cat-file: declare loop counter inside for()
1006 + + transport-helper: fix memory leak of helper on disconnect
1007
1008 The 'remote-object-info' command has been added to 'git cat-file
1009 --batch-command', allowing clients to request object metadata
@@ -1091,8 +1012,8 @@ Release tarballs are available at:
1012 filtered on the client based on server-advertised capabilities,
1013 returning empty strings for inapplicable or unsupported fields.
1014
1094 - Needs review.
1095 - source: <20260718-ps-eric-work-rebase-v20-0-0c13962ac532@gmail.com>
1015 + Will merge to 'master'.
1016 + source: <20260724-ps-eric-work-rebase-v21-0-ba67f024fdff@gmail.com>
1017
1018
1019 * mm/diff-process-hunks (2026-07-15) 9 commits
@@ -1115,41 +1036,27 @@ Release tarballs are available at:
1036 Ejected for now, as it conflicts badly with 'mm/line-log-limited-ops'.
1037
1038 Expecting a reroll.
1118 - cf. <xmqq8q7aj3b0.fsf@gitster.g>
1039 cf. <CAC2QwmKRp90hmBAckug9PPvvD53Pi53q5csZhi15LRhzdQasQg@mail.gmail.com>
1040 source: <pull.2120.v5.git.1784149323.gitgitgadget@gmail.com>
1041
1042
1043 * ty/migrate-trust-executable-bit (2026-07-20) 4 commits
1124 - - environment: move has_symlinks into repo_config_values
1125 - - environment: move trust_executable_bit into repo_config_values
1126 - - read-cache: pass 'repo' to 'ce_mode_from_stat()'
1127 - - read-cache: remove redundant extern declarations
1044 + (merged to 'next' on 2026-07-23 at 4873f289dd)
1045 + + environment: move has_symlinks into repo_config_values
1046 + + environment: move trust_executable_bit into repo_config_values
1047 + + read-cache: pass 'repo' to 'ce_mode_from_stat()'
1048 + + read-cache: remove redundant extern declarations
1049
1050 The 'trust_executable_bit' (coming from the 'core.filemode'
1051 configuration) has been migrated into 'struct repo_config_values' to
1052 tie it to a specific repository instance.
1053
1133 - Will merge to 'next'.
1054 + Will merge to 'master'.
1055 cf. <alvNq8rXF/jofqUc@szeder.dev>
1056 cf. <xmqq8q7961xe.fsf@gitster.g>
1057 source: <20260720105335.3202013-1-cat@malon.dev>
1058
1059
1139 -* za/completion-hide-dotfiles (2026-06-20) 2 commits
1140 - - completion: hide dotfiles by default for path completion
1141 - - completion: hide dotfiles for selected path completion
1142 -
1143 - Path completion for commands like 'git rm' and 'git mv' has been
1144 - updated to hide dotfiles by default unless the user explicitly starts
1145 - the path with a dot, matching standard shell-completion behavior.
1146 -
1147 - Waiting for response, stalled.
1148 - cf. <xmqqik71t3nr.fsf@gitster.g>
1149 - cf. <xmqq1pe0g08t.fsf@gitster.g>
1150 - source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
1151 -
1152 -
1060 * ec/commit-fixup-options (2026-05-26) 2 commits
1061 - commit: allow -c/-C for all kinds of --fixup
1062 - commit: allow -m/-F for all kinds of --fixup
@@ -1162,21 +1069,7 @@ Release tarballs are available at:
1069 source: <cover.1779792311.git.erik@cervined.in>
1070
1071
1165 -* kh/doc-replay-config (2026-06-05) 4 commits
1166 - - doc: replay: move “default” to the right-hand side
1167 - - doc: replay: use a nested description list
1168 - - doc: replay: improve config description
1169 - - doc: link to config for git-replay(1)
1170 -
1171 - Documentation for 'git replay' has been updated to refer to its
1172 - configuration variables.
1173 -
1174 - Waiting for response for too long, stalled.
1175 - cf. <87cxwxofgv.fsf@emacs.iotcl.com>
1176 - source: <V3_CV_doc_replay_config.780@msgid.xyz>
1177 -
1178 -
1179 -* hn/branch-delete-merged (2026-07-22) 7 commits
1072 +* hn/branch-delete-merged (2026-07-24) 7 commits
1073 - branch: add --dry-run for --delete-merged
1074 - branch: add branch.<name>.deleteMerged opt-out
1075 - branch: add --delete-merged <branch>
@@ -1189,23 +1082,10 @@ Release tarballs are available at:
1082 to remove local branches that are already merged into their tracked
1083 remote-tracking branches.
1084
1192 - Needs review.
1085 + Will merge to 'next'?
1086 cf. <9b9b9a2c-dd0f-44f8-b80e-565eed9a55a8@gmail.com>
1087 cf. <xmqqik6an5t3.fsf@gitster.g>
1195 - source: <pull.2285.v20.git.git.1784704238.gitgitgadget@gmail.com>
1196 -
1197 -
1198 -* hn/checkout-track-fetch (2026-06-24) 2 commits
1199 - - checkout: extend --track with a "fetch" mode to refresh start-point
1200 - - branch: expose helpers for finding the remote owning a tracking ref
1201 -
1202 - The 'git checkout --track=...' command has been taught to optionally
1203 - fetch the branch from the remote that the new branch will work with.
1204 -
1205 - Waiting for response for too long, stalled.
1206 - cf. <xmqq5x37h6fj.fsf@gitster.g>
1207 - cf. <CAL71e4MiijEiM26TKJcOYT7L4pfQeMM_F2oT3U3igP-wOZm2Ag@mail.gmail.com>
1208 - source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
1088 + source: <pull.2285.v21.git.git.1784889377.gitgitgadget@gmail.com>
1089
1090
1091 * ps/shift-root-in-graph (2026-07-14) 7 commits
@@ -1247,5 +1127,4 @@ Release tarballs are available at:
1127
1128 Needs review.
1129 cf. <xmqqse5en8wz.fsf@gitster.g>
1250 - cf. <xmqqv7al9rbj.fsf@gitster.g>
1130 source: <pull.2149.v6.git.1783776466.gitgitgadget@gmail.com>