What's cooking (2026/07 #13)
Junio C Hamano committed
Jul 29, 2026 at 11:56 UTC
6ac7389b54b574f1b0aeeaf122e1020a2548fbaa
1 file changed
+468
-335
whats-cooking.txt
+468
-335
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (Jul 2026, #12)
3
-X-master-at: 9a0c4701dcd5725c4184599322b52933ff5005ca
4
-X-next-at: 244d577d9305226b47fecda6f8d041ceb0ff9aa4
2
+Subject: What's cooking in git.git (Jul 2026, #13)
3
+X-master-at: 13c7afec212fc97ce257d15601659314c6673d6c
4
+X-next-at: 250fe7f19410a4727d35b49738074248c2348aa6
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (Jul 2026, #12)
7
+What's cooking in git.git (Jul 2026, #13)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -17,7 +17,7 @@ A topic without enough support may be discarded after a long period
17
of no activity (of course, it can be resubmitted when new interest
18
arises).
19
20
-The seventh batch of topics have now graduated to the 'master' branch.
20
+The 8th batch of topics have now graduated to the 'master' branch.
21
22
Copies of the source code to Git live in many repositories, and the
23
following is a list of the ones I push into or their mirrors. Some
@@ -48,92 +48,304 @@ Release tarballs are available at:
48
https://www.kernel.org/pub/software/scm/git/
49
50
--------------------------------------------------
51
-[New Topics]
51
+[Graduated to 'master']
52
53
-* jc/remote-insteadof-leakfix (2026-07-25) 1 commit
54
- - remote: plug memory leaks
53
+* bc/rust-hash-cleanups (2026-07-18) 2 commits
54
+ (merged to 'next' on 2026-07-21 at 51627468a0)
55
+ + rust: discard hash context when finished
56
+ + hash: initialize context before cloning
57
56
- rewrites_release() in 'remote.c' has been updated to free 'struct
57
- rewrite' instances and their '.instead_of' arrays, and their contents.
58
+ A few memory problems in the Rust interface to C hash functions have
59
+ been corrected. The 'Clone' implementation of 'CryptoHasher' now
60
+ properly initializes the context before cloning, and its 'Drop'
61
+ implementation now discards the context to prevent leaks.
62
59
- Will merge to 'next'.
60
- cf. <20260725161819.GA2343104@coredump.intra.peff.net>
61
- source: <xmqqpl0b12gj.fsf@gitster.g>
63
+ Graduated to 'master'.
64
+ cf. <20260719080754.GA429688@coredump.intra.peff.net>
65
+ source: <20260719010842.17991-1-sandals@crustytoothpaste.net>
66
67
64
-* tb/pack-with-duplicates (2026-07-24) 5 commits
65
- - pack-bitmap: handle duplicate pack entries during MIDX reuse
66
- - test-tool bitmap: reject packs with duplicate objects
67
- - midx: verify duplicate pack entries by OID and offset
68
- - packfile: recover delta cycles through duplicate entries
69
- - t5308: test reverse indexes with duplicate objects
68
+* jc/submodule-helper-avoid-zu (2026-07-15) 1 commit
69
+ (merged to 'next' on 2026-07-19 at b12d5d76f5)
70
+ + submodule--helper: avoid use of %zu for now
71
71
- The handling of packfiles with duplicate object entries has been
72
- hardened. Specifically, reverse index lookup, delta cycle
73
- recovery, multi-pack-index verification, and pack reuse paths have
74
- been updated to correctly handle or gracefully reject duplicate
75
- entries.
72
+ An accidental use of the '%zu' format specifier in 'git
73
+ submodule--helper' has been corrected to use 'PRIuMAX' and cast the
74
+ value to 'uintmax_t' to avoid portability issues.
75
77
- Needs review.
78
- cf. <xmqqecgs3vg6.fsf@gitster.g>
79
- source: <cover.1784927134.git.ttaylorr@openai.com>
76
+ Graduated to 'master'.
77
+ source: <xmqq4ii0ko9t.fsf@gitster.g>
78
79
82
-* ps/cat-file-remote-object-info-type (2026-07-25) 6 commits
83
- - cat-file: unify default format
84
- - serve: advertise type capability
85
- - fetch-object-info: request all supported options dynamically
86
- - fetch-object-info: parse type from server response
87
- - protocol-caps: add type support to object-info
88
- - Merge branch 'ps/cat-file-remote-object-info' into ps/cat-file-remote-object-info-type
89
- (this branch uses ps/cat-file-remote-object-info.)
80
+* ps/copy-wo-the-repository (2026-07-16) 1 commit
81
+ (merged to 'next' on 2026-07-20 at 9e38da0efc)
82
+ + copy: drop dependency on `the_repository`
83
91
- The 'remote-object-info' command for 'git cat-file --batch-command'
92
- has been extended to support the '%(objecttype)' placeholder.
84
+ The copy_file() and copy_file_with_time() functions have been
85
+ refactored to take a repository parameter, allowing the removal of the
86
+ implicit dependency on the global 'the_repository' variable in
87
+ 'copy.c'.
88
+
89
+ Graduated to 'master'.
90
+ cf. <b0df688a-3b26-48f6-8b1c-98530483885e@gmail.com>
91
+ cf. <xmqqo6g54k7m.fsf@gitster.g>
92
+ source: <20260716-pks-copy-wo-the-repository-v2-1-8f5e32942929@pks.im>
93
+
94
+
95
+* ps/refs-wo-the-repository (2026-07-15) 7 commits
96
+ (merged to 'next' on 2026-07-19 at 12685f410c)
97
+ + refs: remove remaining uses of `the_repository`
98
+ + worktree: pass repository to public functions
99
+ + worktree: pass repository to file-local functions
100
+ + worktree: refactor code to use available repositories
101
+ + refs/files: drop `USE_THE_REPOSITORY_VARIABLE`
102
+ + refs/packed: de-globalize handling of "core.packedRefsTimeout"
103
+ + Merge branch 'ps/refs-writing-subcommands' into ps/refs-wo-the-repository
104
+
105
+ The ref subsystem and the worktree API have been refactored to pass a
106
+ repository pointer down the call chain, allowing them to drop
107
+ references to the global 'the_repository' variable. As part of this,
108
+ the handling of the 'core.packedRefsTimeout' configuration has been
109
+ moved into the per-repository ref store structure.
110
+
111
+ Graduated to 'master'.
112
+ source: <20260716-pks-refs-wo-the-repository-v3-0-db0a804e0224@pks.im>
113
+
114
+
115
+* ps/refspec-wo-the-repository (2026-07-16) 3 commits
116
+ (merged to 'next' on 2026-07-20 at 31044c3fc9)
117
+ + refspec: stop depending on `the_repository`
118
+ + refspec: let callers pass in hash algorithm when parsing items
119
+ + refspec: group related structures and functions
120
+
121
+ The dependency on the global 'the_repository' variable in the
122
+ 'refspec.c' API has been removed by passing the hash algorithm
123
+ explicitly to refspec-parsing functions and storing it in 'struct
124
+ refspec'.
125
+
126
+ Graduated to 'master'.
127
+ source: <20260716-pks-refspec-wo-the-repository-v1-0-aa40844d067f@pks.im>
128
+
129
+
130
+* ps/shift-root-in-graph (2026-07-14) 7 commits
131
+ (merged to 'next' on 2026-07-19 at bebf13a239)
132
+ + graph: add --[no-]graph-indent and log.graphIndent
133
+ + graph: move config reading into graph_read_config()
134
+ + graph: wrap cascading commits after 4 columns
135
+ + graph: indent visual root in graph
136
+ + graph: add a 2 commit buffer for lookahead
137
+ + revision: add next_commit_to_show()
138
+ + lib-log-graph: move check_graph function
139
+
140
+ 'git log --graph' has been modified to visually distinguish parentless
141
+ 'root' commits (and commits that become roots due to history
142
+ simplification) by indenting them, preventing them from appearing
143
+ falsely related to unrelated commits rendered immediately above them.
144
+
145
+ Graduated to 'master'.
146
+ cf. <CA+J6zkQNzEAhhY74qDrOwfFVrshEF7YFxWRRkwE3ttJo15ZbAg@mail.gmail.com>
147
+ source: <20260714-ps-pre-commit-indent-v12-0-d50938e006df@gmail.com>
148
+
149
+
150
+* pw/rebase-drop-notes-with-commit (2026-07-15) 9 commits
151
+ (merged to 'next' on 2026-07-20 at 5475c9f935)
152
+ + sequencer: do not record dropped commits as rewritten
153
+ + sequencer: use an enum to represent result of picking a commit
154
+ + sequencer: simplify pick_one_commit()
155
+ + sequencer: remove unnecessary condition in pick_one_commit()
156
+ + sequencer: simplify handling of fixup with conflicts
157
+ + sequencer: remove unnecessary "or" in pick_one_commit()
158
+ + sequencer: never reschedule on failed commit
159
+ + sequencer: be more careful with external merge
160
+ + t3400: restore coverage for note copying with apply backend
161
+
162
+ The rebase post-rewrite notes-copying logic has been corrected. When
163
+ a commit is dropped during rebase (e.g., because its changes are
164
+ already upstream), it is no longer recorded as rewritten, preventing
165
+ its notes from being copied to an unrelated commit.
166
+
167
+ Graduated to 'master'.
168
+ cf. <xmqqy0f5d25g.fsf@gitster.g>
169
+ source: <cover.1784128921.git.phillip.wood@dunelm.org.uk>
170
+
171
+
172
+* rs/remote-curl-simplify-push-specs (2026-07-14) 1 commit
173
+ (merged to 'next' on 2026-07-19 at ff1b5528ba)
174
+ + remote-curl: simplify passing of push specs
175
+
176
+ The passing of push destination specifications in the 'remote-curl'
177
+ helper has been simplified by removing the explicit 'count' parameter
178
+ and relying on the NULL-termination of the array.
179
+
180
+ Graduated to 'master'.
181
+ source: <935883f3-3be4-4c51-9711-5208b9ef9ca1@web.de>
182
+
183
+
184
+* sc/wt-status-avoid-quadratic-insertion (2026-07-18) 1 commit
185
+ (merged to 'next' on 2026-07-20 at 9330d42a4a)
186
+ + wt-status: avoid repeated insertion for untracked paths
187
+
188
+ The enumeration of untracked and ignored files in 'git status' has
189
+ been optimized by avoiding quadratic complexity when inserting into
190
+ string lists, reducing the construction cost from O(n^2) to O(n log
191
+ n).
192
+
193
+ Graduated to 'master'.
194
+ cf. <20260718083828.GE22588@coredump.intra.peff.net>
195
+ source: <20260718081449.26747-1-sahityajb@gmail.com>
196
+
197
+
198
+* td/ref-filter-memoize-contains (2026-06-12) 3 commits
199
+ (merged to 'next' on 2026-07-19 at 5b640e33a1)
200
+ + commit-reach: die on contains walk errors
201
+ + ref-filter: memoize --contains with generations
202
+ + commit-reach: reject cycles in contains walk
203
+
204
+ 'git branch --contains' and 'git for-each-ref --contains' have been
205
+ optimized to use the memoized commit traversal previously used only by
206
+ 'git tag --contains', significantly speeding up connectivity checks
207
+ across many candidate refs with shared history.
208
+
209
+ Graduated to 'master'.
210
+ cf. <20260716091924.GB1212956@coredump.intra.peff.net>
211
+ source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com>
212
+
213
+--------------------------------------------------
214
+[New Topics]
215
+
216
+* sk/test-commit-body-helper (2026-07-27) 2 commits
217
+ - t: use commit_body to extract commit message bodies
218
+ - test-lib-functions: add commit_body helper
219
+
220
+ A new test helper commit_body() has been introduced to print the
221
+ message body of a commit, and various tests have been updated to use
222
+ it instead of spelling out the command pipeline manually and losing
223
+ the exit status of the 'git cat-file' command on the upstream of the
224
+ pipe.
225
226
Needs review.
95
- source: <20260725-objecttype-support-v1-0-2d4ca3bbabf1@gmail.com>
227
+ cf. <xmqqldawq24y.fsf@gitster.g>
228
+ source: <20260727095656.75496-1-diy2903@gmail.com>
229
230
98
-* rs/branch-delete-bisect-warning (2026-07-25) 1 commit
99
- - branch: report active bisect run when rejecting delete
231
+* jk/cat-file-batch-wo-type-fix (2026-07-28) 1 commit
232
+ - cat-file: handle content request for --batch-command without type
233
101
- 'git branch -d' learned to report when a branch cannot be deleted
102
- because it is being used in an active bisect run.
234
+ "git cat-file --batch-command" that asked for 'contents' without
235
+ 'type' segfaults, which has been corrected.
236
237
Will merge to 'next'?
105
- cf. <xmqqbjbtyd80.fsf@gitster.g>
106
- source: <590382fb-731b-4e14-911e-ff68356d1082@web.de>
238
+ cf. <xmqqjyqfdnie.fsf@gitster.g>
239
+ source: <20260728150031.GA41931@coredump.intra.peff.net>
240
241
109
-* jk/ci-static-analysis-image-bump (2026-07-26) 2 commits
110
- - ci: bump ubuntu image version for static-analysis job
111
- - bloom: silence CHECK_ASSERTION_SIDE_EFFECTS false positive
242
+* tc/merge-default-to-upstream-leakfix (2026-07-28) 1 commit
243
+ - merge: fix leak with merge.defaultToUpstream
244
113
- The image version used by the static-analysis CI job has been bumped
114
- to ubuntu-latest (Ubuntu 24.04), which brings in a newer Coccinelle
115
- version that resolves a severe performance regression. A false
116
- positive warning from the CHECK_ASSERTION_SIDE_EFFECTS build with
117
- GCC 15 in the Bloom filter code has also been silenced to facilitate
118
- the image upgrade.
245
+ Leakfix.
246
247
Will merge to 'next'?
121
- cf. <xmqqo6ftvhed.fsf@gitster.g>
122
- source: <20260726083254.GA3528497@coredump.intra.peff.net>
248
+ cf. <20260728151959.GC41931@coredump.intra.peff.net>
249
+ cf. <xmqqfr13dlv8.fsf@gitster.g>
250
+ source: <20260728-toon-fix-merge-leak-v1-1-d6bd161a3acf@iotcl.com>
251
252
125
-* jk/diff-relative-cached-unmerged-more (2026-07-26) 3 commits
126
- - diff-lib: skip paths outside prefix in oneway_diff()
127
- - diff-lib: drop stale comment about advancing o->pos
128
- - Merge branch 'jk/diff-relative-cached-unmerged' into jk/diff-relative-cached-unmerged-more
129
- (this branch uses jk/diff-relative-cached-unmerged.)
253
+* cl/regexec-macos-leak (2026-07-28) 2 commits
254
+ - SQUASH???
255
+ - regexec: work around macOS TRE leak on invalid UTF-8
256
131
- The code path that deals with relative paths in the diff-lib has
132
- been cleaned up.
257
+ A compatibility workaround has been introduced for macOS to address
258
+ a memory leak in the system regex engine when it encounters invalid
259
+ multibyte sequences. The workaround segments the input buffer at
260
+ invalid byte boundaries and searches each valid segment separately
261
+ using regexec(), avoiding the leaking path.
262
+
263
+ Waiting for response.
264
+ cf. <xmqqse52bpa9.fsf@gitster.g>
265
+ source: <20260728052538.12429-1-chungmin@chungminlee.com>
266
+
267
+
268
+* dl/pack-bitmap-position-zero (2026-07-28) 1 commit
269
+ - pack-bitmap: handle objects at bitmap position zero
270
+
271
+ A boundary case check in reachability bitmap traversal has been
272
+ corrected to properly handle the object at position zero, which was
273
+ previously skipped, leading to redundant bitmap loading.
274
275
Will merge to 'next'?
135
- cf. <xmqqjyqhv7s7.fsf@gitster.g>
136
- source: <20260726084550.GC2366012@coredump.intra.peff.net>
276
+ cf. <amk75SuhyHBbx-E8@com-79390>
277
+ cf. <xmqq5x1yd968.fsf@gitster.g>
278
+ source: <20260728135248.61304-1-davidlin@stripe.com>
279
+
280
+
281
+* hn/checkout-m-autostash-refine (2026-07-25) 2 commits
282
+ - checkout -m: refine autostash fallback
283
+ - sequencer: teach autostash apply to report conflicts
284
+
285
+ The autostash fallback in 'git checkout -m' has been refined to only
286
+ retry when there are local changes. Additionally, a blank line now
287
+ visually separates autostash conflict advice from the subsequent
288
+ branch-switch message.
289
+
290
+ Needs review.
291
+ cf. <xmqqwluebuhb.fsf@gitster.g>
292
+ source: <pull.2364.git.git.1784993669.gitgitgadget@gmail.com>
293
+
294
+
295
+* jk/t0014-dynamic-deprecated-cmds (2026-07-28) 2 commits
296
+ (merged to 'next' on 2026-07-29 at 39a86632e6)
297
+ + t0014: generate deprecated command names dynamically
298
+ + t0014: factor out choice of deprecated commands
299
+
300
+ The alias tests in t/t0014-alias.sh have been updated to dynamically
301
+ query the list of deprecated commands using 'git
302
+ --list-cmds=deprecated' to avoid test failures when running with
303
+ WITH_BREAKING_CHANGES in a build directory that contains stale
304
+ executables of formerly deprecated commands.
305
+
306
+ Will merge to 'master'.
307
+ source: <20260728143653.GB11894@coredump.intra.peff.net>
308
+
309
+
310
+* js/mingw-symlink-net-share-leak (2026-07-28) 1 commit
311
+ (merged to 'next' on 2026-07-29 at 250fe7f194)
312
+ + mingw: skip symlink type auto-detection for network share targets
313
+
314
+ Git for Windows has been updated to avoid auto-detecting the symlink
315
+ type if the target path starts with a slash, preventing NTLM
316
+ credential leaks when checking out repositories with crafted
317
+ symbolic links pointing to network shares.
318
+
319
+ Will merge to 'master'.
320
+ source: <pull.2189.git.1785239196007.gitgitgadget@gmail.com>
321
+
322
+
323
+* ns/merge-base-is-ancestor-tests (2026-07-25) 1 commit
324
+ - merge-base: add tests for --is-ancestor
325
+
326
+ Tests for 'git merge-base --is-ancestor' have been added to cover
327
+ exit codes (0 for success, 1 for non-ancestor, 128 for errors) and
328
+ to ensure it cannot be combined with '--all'.
329
+
330
+ Waiting for response.
331
+ cf. <9a47d529-6195-435b-90a6-e511856f128e@gmail.com>
332
+ source: <pull.2186.git.1784998828879.gitgitgadget@gmail.com>
333
+
334
+
335
+* jc/add-resolved (2026-07-29) 4 commits
336
+ - add: introduce '--resolved' option
337
+ - read-cache: add remove_file_from_index_with_flags()
338
+ - merge-ll: consolidate conflict marker scanning logic
339
+ - read-cache: reindent
340
+
341
+ 'git add' has been taught a new '--resolved' option to stage
342
+ conflict-resolved paths, while leaving unrelated local changes
343
+ unstaged. It scans the unmerged paths for leftover conflict markers
344
+ and aborts if any are found.
345
+
346
+ Will merge to 'next'?
347
+ cf. <xmqqse51algy.fsf@gitster.g>
348
+ source: <20260729172524.4022621-1-gitster@pobox.com>
349
350
--------------------------------------------------
351
[Stalled]
@@ -156,9 +368,9 @@ Release tarballs are available at:
368
geometric repack as usual, while a separate cruft pack is written to
369
collect unreachable objects.
370
159
- Waiting for response for too long, stalled.
160
- cf. <aj8cvDCMcw+RayyO@nand.local>
161
- cf. <aj8cOhH6hGVZIFft@nand.local>
371
+ Waiting for response.
372
+ cf. <xmqqwlugo4nk.fsf@gitster.g>
373
+ cf. <e3d2e46443d0b32ce29215563dde04ebcf850679.1782500507.git.me@ttaylorr.com>
374
source: <cover.1782500507.git.me@ttaylorr.com>
375
376
@@ -169,10 +381,8 @@ Release tarballs are available at:
381
The 'git checkout --track=...' command has been taught to optionally
382
fetch the branch from the remote that the new branch will work with.
383
172
- Will be discarded.
173
- cf. <xmqq5x37h6fj.fsf@gitster.g>
174
- cf. <CAL71e4MiijEiM26TKJcOYT7L4pfQeMM_F2oT3U3igP-wOZm2Ag@mail.gmail.com>
175
- cf. <xmqq8q71clob.fsf@gitster.g>
384
+ Will discard.
385
+ cf. <xmqqtsr0tvci.fsf@gitster.g>
386
source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
387
388
@@ -185,8 +395,8 @@ Release tarballs are available at:
395
the path with a dot, matching standard shell-completion behavior.
396
397
Waiting for response, stalled.
188
- cf. <xmqqbjd37i4y.fsf@gitster.g>
398
cf. <xmqq4ihpclo8.fsf@gitster.g>
399
+ cf. <xmqqik71t3nr.fsf@gitster.g>
400
source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
401
402
@@ -207,8 +417,8 @@ Release tarballs are available at:
417
replace outdated terminology, define key terms upfront, and document
418
how comment lines in the input are treated.
419
210
- Expecting a reroll for too long, stalled.
211
- cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
420
+ Will discard.
421
+ cf. <xmqq1pedthkv.fsf@gitster.g>
422
source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
423
424
@@ -221,22 +431,113 @@ Release tarballs are available at:
431
Documentation for 'git replay' has been updated to refer to its
432
configuration variables.
433
224
- Waiting for response for too long, stalled.
225
- cf. <87cxwxofgv.fsf@emacs.iotcl.com>
434
+ Will discard.
435
cf. <xmqqv7a5b6n7.fsf@gitster.g>
436
source: <V3_CV_doc_replay_config.780@msgid.xyz>
437
438
--------------------------------------------------
439
[Cooking]
440
441
+* jc/remote-insteadof-leakfix (2026-07-25) 1 commit
442
+ (merged to 'next' on 2026-07-27 at 8cf88af88b)
443
+ + remote: plug memory leaks
444
+
445
+ rewrites_release() in 'remote.c' has been updated to free 'struct
446
+ rewrite' instances, their '.instead_of' arrays, and their contents.
447
+
448
+ Will merge to 'master'.
449
+ cf. <20260725161819.GA2343104@coredump.intra.peff.net>
450
+ source: <xmqqpl0b12gj.fsf@gitster.g>
451
+
452
+
453
+* tb/pack-with-duplicates (2026-07-24) 5 commits
454
+ - pack-bitmap: handle duplicate pack entries during MIDX reuse
455
+ - test-tool bitmap: reject packs with duplicate objects
456
+ - midx: verify duplicate pack entries by OID and offset
457
+ - packfile: recover delta cycles through duplicate entries
458
+ - t5308: test reverse indexes with duplicate objects
459
+
460
+ The handling of packfiles with duplicate object entries has been
461
+ hardened. Specifically, reverse index lookup, delta cycle
462
+ recovery, multi-pack-index verification, and pack reuse paths have
463
+ been updated to correctly handle or gracefully reject duplicate
464
+ entries.
465
+
466
+ Needs review.
467
+ cf. <xmqqecgs3vg6.fsf@gitster.g>
468
+ source: <cover.1784927134.git.ttaylorr@openai.com>
469
+
470
+
471
+* ps/cat-file-remote-object-info-type (2026-07-25) 6 commits
472
+ - cat-file: unify default format
473
+ - serve: advertise type capability
474
+ - fetch-object-info: request all supported options dynamically
475
+ - fetch-object-info: parse type from server response
476
+ - protocol-caps: add type support to object-info
477
+ - Merge branch 'ps/cat-file-remote-object-info' into ps/cat-file-remote-object-info-type
478
+ (this branch uses ps/cat-file-remote-object-info.)
479
+
480
+ The 'remote-object-info' command for 'git cat-file --batch-command'
481
+ has been extended to support the '%(objecttype)' placeholder.
482
+
483
+ Needs review.
484
+ cf. <xmqqecglajnj.fsf@gitster.g>
485
+ source: <20260725-objecttype-support-v1-0-2d4ca3bbabf1@gmail.com>
486
+
487
+
488
+* rs/branch-delete-bisect-warning (2026-07-25) 1 commit
489
+ (merged to 'next' on 2026-07-28 at c0e15e73b6)
490
+ + branch: report active bisect run when rejecting delete
491
+
492
+ 'git branch -d' has been taught to report when a branch cannot be
493
+ deleted because it is being used in an active bisect run.
494
+
495
+ Will merge to 'master'.
496
+ cf. <xmqqbjbtyd80.fsf@gitster.g>
497
+ cf. <871pcndynd.fsf@emacs.iotcl.com>
498
+ source: <590382fb-731b-4e14-911e-ff68356d1082@web.de>
499
+
500
+
501
+* jk/ci-static-analysis-image-bump (2026-07-26) 2 commits
502
+ (merged to 'next' on 2026-07-29 at 457a175861)
503
+ + ci: bump ubuntu image version for static-analysis job
504
+ + bloom: silence CHECK_ASSERTION_SIDE_EFFECTS false positive
505
+
506
+ The image version used by the static-analysis CI job has been bumped
507
+ to ubuntu-latest (Ubuntu 24.04), which brings in a newer Coccinelle
508
+ version that resolves a severe performance regression. A false
509
+ positive warning from the CHECK_ASSERTION_SIDE_EFFECTS build with
510
+ GCC 15 in the Bloom filter code has also been silenced to facilitate
511
+ the image upgrade.
512
+
513
+ Will merge to 'master'.
514
+ cf. <xmqqo6ftvhed.fsf@gitster.g>
515
+ source: <20260726083254.GA3528497@coredump.intra.peff.net>
516
+
517
+
518
+* jk/diff-relative-cached-unmerged-more (2026-07-26) 3 commits
519
+ - diff-lib: skip paths outside prefix in oneway_diff()
520
+ - diff-lib: drop stale comment about advancing o->pos
521
+ - Merge branch 'jk/diff-relative-cached-unmerged' into jk/diff-relative-cached-unmerged-more
522
+ (this branch uses jk/diff-relative-cached-unmerged.)
523
+
524
+ The code path that deals with relative paths in the diff-lib has
525
+ been cleaned up.
526
+
527
+ Waiting for review.
528
+ cf. <xmqqo6frdqy5.fsf@gitster.g>
529
+ cf. <20260728171249.GA643101@coredump.intra.peff.net>
530
+ source: <20260726084550.GC2366012@coredump.intra.peff.net>
531
+
532
+
533
* af/clone-revision-v0-segfault-fix (2026-07-24) 1 commit
233
- - builtin/clone: fix segfault when using --revision with protocol v0
534
+ (merged to 'next' on 2026-07-27 at 57c0e98bfb)
535
+ + builtin/clone: fix segfault when using --revision with protocol v0
536
235
- 'git clone --revision' talking to a server that does not support
236
- protocol v2 (falling back to protocol v0) segfaulted, which has
237
- been corrected.
537
+ A segfault when 'git clone --revision' talks to a server that does not
538
+ support protocol v2 (falling back to protocol v0) has been corrected.
539
239
- Will merge to 'next'.
540
+ Will merge to 'master'.
541
cf. <xmqqldb08jcd.fsf@gitster.g>
542
source: <20260724124138.666877-1-adrian.friedli@mt.com>
543
@@ -251,7 +552,8 @@ Release tarballs are available at:
552
syscall fails has also been improved to name both the source and
553
the destination.
554
254
- Needs review.
555
+ Waiting for response.
556
+ cf. <xmqqbjbsgjfu.fsf@gitster.g>
557
source: <pull.2356.v4.git.git.1785097071.gitgitgadget@gmail.com>
558
559
@@ -269,11 +571,10 @@ Release tarballs are available at:
571
detangled from repository initialization.
572
573
Waiting for response.
272
- cf. <xmqq5x248fk9.fsf@gitster.g>
273
- cf. <xmqqh5lo6xi2.fsf@gitster.g>
274
- cf. <xmqq5x246x35.fsf@gitster.g>
275
- cf. <xmqqfr15v6ba.fsf@gitster.g>
276
- cf. <xmqqbjbtv5y6.fsf@gitster.g>
574
+ cf. <amkcNhMTKqWdLXwX@denethor>
575
+ cf. <amkXcmwzbBYsMgjc@denethor>
576
+ cf. <amkOb3rvWFUpnT28@denethor>
577
+ cf. <amkMipjGA_7cwpOR@denethor>
578
source: <20260724-pks-odb-create-on-disk-v1-0-3b3d265d979b@pks.im>
579
580
@@ -300,8 +601,8 @@ Release tarballs are available at:
601
'rebase.noEdit' can be used to set the default behavior.
602
603
Waiting for a response.
303
- cf. <xmqqldb4xlqa.fsf@gitster.g>
604
cf. <db7edc66-9b2a-47bc-98db-87d01885cef0@gmail.com>
605
+ cf. <xmqqse5brq8s.fsf@gitster.g>
606
source: <20260721140443.1809379-2-hugo@hsal.es>
607
608
@@ -323,13 +624,14 @@ Release tarballs are available at:
624
625
626
* en/submodule-insteadof-remote-match (2026-07-22) 1 commit
326
- - submodule: resolve insteadOf aliases when matching remote
627
+ (merged to 'next' on 2026-07-27 at a1cbd7aa11)
628
+ + submodule: resolve insteadOf aliases when matching remote
629
630
The remote-matching logic for submodules has been corrected to
631
resolve 'url.*.insteadOf' aliases before comparing the inventoried
632
URL from '.gitmodules' with the URLs of configured remotes.
633
332
- Will merge to 'next'.
634
+ Will merge to 'master'.
635
cf. <xmqqldb05dlo.fsf@gitster.g>
636
source: <20260723002132.3989727-1-ccjmne@gmail.com>
637
@@ -369,28 +671,11 @@ Release tarballs are available at:
671
prevent failures when branch aliases are present.
672
673
Waiting for response.
372
- cf. <5bece313-6ffb-450b-add1-29652b64de10@gmail.com>
373
- cf. <00e529b6-7ae7-463f-a4b3-0991e9411aba@gmail.com>
374
- cf. <amSSYagL0jTgzElD@mbp>
375
- cf. <xmqq7bmhycxq.fsf@gitster.g>
674
+ cf. <61291144-60da-4e37-83ef-fe09e91c4f51@gmail.com>
675
+ cf. <xmqqwludan2m.fsf@gitster.g>
676
source: <pull.2126.v3.git.1784708107.gitgitgadget@gmail.com>
677
678
379
-* bc/rust-hash-cleanups (2026-07-18) 2 commits
380
- (merged to 'next' on 2026-07-21 at 51627468a0)
381
- + rust: discard hash context when finished
382
- + hash: initialize context before cloning
383
-
384
- A few memory problems in the Rust interface to C hash functions have
385
- been corrected. The 'Clone' implementation of 'CryptoHasher' now
386
- properly initializes the context before cloning, and its 'Drop'
387
- implementation now discards the context to prevent leaks.
388
-
389
- Will merge to 'master'.
390
- cf. <20260719080754.GA429688@coredump.intra.peff.net>
391
- source: <20260719010842.17991-1-sandals@crustytoothpaste.net>
392
-
393
-
679
* ja/doc-synopsis-style-yet-more (2026-07-23) 4 commits
680
- doc: convert git-request-pull synopsis and options to new style
681
- doc: convert git-send-email synopsis and options to new style
@@ -402,6 +687,7 @@ Release tarballs are available at:
687
updated to the modern style.
688
689
Needs review.
690
+ cf. <740b24631de2c2aff01dcb461f60121fbd11bfe1.1784841567.git.gitgitgadget@gmail.com>
691
source: <pull.2185.v2.git.1784841567.gitgitgadget@gmail.com>
692
693
@@ -446,7 +732,9 @@ Release tarballs are available at:
732
root, superproject working tree, object database, etc.), supporting
733
both absolute and relative path formats.
734
449
- Needs review.
735
+ Waiting for review.
736
+ cf. <amjUPEgenletgbp5@denethor>
737
+ cf. <CA+rGoLfJ5Kc_HV7YfJ-y5SpMjb7t7f5ifUKcd=39eTjqzzQF5w@mail.gmail.com>
738
source: <20260726104343.16933-1-jayatheerthkulkarni2005@gmail.com>
739
740
@@ -489,8 +777,9 @@ Release tarballs are available at:
777
778
779
* pw/rebase-fixup-fixes (2026-07-26) 2 commits
492
- - rebase: remember fixup -c after skipping fixup/squash
493
- - rebase -i: fix counting of fixups after rebase --skip
780
+ (merged to 'next' on 2026-07-28 at 736307fae5)
781
+ + rebase: remember fixup -c after skipping fixup/squash
782
+ + rebase -i: fix counting of fixups after rebase --skip
783
784
Two bugs in how 'git rebase' handles skipped 'fixup' and 'squash'
785
commands have been fixed. One bug caused an incorrect commit count to
@@ -498,7 +787,8 @@ Release tarballs are available at:
787
and another prevented the editor from opening when the final command
788
in a chain containing 'fixup -c' was skipped.
789
501
- Will merge to 'next'?
790
+ Will merge to 'master'.
791
+ cf. <xmqqtspo3x31.fsf@gitster.g>
792
cf. <xmqqse55tp1k.fsf@gitster.g>
793
source: <cover.1785080337.git.phillip.wood@dunelm.org.uk>
794
@@ -515,23 +805,22 @@ Release tarballs are available at:
805
wildcard pathspecs are used.
806
807
Waiting for a response.
518
- cf. <20260720094218.GA681989@coredump.intra.peff.net>
519
- cf. <alvulw2fk67duo8n@com-79390>
808
+ cf. <20260718083757.GD22588@coredump.intra.peff.net>
809
+ cf. <xmqqwlut1gzc.fsf@gitster.g>
810
source: <20260717-toon-speed-up-last-modified-v1-0-410418f18614@iotcl.com>
811
812
813
* hn/bisect-reset-when-found (2026-07-20) 2 commits
524
- (merged to 'next' on 2026-07-22 at 1dc394ad9b)
525
- + bisect: add --reset-when-found to leave when done
526
- + bisect: let bisect_reset() optionally check out quietly
814
+ - bisect: add --reset-when-found to leave when done
815
+ - bisect: let bisect_reset() optionally check out quietly
816
817
The 'git bisect' command has been taught a
818
'--reset-when-found[=<where>]' option that tells the command to
819
automatically run 'git bisect reset' to jump back to the original
820
state or to the found culprit.
821
533
- Will merge to 'master'.
534
- cf. <xmqqldb5d1d9.fsf@gitster.g>
822
+ Waiting for response.
823
+ cf. <faa22968-54ac-4e4f-8324-3326ffb00c5b@kdbg.org>
824
source: <pull.2335.v3.git.git.1784538619.gitgitgadget@gmail.com>
825
826
@@ -554,16 +843,14 @@ Release tarballs are available at:
843
about unchecked returns.
844
845
Waiting for response.
557
- cf. <alcvmX3b6y92KE4y@pks.im>
558
- cf. <alcvnm0xiOv5W0w_@pks.im>
559
- cf. <xmqqldbdqciy.fsf@gitster.g>
560
- cf. <xmqqh5m1qcfh.fsf@gitster.g>
561
- cf. <xmqqh5lui6wg.fsf@gitster.g>
846
cf. <xmqqcxwii6wd.fsf@gitster.g>
847
+ cf. <alcvnm0xiOv5W0w_@pks.im>
848
source: <pull.2179.git.1784069325.gitgitgadget@gmail.com>
849
850
566
-* jk/diff-relative-cached-unmerged (2026-07-14) 1 commit
851
+* jk/diff-relative-cached-unmerged (2026-07-28) 2 commits
852
+ (merged to 'next' on 2026-07-28 at 1ac873b5f9)
853
+ + diff-lib: add idx/tree sanity check to oneway_diff
854
(merged to 'next' on 2026-07-25 at 8829f9b348)
855
+ diff: ignore unmerged paths outside prefix with --relative --cached
856
(this branch is used by jk/diff-relative-cached-unmerged-more.)
@@ -573,20 +860,7 @@ Release tarballs are available at:
860
prefix.
861
862
Will merge to 'master'.
576
- cf. <xmqqjyqwp9jh.fsf@gitster.g>
577
- source: <20260715060523.GA517940@coredump.intra.peff.net>
578
-
579
-
580
-* jc/submodule-helper-avoid-zu (2026-07-15) 1 commit
581
- (merged to 'next' on 2026-07-19 at b12d5d76f5)
582
- + submodule--helper: avoid use of %zu for now
583
-
584
- An accidental use of the '%zu' format specifier in 'git
585
- submodule--helper' has been corrected to use 'PRIuMAX' and cast the
586
- value to 'uintmax_t' to avoid portability issues.
587
-
588
- Will merge to 'master'.
589
- source: <xmqq4ii0ko9t.fsf@gitster.g>
863
+ source: <20260728151458.GB41931@coredump.intra.peff.net>
864
865
866
* ds/trace2-tolerate-failed-timestamp (2026-07-15) 1 commit
@@ -598,8 +872,6 @@ Release tarballs are available at:
872
timestamps in the traces.
873
874
Waiting for response.
601
- cf. <alpXW5U6sndZtgqV@com-79390>
602
- cf. <c8d443a5-3cfb-4752-8716-cf0d8fadd9d3@gmail.com>
875
cf. <xmqqzezlhgyo.fsf@gitster.g>
876
cf. <al4yrXXoZiHLwSvE@com-79390>
877
source: <pull.2178.git.1784131932489.gitgitgadget@gmail.com>
@@ -614,24 +886,12 @@ Release tarballs are available at:
886
before the walk reaches it does not prematurely mutate its tracked
887
line ranges, making it safer for potential lookahead evaluations.
888
617
- Waiting for review.
618
- cf. <xmqqjyqk3w7d.fsf@gitster.g>
619
- cf. <CAC2QwmKP16cyw0get3hEWP8GjcFkUHB3uXxcQi9hBCCM-B+ECw@mail.gmail.com>
889
+ Will merge to 'next'?
890
+ cf. <xmqq8q6wpmuy.fsf@gitster.g>
891
+ cf. <xmqqcxw8pnsa.fsf@gitster.g>
892
source: <pull.2169.git.1784143793613.gitgitgadget@gmail.com>
893
894
623
-* rs/remote-curl-simplify-push-specs (2026-07-14) 1 commit
624
- (merged to 'next' on 2026-07-19 at ff1b5528ba)
625
- + remote-curl: simplify passing of push specs
626
-
627
- The passing of push destination specifications in the 'remote-curl'
628
- helper has been simplified by removing the explicit 'count' parameter
629
- and relying on the NULL-termination of the array.
630
-
631
- Will merge to 'master'.
632
- source: <935883f3-3be4-4c51-9711-5208b9ef9ca1@web.de>
633
-
634
-
895
* cc/fast-import-usage (2026-07-16) 7 commits
896
- fast-import: use struct option for usage string
897
- fast-import: move command state globals into 'struct fast_import_state'
@@ -647,40 +907,9 @@ Release tarballs are available at:
907
908
Waiting for response.
909
cf. <xmqq4ihyehyb.fsf@gitster.g>
650
- cf. <xmqqcxwmeiwq.fsf@gitster.g>
910
source: <20260716165517.433849-1-christian.couder@gmail.com>
911
912
654
-* ps/copy-wo-the-repository (2026-07-16) 1 commit
655
- (merged to 'next' on 2026-07-20 at 9e38da0efc)
656
- + copy: drop dependency on `the_repository`
657
-
658
- The copy_file() and copy_file_with_time() functions have been
659
- refactored to take a repository parameter, allowing the removal of the
660
- implicit dependency on the global 'the_repository' variable in
661
- 'copy.c'.
662
-
663
- Will merge to 'master'.
664
- cf. <b0df688a-3b26-48f6-8b1c-98530483885e@gmail.com>
665
- cf. <xmqqo6g54k7m.fsf@gitster.g>
666
- source: <20260716-pks-copy-wo-the-repository-v2-1-8f5e32942929@pks.im>
667
-
668
-
669
-* ps/refspec-wo-the-repository (2026-07-16) 3 commits
670
- (merged to 'next' on 2026-07-20 at 31044c3fc9)
671
- + refspec: stop depending on `the_repository`
672
- + refspec: let callers pass in hash algorithm when parsing items
673
- + refspec: group related structures and functions
674
-
675
- The dependency on the global 'the_repository' variable in the
676
- 'refspec.c' API has been removed by passing the hash algorithm
677
- explicitly to refspec-parsing functions and storing it in 'struct
678
- refspec'.
679
-
680
- Will merge to 'master'.
681
- source: <20260716-pks-refspec-wo-the-repository-v1-0-aa40844d067f@pks.im>
682
-
683
-
913
* ps/writev (2026-07-16) 5 commits
914
- fast-import: use writev(3p) to send cat-blob responses
915
- sideband: use writev(3p) to send pktlines
@@ -695,25 +924,10 @@ Release tarballs are available at:
924
925
Waiting for response.
926
cf. <f8050598-392f-44c9-8d66-0454740a7a12@kdbg.org>
698
- cf. <a2676ec6-39d5-4220-8549-10a17daec668@hogyros.de>
699
- cf. <xmqqwluuekbh.fsf@gitster.g>
927
+ cf. <xmqqo6fso2s8.fsf@gitster.g>
928
source: <20260716-pks-reintroduce-writev-v1-0-ea9038c884bc@pks.im>
929
930
703
-* sc/wt-status-avoid-quadratic-insertion (2026-07-18) 1 commit
704
- (merged to 'next' on 2026-07-20 at 9330d42a4a)
705
- + wt-status: avoid repeated insertion for untracked paths
706
-
707
- The enumeration of untracked and ignored files in 'git status' has
708
- been optimized by avoiding quadratic complexity when inserting into
709
- string lists, reducing the construction cost from O(n^2) to O(n log
710
- n).
711
-
712
- Will merge to 'master'.
713
- cf. <20260718083828.GE22588@coredump.intra.peff.net>
714
- source: <20260718081449.26747-1-sahityajb@gmail.com>
715
-
716
-
931
* tb/send-pack-no-ref-delta (2026-07-12) 4 commits
932
- send-pack: honor `no-ref-delta` capability
933
- pack-objects: support reuse with `--no-ref-delta`
@@ -724,12 +938,16 @@ Release tarballs are available at:
938
encoded packfiles when the other side asks it to.
939
940
Needs review.
941
+ cf. <alQ7WKITYDXfiVn9@com-79390>
942
source: <alQ7WKITYDXfiVn9@com-79390>
943
944
730
-* tn/packfile-uri-concurrency (2026-07-25) 3 commits
945
+* tn/packfile-uri-concurrency (2026-07-26) 6 commits
946
- fetch-pack: accept "pack" output for packfile URIs
947
+ - http: permit unlinking partial packs on Windows
948
- http: avoid concurrent appends to partial packs
949
+ - http: accept HTTP 416 for complete partial packs
950
+ - http: avoid closing index-pack input twice
951
- http-fetch: correct --index-pack-arg documentation
952
953
Concurrent downloads of packfiles via packfile URIs and dumb HTTP have
@@ -739,11 +957,9 @@ Release tarballs are available at:
957
'fetch-pack' command has also been updated to tolerate pre-existing
958
'.keep' files.
959
742
- Expecting a reroll.
743
- cf. <20260726092027.GA3529827@coredump.intra.peff.net>
744
- cf. <20260726102712.GA3535709@coredump.intra.peff.net>
745
- cf. <20260726100421.12648-1-tnyman@openai.com>
746
- source: <cover.1785047139.git.tnyman@openai.com>
960
+ Needs review.
961
+ cf. <cover.1785047139.git.tnyman@openai.com>
962
+ source: <cover.1785111375.git.tnyman@openai.com>
963
964
965
* rs/tempfile-wo-the-repository (2026-07-14) 5 commits
@@ -783,6 +999,7 @@ Release tarballs are available at:
999
limits, avoiding potential truncation issues on 64-bit Windows.
1000
1001
Needs review.
1002
+ cf. <pull.2175.git.1783615780.gitgitgadget@gmail.com>
1003
source: <pull.2175.git.1783615780.gitgitgadget@gmail.com>
1004
1005
@@ -800,6 +1017,7 @@ Release tarballs are available at:
1017
also fails.
1018
1019
Needs review.
1020
+ cf. <20260716140956.1023740-1-paulius.zaleckas@gmail.com>
1021
source: <20260716140956.1023740-1-paulius.zaleckas@gmail.com>
1022
1023
@@ -811,7 +1029,7 @@ Release tarballs are available at:
1029
to spawn a 'git apply' subprocess.
1030
1031
Needs review.
814
- cf. <xmqqechab03t.fsf@gitster.g>
1032
+ cf. <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com>
1033
source: <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com>
1034
1035
@@ -826,8 +1044,6 @@ Release tarballs are available at:
1044
Ejected due to conflicts with 'pw/rebase-drop-notes-with-commit'.
1045
1046
Waiting for response.
829
- cf. <690b965e-5f07-4aa4-a64c-96e60a86d73b@gmail.com>
830
- cf. <xmqqh5m494yh.fsf@gitster.g>
1047
cf. <b4cf8f14-1ffa-4395-bc3e-936538574665@gmail.com>
1048
source: <20260711-fz-autosquash-empty-v3-1-d227b63eb511@gmail.com>
1049
@@ -842,22 +1058,24 @@ Release tarballs are available at:
1058
Apache handles concurrent requests.
1059
1060
Needs review.
1061
+ cf. <pull.2171.v2.git.1783704657.gitgitgadget@gmail.com>
1062
source: <pull.2171.v2.git.1783704657.gitgitgadget@gmail.com>
1063
1064
1065
* ps/odb-pluggable-housekeeping (2026-07-12) 12 commits
849
- - odb: make optimizations pluggable
850
- - builtin/gc: fix signedness issues in ODB-related functionality
851
- - builtin/gc: refactor ODB optimizations to operate on "files" source
852
- - builtin/gc: introduce `odb_optimize_required()`
853
- - builtin/gc: move geometric repacking into `odb_optimize()`
854
- - builtin/gc: introduce object database optimization options
855
- - builtin/gc: inline config values specific to the "files" backend
856
- - builtin/gc: make repack arguments self-contained
857
- - builtin/gc: extract object database optimizations into separate function
858
- - builtin/gc: move worktree and rerere tasks before object optimizations
859
- - odb: run "pre-auto-gc" hook for all maintenance tasks
860
- - t7900: simplify how we check for maintenance tasks
1066
+ (merged to 'next' on 2026-07-28 at 1e622f0e29)
1067
+ + odb: make optimizations pluggable
1068
+ + builtin/gc: fix signedness issues in ODB-related functionality
1069
+ + builtin/gc: refactor ODB optimizations to operate on "files" source
1070
+ + builtin/gc: introduce `odb_optimize_required()`
1071
+ + builtin/gc: move geometric repacking into `odb_optimize()`
1072
+ + builtin/gc: introduce object database optimization options
1073
+ + builtin/gc: inline config values specific to the "files" backend
1074
+ + builtin/gc: make repack arguments self-contained
1075
+ + builtin/gc: extract object database optimizations into separate function
1076
+ + builtin/gc: move worktree and rerere tasks before object optimizations
1077
+ + odb: run "pre-auto-gc" hook for all maintenance tasks
1078
+ + t7900: simplify how we check for maintenance tasks
1079
1080
Object database housekeeping in 'git gc' and 'git maintenance' has
1081
been refactored to be pluggable. The files-backend-specific logic,
@@ -866,34 +1084,11 @@ Release tarballs are available at:
1084
files object database source, enabling future alternative object
1085
database backends to implement their own housekeeping services.
1086
869
- Waiting for response.
1087
+ Will merge to 'master'.
1088
cf. <xmqqh5m2yhkm.fsf@gitster.g>
871
- cf. <xmqqwluyyhv1.fsf@gitster.g>
872
- cf. <amCmwKjbq2aNt8mZ@pks.im>
873
- cf. <xmqqwluhvhtu.fsf@gitster.g>
1089
source: <20260713-b4-pks-odb-optimize-v2-0-9c2c3ee94b38@pks.im>
1090
1091
877
-* ps/refs-wo-the-repository (2026-07-15) 7 commits
878
- (merged to 'next' on 2026-07-19 at 12685f410c)
879
- + refs: remove remaining uses of `the_repository`
880
- + worktree: pass repository to public functions
881
- + worktree: pass repository to file-local functions
882
- + worktree: refactor code to use available repositories
883
- + refs/files: drop `USE_THE_REPOSITORY_VARIABLE`
884
- + refs/packed: de-globalize handling of "core.packedRefsTimeout"
885
- + Merge branch 'ps/refs-writing-subcommands' into ps/refs-wo-the-repository
886
-
887
- The ref subsystem and the worktree API have been refactored to pass a
888
- repository pointer down the call chain, allowing them to drop
889
- references to the global 'the_repository' variable. As part of this,
890
- the handling of the 'core.packedRefsTimeout' configuration has been
891
- moved into the per-repository ref store structure.
892
-
893
- Will merge to 'master'.
894
- source: <20260716-pks-refs-wo-the-repository-v3-0-db0a804e0224@pks.im>
895
-
896
-
1092
* ds/sparse-index-ita-crash (2026-07-06) 1 commit
1093
- sparse-index: avoid crash on intent-to-add entry outside the cone
1094
@@ -902,6 +1097,7 @@ Release tarballs are available at:
1097
fixed by avoiding collapsing such subtrees.
1098
1099
Needs review.
1100
+ cf. <pull.2167.git.1783345853272.gitgitgadget@gmail.com>
1101
source: <pull.2167.git.1783345853272.gitgitgadget@gmail.com>
1102
1103
@@ -941,6 +1137,7 @@ Release tarballs are available at:
1137
the header is ultimately rejected.
1138
1139
Needs review.
1140
+ cf. <20260702041759.51572-1-zhihao.yao@njit.edu>
1141
source: <20260702041759.51572-1-zhihao.yao@njit.edu>
1142
1143
@@ -952,34 +1149,12 @@ Release tarballs are available at:
1149
test_path_is_missing() helper functions instead of raw 'test -[fde]'
1150
commands.
1151
955
- Waiting for response, stalled.
956
- cf. <xmqqmrwbsybn.fsf@gitster.g>
1152
+ Waiting for response for too long, stalled.
1153
+ cf. <xmqqik60o22y.fsf@gitster.g>
1154
cf. <akTKHfKPsP3-Rn31@pks.im>
1155
source: <20260630020220.1559190-1-bblima@usp.br>
1156
1157
961
-* pw/rebase-drop-notes-with-commit (2026-07-15) 9 commits
962
- (merged to 'next' on 2026-07-20 at 5475c9f935)
963
- + sequencer: do not record dropped commits as rewritten
964
- + sequencer: use an enum to represent result of picking a commit
965
- + sequencer: simplify pick_one_commit()
966
- + sequencer: remove unnecessary condition in pick_one_commit()
967
- + sequencer: simplify handling of fixup with conflicts
968
- + sequencer: remove unnecessary "or" in pick_one_commit()
969
- + sequencer: never reschedule on failed commit
970
- + sequencer: be more careful with external merge
971
- + t3400: restore coverage for note copying with apply backend
972
-
973
- The rebase post-rewrite notes-copying logic has been corrected. When
974
- a commit is dropped during rebase (e.g., because its changes are
975
- already upstream), it is no longer recorded as rewritten, preventing
976
- its notes from being copied to an unrelated commit.
977
-
978
- Will merge to 'master'.
979
- cf. <xmqqy0f5d25g.fsf@gitster.g>
980
- source: <cover.1784128921.git.phillip.wood@dunelm.org.uk>
981
-
982
-
1158
* ty/migrate-excludes-file (2026-07-13) 10 commits
1159
(merged to 'next' on 2026-07-23 at 749560a29c)
1160
+ repository: adjust the comment of config_values_private_
@@ -1014,9 +1189,7 @@ Release tarballs are available at:
1189
Ejected for now, as it causes too many evil merges with other topics.
1190
1191
Waiting for response.
1017
- cf. <xmqqqzkx9t95.fsf@gitster.g>
1018
- cf. <xmqqjyqpb96n.fsf@gitster.g>
1019
- cf. <al6Yz_QMlyU1GETv@fruit.crustytoothpaste.net>
1192
+ cf. <xmqqcxxi3eov.fsf@gitster.g>
1193
source: <20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im>
1194
1195
@@ -1035,25 +1208,22 @@ Release tarballs are available at:
1208
the specified range and path.
1209
1210
Needs review.
1038
- cf. <xmqq8q8bpl03.fsf@gitster.g>
1211
source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
1212
1213
1214
* hn/history-squash (2026-07-20) 5 commits
1043
- (merged to 'next' on 2026-07-23 at 2790c83e45)
1044
- + history: re-edit a squash with every message
1045
- + sequencer: share the squash message marker helpers and flags
1046
- + history: add squash subcommand to fold a range
1047
- + history: give commit_tree_ext a message template
1048
- + history: extract helper for a commit's parent tree
1215
+ - history: re-edit a squash with every message
1216
+ - sequencer: share the squash message marker helpers and flags
1217
+ - history: add squash subcommand to fold a range
1218
+ - history: give commit_tree_ext a message template
1219
+ - history: extract helper for a commit's parent tree
1220
1221
The experimental 'git history' command has been taught a new 'squash'
1222
subcommand to fold a range of commits into a single commit, with any
1223
descendants replayed on top.
1224
1054
- Will merge to 'master'.
1055
- cf. <DK1KIF2OI8IF.11188A3YEQV1C@lfurio.us>
1056
- cf. <DK1KIH6CXW0X.1U2V3GU8L6HB7@lfurio.us>
1225
+ Needs review.
1226
+ cf. <f5f7af53-df3e-4902-b350-8fcf8ccb02ad@gmail.com>
1227
source: <pull.2337.v10.git.git.1784536024.gitgitgadget@gmail.com>
1228
1229
@@ -1069,39 +1239,23 @@ Release tarballs are available at:
1239
logic, and reachability closure for bitmaps was broken.
1240
1241
Needs review.
1242
+ cf. <cover.1781294771.git.me@ttaylorr.com>
1243
source: <cover.1781294771.git.me@ttaylorr.com>
1244
1245
1075
-* td/ref-filter-memoize-contains (2026-06-12) 3 commits
1076
- (merged to 'next' on 2026-07-19 at 5b640e33a1)
1077
- + commit-reach: die on contains walk errors
1078
- + ref-filter: memoize --contains with generations
1079
- + commit-reach: reject cycles in contains walk
1080
-
1081
- 'git branch --contains' and 'git for-each-ref --contains' have been
1082
- optimized to use the memoized commit traversal previously used only by
1083
- 'git tag --contains', significantly speeding up connectivity checks
1084
- across many candidate refs with shared history.
1085
-
1086
- Will merge to 'master'.
1087
- cf. <20260716091924.GB1212956@coredump.intra.peff.net>
1088
- source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com>
1089
-
1090
-
1091
-* tc/replay-linearize (2026-07-07) 3 commits
1092
- (merged to 'next' on 2026-07-09 at 371c2e9c3b)
1093
- + replay: offer an option to linearize the commit topology
1094
- + replay: resolve the replay base outside pick_regular_commit()
1095
- + replay: add helper to put entry into replayed_commits
1246
+* tc/replay-linearize (2026-07-28) 3 commits
1247
+ - replay: offer an option to linearize the commit topology
1248
+ - replay: resolve the replay base outside pick_regular_commit()
1249
+ - replay: add helper to put entry into replayed_commits
1250
1251
The 'git replay' command has been taught the '--linearize' option to
1252
drop merge commits and linearize the replayed history, mimicking 'git
1253
rebase --no-rebase-merges'.
1254
1101
- On hold, waiting for response from the author.
1102
- cf. <xmqq5x2qz42z.fsf@gitster.g>
1103
- cf. <CABPp-BGzU9KHGF1nipi2HZaa1AiikMKGGaapQzHVH06wO4V1ww@mail.gmail.com>
1104
- source: <20260707-toon-git-replay-drop-merges-v7-0-808ab9b4afa6@iotcl.com>
1255
+ Needs review.
1256
+ Kicked back to 'seen'.
1257
+ cf. <xmqqy0evc6n9.fsf@gitster.g>
1258
+ source: <20260728-toon-git-replay-drop-merges-v8-0-ced11dffe749@iotcl.com>
1259
1260
1261
* ps/cat-file-remote-object-info (2026-07-24) 13 commits
@@ -1151,8 +1305,6 @@ Release tarballs are available at:
1305
while leaving all output formatting (word diff, color, blame, etc.) to
1306
Git's standard pipeline.
1307
1154
- Ejected for now, as it conflicts badly with 'mm/line-log-limited-ops'.
1155
-
1308
Needs review.
1309
source: <pull.2120.v6.git.1785091889.gitgitgadget@gmail.com>
1310
@@ -1183,6 +1335,7 @@ Release tarballs are available at:
1335
--fixup' variations.
1336
1337
Needs review.
1338
+ cf. <cover.1779792311.git.erik@cervined.in>
1339
source: <cover.1779792311.git.erik@cervined.in>
1340
1341
@@ -1199,31 +1352,11 @@ Release tarballs are available at:
1352
to remove local branches that are already merged into their tracked
1353
remote-tracking branches.
1354
1202
- Will merge to 'next'?
1203
- cf. <xmqqy0ez14s9.fsf@gitster.g>
1355
+ Needs review.
1356
+ cf. <1f282ad4-9937-4c95-89d4-70f7a1c883a8@gmail.com>
1357
source: <pull.2285.v23.git.git.1784979136.gitgitgadget@gmail.com>
1358
1359
1207
-* ps/shift-root-in-graph (2026-07-14) 7 commits
1208
- (merged to 'next' on 2026-07-19 at bebf13a239)
1209
- + graph: add --[no-]graph-indent and log.graphIndent
1210
- + graph: move config reading into graph_read_config()
1211
- + graph: wrap cascading commits after 4 columns
1212
- + graph: indent visual root in graph
1213
- + graph: add a 2 commit buffer for lookahead
1214
- + revision: add next_commit_to_show()
1215
- + lib-log-graph: move check_graph function
1216
-
1217
- 'git log --graph' has been modified to visually distinguish parentless
1218
- 'root' commits (and commits that become roots due to history
1219
- simplification) by indenting them, preventing them from appearing
1220
- falsely related to unrelated commits rendered immediately above them.
1221
-
1222
- Will merge to 'master'.
1223
- cf. <CA+J6zkQNzEAhhY74qDrOwfFVrshEF7YFxWRRkwE3ttJo15ZbAg@mail.gmail.com>
1224
- source: <20260714-ps-pre-commit-indent-v12-0-d50938e006df@gmail.com>
1225
-
1226
-
1360
* kk/merge-base-exhaustion (2026-07-11) 11 commits
1361
- commit-reach: remove commit-date ordering fallback
1362
- commit-reach: move min_generation check into paint_queue_get()