What's cooking (2026/07 #05)
Junio C Hamano committed
Jul 12, 2026 at 18:35 UTC
8e01790140c3c13eefb25f66e6fbd6ddb187c54b
1 file changed
+392
-290
whats-cooking.txt
+392
-290
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (Jul 2026, #04)
2
+Subject: What's cooking in git.git (Jul 2026, #05)
3
X-master-at: f60db8d575adb79761d363e026fb49bddf330c73
4
-X-next-at: 6434b31f5699143ab55cdfd0d7f1cdbbd37d82c1
4
+X-next-at: 8d093f411df65440e1ddb297f1180711f28b7488
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (Jul 2026, #04)
7
+What's cooking in git.git (Jul 2026, #05)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -50,6 +50,154 @@ Release tarballs are available at:
50
--------------------------------------------------
51
[New Topics]
52
53
+* js/pack-objects-delta-size-t (2026-07-09) 12 commits
54
+ - git-zlib: widen `git_deflate_bound()` to `size_t`
55
+ - t/helper/test-pack-deltas: widen `do_compress()`'s maxsize local to `size_t`
56
+ - http-push: widen `start_put()`'s size local from `ssize_t` to `size_t`
57
+ - diff: widen `deflate_it()`'s bound local from int to `size_t`
58
+ - archive-zip: widen `zlib_deflate_raw()`'s maxsize local to `size_t`
59
+ - packfile, git-zlib: widen `use_pack()` and zstream avail fields to `size_t`
60
+ - delta: widen `create_delta()` and `diff_delta()` to `size_t`
61
+ - pack-objects: widen `mem_usage` and `try_delta()`'s out-param to `size_t`
62
+ - pack-objects: widen `free_unpacked()` return to `size_t`
63
+ - pack-objects: widen delta-cache accounting to `size_t`
64
+ - delta: widen `create_delta_index()` parameter to `size_t`
65
+ - diff-delta: widen `struct delta_index`' size fields to `size_t`
66
+
67
+ The pack-objects and delta-encoding code paths have been updated to
68
+ use 'size_t' instead of 'unsigned long' for object sizes and offset
69
+ limits, avoiding potential truncation issues on 64-bit Windows.
70
+
71
+ Needs review.
72
+ source: <pull.2175.git.1783615780.gitgitgadget@gmail.com>
73
+
74
+
75
+* cl/b4-cover-change-id (2026-07-10) 1 commit
76
+ - b4: include change-id in cover template
77
+
78
+ The in-tree 'b4' cover letter template has been updated to include the
79
+ 'change-id' trailer, ensuring that sent tags generated by 'b4' contain
80
+ the required tracking information for subsequent runs.
81
+
82
+ Will merge to 'next'.
83
+ source: <20260710-add-change-id-to-b4-template-v1-1-1bd37a25064e@black-desk.cn>
84
+
85
+
86
+* ps/odb-stream-double-close-fix (2026-07-10) 1 commit
87
+ - object-file: fix closing object stream twice
88
+
89
+ The stream-based object signature verification path has been
90
+ corrected to avoid double-closing the stream on read errors.
91
+
92
+ Will merge to 'next'.
93
+ source: <20260710-pks-odb-stream-double-close-v1-1-d5fa233a37c7@pks.im>
94
+
95
+
96
+* pz/fetch-submodule-errors-config (2026-07-11) 3 commits
97
+ - fixup! fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
98
+ - fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
99
+ - submodule: fix premature failure in recursive submodule fetch
100
+
101
+ The 'git fetch' command has been updated to allow configuring how
102
+ submodule fetch errors are handled. A new configuration variable
103
+ 'fetch.submoduleErrors' and a corresponding '--submodule-errors'
104
+ command-line option have been introduced, allowing users to make
105
+ submodule fetch errors non-fatal (warn instead of fail). Additionally,
106
+ a premature failure during recursive submodule fetches has been fixed
107
+ by deferring the error until the OID-based retry phase also fails.
108
+
109
+ Needs review.
110
+ source: <20260710122655.3066377-1-paulius.zaleckas@gmail.com>
111
+
112
+
113
+* gr/add-e-use-apply-api (2026-07-10) 1 commit
114
+ - builtin/add.c: replace run_command() with direct apply_all_patches() call
115
+
116
+ The application of the edited patch in 'git add -e' has been
117
+ refactored to use the internal apply API directly, avoiding the need
118
+ to spawn a 'git apply' subprocess.
119
+
120
+ Needs review.
121
+ source: <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com>
122
+
123
+
124
+* fz/rebase-autosquash-empty (2026-07-11) 1 commit
125
+ . sequencer: honor --empty when a fixup!/squash! empties its target
126
+
127
+ A commit that is emptied by melding a 'fixup!' or 'squash!' commit
128
+ during 'git rebase --autosquash' is now handled according to the
129
+ '--empty' option, allowing it to be dropped, kept, or to halt the
130
+ rebase.
131
+
132
+ Waiting for response(s) to review comment(s).
133
+ cf. <xmqqh5m494yh.fsf@gitster.g>
134
+ source: <20260711-fz-autosquash-empty-v3-1-d227b63eb511@gmail.com>
135
+
136
+--------------------------------------------------
137
+[Stalled]
138
+
139
+* kh/doc-trailers (2026-06-10) 10 commits
140
+ - doc: interpret-trailers: document comment line treatment
141
+ - doc: interpret-trailers: commit to “trailer block” term
142
+ - doc: interpret-trailers: join new-trailers again
143
+ - doc: interpret-trailers: add key format example
144
+ - doc: interpret-trailers: explain key format
145
+ - doc: interpret-trailers: explain the format after the intro
146
+ - doc: interpret-trailers: not just for commit messages
147
+ - doc: interpret-trailers: use “metadata” in Name as well
148
+ - doc: interpret-trailers: replace “lines” with “metadata”
149
+ - doc: interpret-trailers: stop fixating on RFC 822
150
+
151
+ Documentation for 'git interpret-trailers' has been updated to explain
152
+ the format of trailer keys (alphanumeric characters and hyphens),
153
+ replace outdated terminology, define key terms upfront, and document
154
+ how comment lines in the input are treated.
155
+
156
+ Expecting a reroll for too long, stalled.
157
+ cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
158
+ source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
159
+
160
+
161
+* sn/rebase-update-refs-symrefs (2026-06-03) 1 commit
162
+ - rebase: skip branch symref aliases
163
+
164
+ 'git rebase --update-refs' has been taught to resolve local branch
165
+ symrefs to their referents before queuing updates, ensuring aliases of
166
+ the current branch are skipped and duplicate updates are avoided to
167
+ prevent failures when branch aliases are present.
168
+
169
+ Waiting for response(s) to review comment(s) for too long, stalled.
170
+ cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
171
+ source: <pull.2126.v2.git.1780482436865.gitgitgadget@gmail.com>
172
+
173
+
174
+* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
175
+ - http: preserve wwwauth_headers across redirects
176
+
177
+ When 'cURL' follows a redirect, the 'WWW-Authenticate' headers from
178
+ the redirect target were lost because 'credential_from_url()' cleared
179
+ the credential state. This has been fixed by preserving the collected
180
+ headers across the redirect update.
181
+
182
+ Will discard.
183
+ cf. <xmqqmrw2zavx.fsf@gitster.g>
184
+ source: <20260602161150.1527493-1-aplattner@nvidia.com>
185
+
186
+
187
+* jt/config-lock-timeout (2026-05-17) 1 commit
188
+ - config: retry acquiring config.lock, configurable via core.configLockTimeout
189
+
190
+ Configuration file locking has been updated to retry for a short
191
+ period, avoiding failures when multiple processes attempt to update
192
+ the configuration simultaneously.
193
+
194
+ Waiting for response(s) to review comment(s) for too long, stalled.
195
+ cf. <agrIrGwSMFlKTx9x@pks.im>
196
+ source: <20260517132111.1014901-1-joerg@thalheim.io>
197
+
198
+--------------------------------------------------
199
+[Cooking]
200
+
201
* dm/submodule-update-i-shorthand (2026-07-07) 1 commit
202
- submodule--helper: accept '-i' shorthand for update --init
203
@@ -57,42 +205,45 @@ Release tarballs are available at:
205
'git submodule update' command until it was broken in a modernization
206
of the option-parsing code, has been restored.
207
60
- Will merge to 'next'?
208
+ Needs review.
209
source: <20260708-submodule-init-v1-1-719456077262@atmark-techno.com>
210
211
212
* hf/unpack-trees-quadratic-scan (2026-07-08) 1 commit
65
- - unpack-trees: avoid quadratic index scan in next_cache_entry()
213
+ (merged to 'next' on 2026-07-12 at 744f1aede4)
214
+ + unpack-trees: avoid quadratic index scan in next_cache_entry()
215
216
The cache-scanning loop in 'next_cache_entry()' has been optimized
217
to avoid rescanning already-unpacked index entries, preventing a
218
quadratic performance slow-down when diffing the working tree
219
against a commit with a pathspec matching early index entries.
220
72
- Will merge to 'next'?
221
+ Will merge to 'master'.
222
cf. <xmqqpl0xqh3n.fsf@gitster.g>
223
source: <pull.2353.v2.git.git.1783546933992.gitgitgadget@gmail.com>
224
225
226
* jc/relnotes-2.55-rust-fix (2026-07-07) 1 commit
78
- - Rust: fix description in Release Notes to 2.55
227
+ (merged to 'next' on 2026-07-10 at 444d202a75)
228
+ + Rust: fix description in Release Notes to 2.55
229
230
A description in the release notes for Git 2.55.0 has been
231
retroactively updated to clarify that Rust support is enabled by
232
default, but still optional, and will become mandatory in Git 3.0.
233
84
- Will merge to 'next'?
234
+ Will merge to 'master'.
235
source: <xmqqpl0y4rpg.fsf@gitster.g>
236
237
238
* jc/submitting-patches-abandoning (2026-07-08) 1 commit
89
- - SubmittingPatches: document how to retract a topic
239
+ (merged to 'next' on 2026-07-10 at 41b9b65b23)
240
+ + SubmittingPatches: document how to retract a topic
241
242
The 'SubmittingPatches' document has been updated to explicitly
243
describe the expectation for contributors to retract or abandon their
244
patch series when they are no longer pursuing it.
245
95
- Will merge to 'next'?
246
+ Will merge to 'master'.
247
cf. <ak6U07K1dQPlXxIp@nixos>
248
source: <xmqqpl0xv25e.fsf@gitster.g>
249
@@ -119,7 +270,7 @@ Release tarballs are available at:
270
source: <20260708035235.GA41491@coredump.intra.peff.net>
271
272
122
-* mm/lib-httpd-cgi-safe (2026-07-07) 3 commits
273
+* mm/lib-httpd-cgi-safe (2026-07-10) 3 commits
274
- t/README: document writing concurrency-safe helpers
275
- t/lib-httpd: make http-429 first-request check atomic
276
- t/lib-httpd: fix apply-one-time-script race under concurrent requests
@@ -128,9 +279,8 @@ Release tarballs are available at:
279
to use atomic filesystem operations, preventing race conditions when
280
Apache handles concurrent requests.
281
131
- Expecting a reroll.
132
- cf. <CAC2QwmKuHUP6_287T9SOLdjLdb=b4EqV4qJ_NnYCkGP0-d6qHA@mail.gmail.com>
133
- source: <pull.2171.git.1783479584.gitgitgadget@gmail.com>
282
+ Needs review.
283
+ source: <pull.2171.v2.git.1783704657.gitgitgadget@gmail.com>
284
285
286
* mm/sideband-ansi-sgr-colon-fix (2026-05-13) 1 commit
@@ -172,8 +322,9 @@ Release tarballs are available at:
322
323
324
* tc/bundle-uri-empty-fix (2026-07-08) 2 commits
175
- - bundle-uri: stop sending invalid bundle configuration
176
- - bundle-uri: drain remaining response on invalid bundle-uri lines
325
+ (merged to 'next' on 2026-07-12 at 9da32fdaf7)
326
+ + bundle-uri: stop sending invalid bundle configuration
327
+ + bundle-uri: drain remaining response on invalid bundle-uri lines
328
329
The client-side parser of server-advertised bundle-URI list has been
330
updated to drain the remaining response in order to avoid protocol
@@ -181,48 +332,53 @@ Release tarballs are available at:
332
the server-side has been taught to omit empty configuration values
333
instead of sending invalid key-value lines.
334
184
- Will merge to 'next'?
335
+ Will merge to 'master'.
336
cf. <xmqqtsq9qj5k.fsf@gitster.g>
337
source: <20260708-toon-bundle-uri-no-uri-v2-0-09a03d8db556@iotcl.com>
338
339
340
* gr/t1410-reflog-exit-code (2026-07-08) 1 commit
190
- - t1410-reflog.sh: avoid suppressing git's exit code in pipelines
341
+ (merged to 'next' on 2026-07-10 at d0cf55ea54)
342
+ + t1410-reflog.sh: avoid suppressing git's exit code in pipelines
343
344
The pipelines in 't1410-reflog.sh' have been replaced with the
345
'test_stdout_line_count' helper to avoid suppressing the exit code of
346
'git' commands, ensuring failures are not hidden from the test suite.
347
196
- Will merge to 'next'?
348
+ Will merge to 'master'.
349
cf. <xmqqtsq8p18x.fsf@gitster.g>
350
source: <20260709051229.40363-1-gatlavishweshwarreddy26@gmail.com>
351
352
201
-* js/coverity-fixes-null-safety (2026-07-09) 11 commits
202
- - shallow: fix NULL dereference
203
- - bisect: ensure non-NULL `head` before using it
204
- - pack-bitmap: handle missing bitmap for base MIDX
205
- - revision: avoid dereferencing NULL in `add_parents_only()`
206
- - replay: die when --onto does not peel to a commit
207
- - bisect: handle NULL commit in `bisect_successful()`
208
- - mailsplit: move NULL check before first use of file handle
209
- - reftable/stack: guard against NULL list_file in stack_destroy
210
- - remote: guard `remote_tracking()` against NULL remote
211
- - diff: handle NULL return from repo_get_commit_tree()
212
- - diffcore-break: guard against NULLed queue entries in merge loop
353
+* js/coverity-fixes-null-safety (2026-07-10) 12 commits
354
+ (merged to 'next' on 2026-07-12 at 8d093f411d)
355
+ + shallow: give write_one_shallow() its own hex buffer
356
+ + shallow: fix NULL dereference
357
+ + bisect: ensure non-NULL `head` before using it
358
+ + pack-bitmap: handle missing bitmap for base MIDX
359
+ + revision: avoid dereferencing NULL in `add_parents_only()`
360
+ + replay: die when --onto does not peel to a commit
361
+ + bisect: handle NULL commit in `bisect_successful()`
362
+ + mailsplit: move NULL check before first use of file handle
363
+ + reftable/stack: guard against NULL list_file in stack_destroy
364
+ + remote: guard `remote_tracking()` against NULL remote
365
+ + diff: handle NULL return from repo_get_commit_tree()
366
+ + diffcore-break: guard against NULLed queue entries in merge loop
367
368
Various code paths have been hardened against potential NULL-pointer
369
dereferences and invalid file descriptor accesses flagged by
370
Coverity.
371
218
- Needs review.
219
- source: <pull.2174.git.1783590159.gitgitgadget@gmail.com>
372
+ Will merge to 'master'.
373
+ cf. <xmqqa4ryg84e.fsf@gitster.g>
374
+ source: <pull.2174.v2.git.1783683577.gitgitgadget@gmail.com>
375
376
222
-* ps/odb-for-each-object-filter (2026-07-09) 8 commits
377
+* ps/odb-for-each-object-filter (2026-07-10) 9 commits
378
- builtin/cat-file: filter objects via object database
379
- odb: introduce object filters to `odb_for_each_object()`
380
- pack-bitmap: introduce function to open bitmap for a single source
381
+ - pack-bitmap: drop `_1` suffix from functions that open bitmaps
382
- pack-bitmap: iterate object sources when opening bitmaps
383
- pack-bitmap: allow aborting iteration of bitmapped objects
384
- pack-bitmap: mark object filter as `const`
@@ -230,115 +386,53 @@ Release tarballs are available at:
386
- Merge branch 'ps/odb-drop-whence' into ps/odb-for-each-object-filter
387
(this branch uses ps/odb-drop-whence.)
388
233
- The object database enumeration interface 'odb_for_each_object()'
234
- has learned to accept object filters, allowing the underlying
235
- backends to optimize the traversal by using reachability bitmaps
236
- when available. 'git cat-file --batch-all-objects' has been updated
237
- to use this generic interface, simplifying its code and avoiding
238
- direct access to ODB backend internals.
389
+ The object database enumeration interface 'odb_for_each_object()' has
390
+ been taught to accept object filters, allowing the underlying backends
391
+ to optimize the traversal by using reachability bitmaps when
392
+ available. 'git cat-file --batch-all-objects' has been updated to
393
+ use this generic interface, simplifying its code and avoiding direct
394
+ access to ODB backend internals.
395
396
Needs review.
241
- source: <20260709-pks-odb-for-each-object-filter-v1-0-82fe014b12b3@pks.im>
397
+ source: <20260710-pks-odb-for-each-object-filter-v2-0-3710a9cc165a@pks.im>
398
399
400
* ps/refs-wo-the-repository (2026-07-09) 8 commits
245
- . refs: remove remaining uses of `the_repository`
246
- . worktree: pass repository to public functions
247
- . worktree: pass repository to file-local functions
248
- . worktree: refactor code to use available repositories
249
- . refs/files: drop `USE_THE_REPOSITORY_VARIABLE`
250
- . refs/packed: drop `USE_THE_REPOSITORY_VARIABLE`
251
- . refs/packed: de-globalize handling of "core.packedRefsTimeout"
252
- . Merge branch 'ps/refs-writing-subcommands' into ps/refs-wo-the-repository
401
+ - refs: remove remaining uses of `the_repository`
402
+ - worktree: pass repository to public functions
403
+ - worktree: pass repository to file-local functions
404
+ - worktree: refactor code to use available repositories
405
+ - refs/files: drop `USE_THE_REPOSITORY_VARIABLE`
406
+ - refs/packed: drop `USE_THE_REPOSITORY_VARIABLE`
407
+ - refs/packed: de-globalize handling of "core.packedRefsTimeout"
408
+ - Merge branch 'ps/refs-writing-subcommands' into ps/refs-wo-the-repository
409
(this branch uses ps/refs-writing-subcommands.)
410
255
- The ref subsystem and the worktree API have been refactored to pass
256
- a repository pointer down the call chain, allowing them to drop
411
+ The ref subsystem and the worktree API have been refactored to pass a
412
+ repository pointer down the call chain, allowing them to drop
413
references to the global 'the_repository' variable. As part of this,
414
the handling of the 'core.packedRefsTimeout' configuration has been
415
moved into the per-repository ref store structure.
416
261
- Needs review.
417
+ Expecting a reroll.
418
+ cf. <alCJpxAQwpTQ4g93@pks.im>
419
source: <20260709-pks-refs-wo-the-repository-v1-0-1ad6f27529c9@pks.im>
420
421
422
* kk/commit-graph-topo-levels-fix (2026-07-09) 2 commits
266
- - commit-graph: propagate topo_levels slab to all chain layers
267
- - commit-graph: add trace2 instrumentation for generation DFS
423
+ (merged to 'next' on 2026-07-12 at 295a5f9b34)
424
+ + commit-graph: propagate topo_levels slab to all chain layers
425
+ + commit-graph: add trace2 instrumentation for generation DFS
426
269
- The 'topo_levels' slab was only propagated to the topmost layer of a
270
- split commit-graph chain, causing incremental writes to recompute
271
- topological levels for commits in base layers. This has been
427
+ The 'topo_levels' slab was propagated only to the topmost layer of a
428
+ split commit-graph chain, causing topological levels for commits in
429
+ base layers to be recomputed during incremental writes. This has been
430
corrected.
431
274
- Will merge to 'next'?
275
- cf. <ak-ljlV33GLigFf6@pks.im>
432
+ Will merge to 'master'.
433
+ cf. <alFu8gZURKhYr1VE@com-79390>
434
source: <pull.2170.v2.git.1783609382.gitgitgadget@gmail.com>
435
278
---------------------------------------------------
279
-[Stalled]
280
-
281
-* kh/doc-trailers (2026-06-10) 10 commits
282
- - doc: interpret-trailers: document comment line treatment
283
- - doc: interpret-trailers: commit to “trailer block” term
284
- - doc: interpret-trailers: join new-trailers again
285
- - doc: interpret-trailers: add key format example
286
- - doc: interpret-trailers: explain key format
287
- - doc: interpret-trailers: explain the format after the intro
288
- - doc: interpret-trailers: not just for commit messages
289
- - doc: interpret-trailers: use “metadata” in Name as well
290
- - doc: interpret-trailers: replace “lines” with “metadata”
291
- - doc: interpret-trailers: stop fixating on RFC 822
292
-
293
- Documentation for 'git interpret-trailers' has been updated to explain
294
- the format of trailer keys (alphanumeric characters and hyphens),
295
- replace outdated terminology, define key terms upfront, and document
296
- how comment lines in the input are treated.
297
-
298
- Expecting a reroll for too long. stalled.
299
- cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
300
- source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
301
-
302
-
303
-* sn/rebase-update-refs-symrefs (2026-06-03) 1 commit
304
- - rebase: skip branch symref aliases
305
-
306
- 'git rebase --update-refs' has been taught to resolve local branch
307
- symrefs to their referents before queuing updates, ensuring aliases of
308
- the current branch are skipped and duplicate updates are avoided to
309
- prevent failures when branch aliases are present.
310
-
311
- Waiting for response(s) to review comment(s) for too long, stalled.
312
- cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
313
- source: <pull.2126.v2.git.1780482436865.gitgitgadget@gmail.com>
314
-
315
-
316
-* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
317
- - http: preserve wwwauth_headers across redirects
318
-
319
- When 'cURL' follows a redirect, the 'WWW-Authenticate' headers from
320
- the redirect target were lost because 'credential_from_url()' cleared
321
- the credential state. This has been fixed by preserving the collected
322
- headers across the redirect update.
323
-
324
- Will discard.
325
- cf. <xmqqmrw2zavx.fsf@gitster.g>
326
- source: <20260602161150.1527493-1-aplattner@nvidia.com>
327
-
328
-
329
-* jt/config-lock-timeout (2026-05-17) 1 commit
330
- - config: retry acquiring config.lock, configurable via core.configLockTimeout
331
-
332
- Configuration file locking has been updated to retry for a short
333
- period, avoiding failures when multiple processes attempt to update
334
- the configuration simultaneously.
335
-
336
- Waiting for response(s) to review comment(s) for too long, stalled.
337
- cf. <agrIrGwSMFlKTx9x@pks.im>
338
- source: <20260517132111.1014901-1-joerg@thalheim.io>
339
-
340
---------------------------------------------------
341
-[Cooking]
436
437
* ds/sparse-index-ita-crash (2026-07-06) 1 commit
438
- sparse-index: avoid crash on intent-to-add entry outside the cone
@@ -361,23 +455,24 @@ Release tarballs are available at:
455
script on repositories already managed by the new tool.
456
457
Expecting a reroll.
364
- cf. <27215.27575.968985.583226@chiark.greenend.org.uk>
458
+ cf. <27219.20156.438730.881821@chiark.greenend.org.uk>
459
source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
460
461
368
-* kk/reftable-tombstone-quadratic-fix (2026-07-09) 2 commits
369
- - reftable: fix quadratic behavior in the presence of tombstones
370
- - t/perf: add perf test for ref tombstone scenarios
462
+* kk/reftable-tombstone-quadratic-fix (2026-07-10) 2 commits
463
+ (merged to 'next' on 2026-07-12 at 4e60bb0027)
464
+ + reftable: fix quadratic behavior in the presence of tombstones
465
+ + t/perf: add perf test for ref tombstone scenarios
466
372
- The performance of ref updates and reads using the reftable backend in
373
- the presence of many deletion tombstone records has been optimized by
374
- removing the tombstone suppression flag from the merged iterator and
375
- instead skipping tombstones at higher-level call sites where iteration
376
- bounds are known.
467
+ The performance of ref updates and reads using the 'reftable' backend
468
+ in the presence of many deletion tombstone records has been optimized
469
+ by removing the tombstone suppression flag from the merged iterator
470
+ and instead skipping tombstones at higher-level call sites where
471
+ iteration bounds are known.
472
378
- Expecting a reroll.
379
- cf. <CAL71e4PrtZwB8TMg3eBj=LzC7ik+C8yxLYEEEP7SDgMPiWSs0Q@mail.gmail.com>
380
- source: <pull.2166.v2.git.1783598912.gitgitgadget@gmail.com>
473
+ Will merge to 'master'.
474
+ cf. <alECc90WZ9RPqMaA@pks.im>
475
+ source: <pull.2166.v3.git.1783679767.gitgitgadget@gmail.com>
476
477
478
* rs/blame-abbrev-marks (2026-07-06) 1 commit
@@ -406,17 +501,18 @@ Release tarballs are available at:
501
502
503
* bc/parse-options-exit-0-on-help (2026-07-07) 4 commits
409
- - parse-options: exit 0 on -h
410
- - rev-parse: have --parseopt callers exit 0 on --help
411
- - parse-options: add a separate case for help output on error
412
- - t1517: skip svn tests if svn is not installed
504
+ (merged to 'next' on 2026-07-10 at 775654e447)
505
+ + parse-options: exit 0 on -h
506
+ + rev-parse: have --parseopt callers exit 0 on --help
507
+ + parse-options: add a separate case for help output on error
508
+ + t1517: skip svn tests if svn is not installed
509
414
- Option parsing with 'git rev-parse --parseopt' and most 'git'
510
+ Option parsing with 'git rev-parse --parseopt' and in most 'git'
511
subcommands has been updated to exit with 0 (instead of 129) when the
512
help option ('-h' or '--help') is requested directly by the user,
513
aligning with standard Unix convention.
514
419
- Will merge to 'next'.
515
+ Will merge to 'master'.
516
cf. <20260708035930.GB41684@coredump.intra.peff.net>
517
source: <20260708001557.3581080-1-sandals@crustytoothpaste.net>
518
@@ -470,17 +566,16 @@ Release tarballs are available at:
566
source: <20260702075234.GA1548258@coredump.intra.peff.net>
567
568
473
-* ml/t9811-replace-test-f (2026-07-02) 1 commit
569
+* ml/t9811-replace-test-f (2026-07-11) 2 commits
570
- t9811: replace 'test -f' and '! test -f' with 'test_path_*'
571
+ - t9811: break long && chains into multiple lines
572
573
The test script 't/t9811-git-p4-label-import.sh' has been
574
modernized to use 'test_path_is_file' and 'test_path_is_missing'
575
instead of raw 'test -f' and '! test -f' calls.
576
480
- Expecting a reroll.
481
- cf. <akdwp_a2EuhVoGVW@pks.im>
482
- cf. <CAO=vGZpMe3dxyzFVwR7BWBxaAZ-z9Kw3CqQ0kAe5ZZGSQszkzw@mail.gmail.com>
483
- source: <20260702140704.65805-1-marcelomlage@usp.br>
577
+ Needs review.
578
+ source: <20260711160447.99708-1-marcelomlage@usp.br>
579
580
581
* ps/t-fixes-for-git-test-long (2026-07-05) 9 commits
@@ -521,9 +616,10 @@ Release tarballs are available at:
616
617
618
* sn/osxkeychain-rust-universal (2026-07-07) 3 commits
524
- - contrib: wire up osxkeychain in contrib/Makefile on macOS
525
- - Makefile: support universal macOS builds via RUST_TARGETS
526
- - Makefile: add $(RUST_LIB) prerequisite to osxkeychain
619
+ (merged to 'next' on 2026-07-10 at fe82b5d188)
620
+ + contrib: wire up osxkeychain in contrib/Makefile on macOS
621
+ + Makefile: support universal macOS builds via RUST_TARGETS
622
+ + Makefile: add $(RUST_LIB) prerequisite to osxkeychain
623
624
The build system has been updated to support building universal macOS
625
binaries when 'Rust' is enabled, by compiling separate static archives
@@ -531,36 +627,35 @@ Release tarballs are available at:
627
using the macOS 'lipo' tool. The 'git-credential-osxkeychain' helper
628
has been updated to link against '$(RUST_LIB)' when 'Rust' is enabled.
629
534
- Will merge to 'next'?
630
+ Will merge to 'master'.
631
cf. <xmqq4ii9teym.fsf@gitster.g>
632
source: <pull.2288.v8.git.git.1783480879.gitgitgadget@gmail.com>
633
634
539
-* cl/conditional-config-on-worktree-path (2026-07-08) 3 commits
540
- . config: add "worktree" and "worktree/i" includeIf conditions
541
- . repository: keep a symlink-preserving copy of the worktree path
542
- . config: refactor include_by_gitdir() into include_by_path()
635
+* cl/conditional-config-on-worktree-path (2026-07-09) 2 commits
636
+ - config: add "worktree" and "worktree/i" includeIf conditions
637
+ - config: refactor include_by_gitdir() into include_by_path()
638
639
The '[includeIf "condition"]' conditional inclusion facility for
640
configuration files has been taught to use the location of the
641
worktree in its condition.
642
643
Needs review.
549
- cf. <ak9zWopOWpRVHmmS@pks.im>
550
- cf. <xmqqzezzkibu.fsf@gitster.g>
551
- source: <20260709-includeif-worktree-v7-0-e87e705e8df6@black-desk.cn>
644
+ source: <20260710-includeif-worktree-v8-0-04686d8a616c@black-desk.cn>
645
646
647
* kk/commit-reach-find-all-fix (2026-06-29) 2 commits
555
- - commit-reach: guard !FIND_ALL early exit with generation ordering check
556
- - t6600: add test for merge-base early exit with clock skew
648
+ (merged to 'next' on 2026-07-10 at 0444c74d81)
649
+ + commit-reach: guard !FIND_ALL early exit with generation ordering check
650
+ + t6600: add test for merge-base early exit with clock skew
651
+ (this branch is used by kk/merge-base-exhaustion.)
652
558
- The early-exit optimization in 'paint_down_to_common()' has been gated
559
- on the queue being generation-ordered. This fixes a bug where 'git
560
- merge-base' (without '--all') could return incorrect results on
561
- repositories with v1 commit graphs and clock skew.
653
+ The early-exit optimization in 'paint_down_to_common()' has been
654
+ gated on the queue being generation-ordered, fixing a bug where
655
+ 'git merge-base' (without '--all') could return incorrect results
656
+ on repositories with v1 commit graphs and clock skew.
657
563
- Will merge to 'next'.
658
+ Will merge to 'master'.
659
cf. <xmqqjyr5v1gu.fsf@gitster.g>
660
source: <pull.2162.git.1782739162.gitgitgadget@gmail.com>
661
@@ -568,8 +663,8 @@ Release tarballs are available at:
663
* bl/t7412-use-test-path-helpers (2026-06-29) 1 commit
664
- submodule absorbgitdirs tests: use test_* helper functions
665
571
- 't7412' that tests 'git submodule absorbgitdirs' has been modernized
572
- to use 'test_path_is_file', 'test_path_is_dir', and
666
+ The test script 't7412' that tests 'git submodule absorbgitdirs' has
667
+ been modernized to use 'test_path_is_file', 'test_path_is_dir', and
668
'test_path_is_missing' helper functions instead of raw 'test -[fde]'
669
commands.
670
@@ -593,22 +688,23 @@ Release tarballs are available at:
688
689
690
* ps/setup-split-discovery-and-setup (2026-07-07) 16 commits
596
- - setup: mark `set_git_work_tree()` as file-local
597
- - setup: pass worktree to `init_db()`
598
- - setup: drop redundant configuration of `startup_info->have_repository`
599
- - setup: make repository discovery self-contained
600
- - setup: propagate prefix via repository discovery
601
- - setup: drop static `cwd` variable
602
- - setup: move prefix into repository
603
- - setup: embed repository format in discovery
604
- - setup: introduce explicit repository discovery
605
- - setup: split up concerns of `setup_git_env_internal()`
606
- - setup: unify setup of shallow file
607
- - setup: mark bogus worktree in `apply_repository_format()`
608
- - setup: rename `check_repository_format_gently()`
609
- - Merge branch 'jk/repo-info-path-keys' into ps/setup-split-discovery-and-setup
610
- - Merge branch 'ps/setup-drop-global-state' into ps/setup-split-discovery-and-setup
611
- - Merge branch 'ps/refs-onbranch-fixes' into ps/setup-split-discovery-and-setup
691
+ (merged to 'next' on 2026-07-10 at 1691a942ab)
692
+ + setup: mark `set_git_work_tree()` as file-local
693
+ + setup: pass worktree to `init_db()`
694
+ + setup: drop redundant configuration of `startup_info->have_repository`
695
+ + setup: make repository discovery self-contained
696
+ + setup: propagate prefix via repository discovery
697
+ + setup: drop static `cwd` variable
698
+ + setup: move prefix into repository
699
+ + setup: embed repository format in discovery
700
+ + setup: introduce explicit repository discovery
701
+ + setup: split up concerns of `setup_git_env_internal()`
702
+ + setup: unify setup of shallow file
703
+ + setup: mark bogus worktree in `apply_repository_format()`
704
+ + setup: rename `check_repository_format_gently()`
705
+ + Merge branch 'jk/repo-info-path-keys' into ps/setup-split-discovery-and-setup
706
+ + Merge branch 'ps/setup-drop-global-state' into ps/setup-split-discovery-and-setup
707
+ + Merge branch 'ps/refs-onbranch-fixes' into ps/setup-split-discovery-and-setup
708
709
The repository discovery and repository configuration phases, which
710
were previously intertwined in 'setup.c', have been split. Repository
@@ -617,7 +713,7 @@ Release tarballs are available at:
713
repository configuration to initialize the repository, paving the way
714
for clean unification of repository configuration.
715
620
- Will merge to 'next'.
716
+ Will merge to 'master'.
717
cf. <87h5m9om0j.fsf@emacs.iotcl.com>
718
source: <20260707-pks-setup-split-discovery-and-setup-v2-0-aab372cd227c@pks.im>
719
@@ -715,9 +811,9 @@ Release tarballs are available at:
811
- repack: unconditionally exclude non-kept packs
812
813
'git repack' has been taught to accept '--geometric' and '--cruft'
718
- together. When both are given, the geometric repack rolls up non-cruft
719
- packs as usual, while a separate cruft pack is written to collect
720
- unreachable objects.
814
+ together. When both are given, non-cruft packs are rolled up by the
815
+ geometric repack as usual, while a separate cruft pack is written to
816
+ collect unreachable objects.
817
818
Waiting for response(s) to review comment(s).
819
cf. <aj8cOhH6hGVZIFft@nand.local>
@@ -749,7 +845,7 @@ Release tarballs are available at:
845
source: <20260624093618.17456-1-antonio.destefani08@gmail.com>
846
847
752
-* jt/receive-pack-use-odb-transactions (2026-07-08) 11 commits
848
+* jt/receive-pack-use-odb-transactions (2026-07-10) 11 commits
849
- builtin/receive-pack: stage incoming objects via ODB transactions
850
- builtin/receive-pack: drop redundant tmpdir env
851
- odb/transaction: introduce ODB transaction flags
@@ -766,9 +862,8 @@ Release tarballs are available at:
862
interfaces instead of directly managing 'tmp_objdir' for staging
863
incoming objects, bringing it closer to being ODB backend agnostic.
864
769
- Expecting a reroll.
770
- cf. <ak-ntVKQ8XqMr6zv@denethor>
771
- source: <20260708235925.3992097-1-jltobler@gmail.com>
865
+ Needs review.
866
+ source: <20260710163722.2962278-1-jltobler@gmail.com>
867
868
869
* ps/odb-drop-whence (2026-07-02) 7 commits
@@ -792,24 +887,25 @@ Release tarballs are available at:
887
888
889
* ps/reftable-hardening (2026-07-03) 12 commits
795
- - reftable/table: fix OOB read on truncated table
796
- - reftable/table: fix NULL pointer access when seeking to bogus offsets
797
- - reftable/block: fix OOB read with bogus restart offset
798
- - reftable/block: fix use of uninitialized memory when binsearch fails
799
- - reftable/block: fix OOB read with bogus restart count
800
- - reftable/block: fix OOB read with bogus block size
801
- - reftable/block: fix OOB write with bogus inflated log size
802
- - t/unit-tests: introduce test helper to write reftable blocks
803
- - reftable/record: don't abort when decoding invalid ref value type
804
- - reftable/basics: fix OOB read on binary search of empty range
805
- - oss-fuzz: add fuzzer for parsing reftables
806
- - meson: support building fuzzers with libFuzzer
890
+ (merged to 'next' on 2026-07-10 at b8f4dd0ab9)
891
+ + reftable/table: fix OOB read on truncated table
892
+ + reftable/table: fix NULL pointer access when seeking to bogus offsets
893
+ + reftable/block: fix OOB read with bogus restart offset
894
+ + reftable/block: fix use of uninitialized memory when binsearch fails
895
+ + reftable/block: fix OOB read with bogus restart count
896
+ + reftable/block: fix OOB read with bogus block size
897
+ + reftable/block: fix OOB write with bogus inflated log size
898
+ + t/unit-tests: introduce test helper to write reftable blocks
899
+ + reftable/record: don't abort when decoding invalid ref value type
900
+ + reftable/basics: fix OOB read on binary search of empty range
901
+ + oss-fuzz: add fuzzer for parsing reftables
902
+ + meson: support building fuzzers with libFuzzer
903
904
The reftable code has been hardened against corrupted tables by
905
fixing out-of-bounds writes, out-of-bounds reads, and abort calls
906
during parsing.
907
812
- Will merge to 'next'?
908
+ Will merge to 'master'.
909
cf. <877bn5obz9.fsf@emacs.iotcl.com>
910
source: <20260703-pks-reftable-hardening-v3-0-b87c555b9920@pks.im>
911
@@ -821,7 +917,7 @@ Release tarballs are available at:
917
918
When 'git push origin/main' or 'git branch origin main' is run, the
919
command is now recognized as a potential typo, and advice has been
824
- added to offer a typofix.
920
+ added to offer a typo fix.
921
922
Will merge to 'master'.
923
cf. <xmqqfr272lq7.fsf@gitster.g>
@@ -840,7 +936,7 @@ Release tarballs are available at:
936
source: <xmqqmrwdxrat.fsf@gitster.g>
937
938
843
-* ty/migrate-excludes-file (2026-07-09) 9 commits
939
+* ty/migrate-excludes-file (2026-07-12) 9 commits
940
- environment: move object_creation_mode into repo_config_values
941
- environment: move autorebase into repo_config_values
942
- environment: move push_default into repo_config_values
@@ -855,8 +951,9 @@ Release tarballs are available at:
951
(including 'editor_program', 'pager_program', 'askpass_program', and
952
'push_default') have been migrated into the per-repository structure.
953
858
- Needs review.
859
- source: <20260709161145.13349-1-cat@malon.dev>
954
+ Expecting a reroll.
955
+ cf. <2a39cee9-1082-48aa-b42e-e12c34fa0e29@malon.dev>
956
+ source: <20260712111734.1073514-1-cat@malon.dev>
957
958
959
* dk/meson-enable-use-nsec-build (2026-06-20) 1 commit
@@ -865,14 +962,13 @@ Release tarballs are available at:
962
The 'USE_NSEC' build knob, which enables support for sub-second file
963
timestamp resolution, has been wired up to the Meson build system.
964
868
- Expecting a reroll.
869
- cf. <CALnO6CDm74rCBQu6Q0djsvtuw5U14V=PApptcZTgP+pic1f_AA@mail.gmail.com>
870
- cf. <ajjuoS5Qc3K0nCRl@pks.im>
871
- cf. <akIL6oJgUv8J8SB2@pks.im>
965
+ Will discard.
966
+ cf. <xmqqa4rx9mb5.fsf@gitster.g>
967
source: <c4c5ade901ff95b0f95939ea818870e4f3d59da1.1781971201.git.ben.knoble+github@gmail.com>
968
969
875
-* ps/libgit-in-subdir (2026-06-30) 3 commits
970
+* ps/libgit-in-subdir (2026-07-10) 4 commits
971
+ - fixup! Move libgit.a sources into separate "lib/" directory
972
- Move libgit.a sources into separate "lib/" directory
973
- t/helper: prepare "test-example-tap.c" for introduction of "lib/"
974
- Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir
@@ -881,8 +977,8 @@ Release tarballs are available at:
977
directory to clean up the top-level directory and clearly separate
978
library code.
979
884
- Needs review.
885
- cf. <akX1TMoRr87Id8Ss@pks.im>
980
+ Waiting for response(s) to review comment(s).
981
+ cf. <0c94331b-7eb1-4116-afa5-811082ad5854@ramsayjones.plus.com>
982
source: <20260701-pks-libgit-in-subdir-v3-0-5e4860056094@pks.im>
983
984
@@ -903,15 +999,16 @@ Release tarballs are available at:
999
1000
1001
* ty/migrate-ignorecase (2026-06-19) 2 commits
906
- - config: use repo_ignore_case() to access core.ignorecase
907
- - environment: move ignore_case into repo_config_values
1002
+ (merged to 'next' on 2026-07-12 at 39e9fdb93f)
1003
+ + config: use repo_ignore_case() to access core.ignorecase
1004
+ + environment: move ignore_case into repo_config_values
1005
1006
The global configuration variable 'ignore_case' (representing the
1007
'core.ignorecase' configuration) has been migrated into 'struct
1008
repo_config_values' to tie it to a specific repository instance.
1009
913
- Waiting for comments from Johannes.
914
- cf. <xmqqzf0mzc7j.fsf@gitster.g>
1010
+ Will merge to 'master'.
1011
+ cf. <xmqqechaga7p.fsf@gitster.g>
1012
source: <20260619155152.642760-1-cat@malon.dev>
1013
1014
@@ -926,26 +1023,25 @@ Release tarballs are available at:
1023
1024
The 'git log -L<range>:<path>' command has been taught to limit
1025
various 'diff' operations, such as '--stat', '--check', and '-G', to
929
- the specified range:path.
1026
+ the specified range and path.
1027
1028
Needs review.
1029
source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
1030
1031
935
-* hn/history-squash (2026-07-06) 5 commits
1032
+* hn/history-squash (2026-07-10) 5 commits
1033
- history: re-edit a squash with every message
937
- - sequencer: extract helpers for the squash message markers
1034
+ - sequencer: share the squash message marker helpers and flags
1035
- history: add squash subcommand to fold a range
1036
- history: give commit_tree_ext a message template
1037
- history: extract helper for a commit's parent tree
1038
1039
The experimental 'git history' command has been taught a new 'squash'
943
- subcommand to fold a range of commits into a single commit, replaying
944
- any descendants on top.
1040
+ subcommand to fold a range of commits into a single commit, with any
1041
+ descendants replayed on top.
1042
946
- Waiting for response(s) to review comment(s).
947
- cf. <38493ca6-8fdd-4b6c-9972-5145f3bf0aa4@gmail.com>
948
- source: <pull.2337.v7.git.git.1783327849.gitgitgadget@gmail.com>
1043
+ Needs review.
1044
+ source: <pull.2337.v8.git.git.1783674396.gitgitgadget@gmail.com>
1045
1046
1047
* ps/refs-writing-subcommands (2026-07-06) 5 commits
@@ -966,13 +1062,14 @@ Release tarballs are available at:
1062
1063
1064
* wy/doc-myfirstcontribution-trim-quotes (2026-06-11) 1 commit
969
- - MyFirstContribution: mention trimming quoted text in replies
1065
+ (merged to 'next' on 2026-07-12 at adeaa999b6)
1066
+ + MyFirstContribution: mention trimming quoted text in replies
1067
1068
The contributor guide has been updated to advise new contributors to
1069
trim irrelevant quoted text when replying to review comments, matching
1070
the existing advice given to reviewers.
1071
975
- Will merge to 'next'?
1072
+ Will merge to 'master'.
1073
cf. <xmqqcxxwljue.fsf@gitster.g>
1074
source: <080402ff0ac8127b654dccea59a1bf643df62a5c.1781186476.git.wy@wyuan.org>
1075
@@ -984,21 +1081,22 @@ Release tarballs are available at:
1081
1082
The 'git multi-pack-index write --incremental' command has been
1083
corrected to properly honor the '--base' option. Previously, the
987
- custom base was ignored by the normal write path, and the pack
988
- exclusion logic incorrectly skipped packs from layers above the
989
- selected base, breaking reachability closure for bitmaps.
1084
+ custom base was ignored by the normal write path; packs from layers
1085
+ above the selected base were incorrectly skipped by the pack exclusion
1086
+ logic, and reachability closure for bitmaps was broken.
1087
1088
Needs review.
1089
source: <cover.1781294771.git.me@ttaylorr.com>
1090
1091
1092
* mm/test-grep-lint (2026-07-05) 6 commits
996
- - t: add greplint to detect bare grep assertions
997
- - t: convert grep assertions to test_grep
998
- - t: fix Lexer line count for $() inside double-quoted strings
999
- - t: extract chainlint's parser into shared module
1000
- - t: fix grep assertions missing file arguments
1001
- - t/README: document test_grep helper
1093
+ (merged to 'next' on 2026-07-10 at 1916c07bf5)
1094
+ + t: add greplint to detect bare grep assertions
1095
+ + t: convert grep assertions to test_grep
1096
+ + t: fix Lexer line count for $() inside double-quoted strings
1097
+ + t: extract chainlint's parser into shared module
1098
+ + t: fix grep assertions missing file arguments
1099
+ + t/README: document test_grep helper
1100
1101
The test suite has been updated to use the 'test_grep' helper instead
1102
of bare 'grep' for test assertions, allowing file contents to be
@@ -1006,7 +1104,7 @@ Release tarballs are available at:
1104
been introduced to detect and prevent new bare 'grep' assertions from
1105
being added to the test suite.
1106
1009
- Will merge to 'next'.
1107
+ Will merge to 'master'.
1108
cf. <xmqqtsqedxmt.fsf@gitster.g>
1109
source: <pull.2135.v4.git.1783314119.gitgitgadget@gmail.com>
1110
@@ -1032,11 +1130,10 @@ Release tarballs are available at:
1130
- ref-filter: memoize --contains with generations
1131
- commit-reach: reject cycles in contains walk
1132
1035
- 'git branch --contains' and 'git for-each-ref --contains' have
1036
- been optimized to use the memoized commit traversal previously
1037
- used only by 'git tag --contains', significantly speeding up
1038
- connectivity checks across many candidate refs with shared
1039
- history.
1133
+ 'git branch --contains' and 'git for-each-ref --contains' have been
1134
+ optimized to use the memoized commit traversal previously used only by
1135
+ 'git tag --contains', significantly speeding up connectivity checks
1136
+ across many candidate refs with shared history.
1137
1138
Needs review.
1139
cf. <xmqqqzlpulkp.fsf@gitster.g>
@@ -1058,19 +1155,19 @@ Release tarballs are available at:
1155
source: <20260707-toon-git-replay-drop-merges-v7-0-808ab9b4afa6@iotcl.com>
1156
1157
1061
-* ps/cat-file-remote-object-info (2026-07-01) 13 commits
1158
+* ps/cat-file-remote-object-info (2026-07-10) 13 commits
1159
- cat-file: make remote-object-info allow-list dynamic
1160
- cat-file: validate remote atoms with an allow-list
1161
- cat-file: add remote-object-info to batch-command
1162
- transport: add client support for object-info
1163
- serve: advertise object-info feature
1164
- fetch-pack: move fetch initialization
1068
- - connect: make `write_fetch_command_and_capabilities()` more generic
1069
- - fetch-pack: move `write_fetch_command_and_capabilities()` to connect.c
1070
- - fetch-pack: drop static `advertise_sid` variable
1165
+ - connect: make write_fetch_command_and_capabilities() more generic
1166
+ - fetch-pack: move write_fetch_command_and_capabilities() to connect.c
1167
+ - fetch-pack: drop static advertise_sid variable
1168
+ - fetch-pack: fix hash_algo variable type
1169
- t1006: split test utility functions into new 'lib-cat-file.sh'
1170
- cat-file: declare loop counter inside for()
1073
- - git-compat-util: add `strtoumax_szt()` with error handling
1171
- transport-helper: fix memory leak of helper on disconnect
1172
1173
The 'remote-object-info' command has been added to 'git cat-file
@@ -1080,9 +1177,9 @@ Release tarballs are available at:
1177
filtered on the client based on server-advertised capabilities,
1178
returning empty strings for inapplicable or unsupported fields.
1179
1083
- Expecting a reroll.
1084
- cf. <CAN5EUNQ=2qtKXSJvxQiNLYqx0N0m6sfyBGLLXm4FB1kwtOsdbQ@mail.gmail.com>
1085
- source: <20260701-ps-eric-work-rebase-v15-0-c88a43b63917@gmail.com>
1180
+ Will merge to 'next'?
1181
+ cf. <CA+J6zkSo3ZqLe7HLEXRAs+hOq2FuOVokMQWbABcW95wihNtCgA@mail.gmail.com>
1182
+ source: <20260710-ps-eric-work-rebase-v16-0-66e07b58a8fe@gmail.com>
1183
1184
1185
* mm/diff-process-hunks (2026-06-14) 6 commits
@@ -1099,7 +1196,7 @@ Release tarballs are available at:
1196
while leaving all output formatting (word diff, color, blame, etc.) to
1197
Git's standard pipeline.
1198
1102
- Expecting a reroll.
1199
+ Expecting a reroll for too long, stalled.
1200
cf. <CAC2Qwm+P=fZOtpfMPeMiSXf3Afk6OLYpTP8Br78_PRA8WNL1Wg@mail.gmail.com>
1201
source: <pull.2120.v4.git.1781463564.gitgitgadget@gmail.com>
1202
@@ -1118,21 +1215,6 @@ Release tarballs are available at:
1215
source: <20260619162105.648495-1-cat@malon.dev>
1216
1217
1121
-* kk/prio-queue-cascade-sift (2026-07-08) 3 commits
1122
- - prio-queue: use cascade for unfused gets
1123
- - prio-queue: extract sift_up() from prio_queue_put()
1124
- - Merge branch 'kk/prio-queue-get-put-fusion' into kk/prio-queue-cascade-sift
1125
- (this branch uses kk/prio-queue-get-put-fusion.)
1126
-
1127
- 'prio_queue_get()' has been optimized by using a cascade-down approach
1128
- (promoting the smaller child at each level and sifting up the last
1129
- element from the leaf vacancy), which halves the number of comparisons
1130
- per extract-min operation in the common case.
1131
-
1132
- Needs review.
1133
- source: <pull.2132.v3.git.1783532989.gitgitgadget@gmail.com>
1134
-
1135
-
1218
* ps/history-drop (2026-07-01) 11 commits
1219
(merged to 'next' on 2026-07-08 at 6fb84708a4)
1220
+ builtin/history: implement "drop" subcommand
@@ -1148,7 +1230,7 @@ Release tarballs are available at:
1230
+ read-cache: split out function to drop unmerged entries to stage 0
1231
1232
The experimental 'git history' command has been taught a new 'drop'
1151
- subcommand to remove a commit and replay its descendants onto its
1233
+ subcommand to remove a commit, with its descendants replayed onto its
1234
parent.
1235
1236
Will merge to 'master'.
@@ -1165,7 +1247,7 @@ Release tarballs are available at:
1247
updated to hide dotfiles by default unless the user explicitly starts
1248
the path with a dot, matching standard shell-completion behavior.
1249
1168
- Waiting for response(s) to review comment(s).
1250
+ Waiting for response(s) to review comment(s), stalled.
1251
cf. <xmqqik71t3nr.fsf@gitster.g>
1252
source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
1253
@@ -1209,7 +1291,8 @@ Release tarballs are available at:
1291
to remove local branches that are already merged to their tracked
1292
remote-tracking branches.
1293
1212
- Needs review.
1294
+ Expecting a reroll.
1295
+ cf. <CAHwyqnWspUTSnqmkMyXtWuAnENDSzrRLhhUR=Ljtt1xer3tphA@mail.gmail.com>
1296
source: <pull.2285.v18.git.git.1782338106.gitgitgadget@gmail.com>
1297
1298
@@ -1225,9 +1308,10 @@ Release tarballs are available at:
1308
source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
1309
1310
1228
-* ps/shift-root-in-graph (2026-07-04) 3 commits
1311
+* ps/shift-root-in-graph (2026-07-11) 4 commits
1312
- graph: indent visual root in graph
1313
- graph: add a 2 commit buffer for lookahead
1314
+ - revision: add next_commit_to_show()
1315
- lib-log-graph: move check_graph function
1316
1317
'git log --graph' has been modified to visually distinguish parentless
@@ -1235,27 +1319,45 @@ Release tarballs are available at:
1319
simplification) by indenting them, preventing them from appearing
1320
falsely related to unrelated commits rendered immediately above them.
1321
1238
- Expecting a reroll.
1239
- cf. <CAN5EUNQoLtJ9cGwe8RNJTTdngM=qoak2=5F+yc7TH94TmQn7uw@mail.gmail.com>
1240
- source: <20260704-ps-pre-commit-indent-v7-0-a94706cc8376@gmail.com>
1241
-
1242
-
1243
-* kk/merge-base-exhaustion (2026-07-01) 10 commits
1244
- . commit-reach: remove commit-date ordering fallback
1245
- . commit-reach: move min_generation check into paint_queue_get()
1246
- . commit-reach: terminate merge-base walk when one paint side is exhausted
1247
- . commit-reach: introduce struct paint_state with per-side counters
1248
- . t6600: add clock-skew topologies and step counts for edge cases
1249
- . commit-reach: add trace2 instrumentation to paint_down_to_common()
1250
- . t6099, t6600: add side-exhaustion regression tests
1251
- . t6600: add test cases for side-exhaustion edge cases
1252
- . test-lib-functions: improve diagnostic output for trace2 data assertions
1253
- . Documentation/technical: add paint-down-to-common doc
1322
+ Needs review.
1323
+ source: <20260711-ps-pre-commit-indent-v9-0-eab6676e82f7@gmail.com>
1324
+
1325
+
1326
+* kk/merge-base-exhaustion (2026-07-11) 11 commits
1327
+ - commit-reach: remove commit-date ordering fallback
1328
+ - commit-reach: move min_generation check into paint_queue_get()
1329
+ - commit-reach: terminate merge-base walk when one paint side is exhausted
1330
+ - commit-reach: introduce struct paint_state with per-side counters
1331
+ - t6600: add clock-skew topologies and step counts for edge cases
1332
+ - commit-reach: add trace2 instrumentation to paint_down_to_common()
1333
+ - t6099, t6600: add side-exhaustion regression tests
1334
+ - t6600: add test cases for side-exhaustion edge cases
1335
+ - test-lib-functions: improve diagnostic output for trace2 data assertions
1336
+ - Documentation/technical: add paint-down-to-common doc
1337
+ - Merge branch 'kk/commit-reach-find-all-fix' into kk/merge-base-exhaustion
1338
+ (this branch uses kk/commit-reach-find-all-fix.)
1339
1340
The merge-base computation has been optimized by stopping the walk
1341
early when one side's exclusive commits in the queue are exhausted,
1342
yielding significant speedups for queries with one-sided histories.
1343
1259
- Expecting a reroll.
1260
- cf. <CAL71e4PgcZDK-gJziJa_yjEqX9TE+PFMwZn0xbjAUzuUDDDBYA@mail.gmail.com>
1261
- source: <pull.2149.v5.git.1782923832.gitgitgadget@gmail.com>
1344
+ Needs review.
1345
+ source: <pull.2149.v6.git.1783776466.gitgitgadget@gmail.com>
1346
+
1347
+--------------------------------------------------
1348
+[Discarded]
1349
+
1350
+* kk/prio-queue-cascade-sift (2026-07-08) 3 commits
1351
+ . prio-queue: use cascade for unfused gets
1352
+ . prio-queue: extract sift_up() from prio_queue_put()
1353
+ . Merge branch 'kk/prio-queue-get-put-fusion' into kk/prio-queue-cascade-sift
1354
+ (this branch uses kk/prio-queue-get-put-fusion.)
1355
+
1356
+ 'prio_queue_get()' has been optimized by using a cascade-down approach
1357
+ (promoting the smaller child at each level and sifting up the last
1358
+ element from the leaf vacancy), whereby the number of comparisons per
1359
+ extract-min operation is halved in the common case.
1360
+
1361
+ Retracted.
1362
+ cf. <CAL71e4PRVYfUWc-c+6XHTwtADqrbub9ykbo+rPyramDhJw=Rfg@mail.gmail.com>
1363
+ source: <pull.2132.v3.git.1783532989.gitgitgadget@gmail.com>