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()