What's cooking (2026/07 #07)

Junio C Hamano committed Jul 16, 2026 at 15:22 UTC 23297dce5593a9d0530dbccd9a641911f0ab61b2
1 file changed +442 -318
whats-cooking.txt
+442 -318
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Jul 2026, #06)
3 -X-master-at: 55526a18268bbc1ddaf8a6b7850c33d984eac9e9
4 -X-next-at: 8e2bf96aa5bacd9f277397638fd9823d0be25e88
2 +Subject: What's cooking in git.git (Jul 2026, #07)
3 +X-master-at: 44de1520f08d1dfebc3ab2d9f644208eaa5ac925
4 +X-next-at: 700c83d4f35453396241ab93a8de5d321fb3fa83
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Jul 2026, #06)
7 +What's cooking in git.git (Jul 2026, #07)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -51,171 +51,319 @@ Release tarballs are available at:
51 --------------------------------------------------
52 [Graduated to 'master']
53
54 -* ad/gpg-strip-cr-before-lf (2026-06-24) 1 commit
55 - (merged to 'next' on 2026-07-06 at b099249efd)
56 - + gpg-interface: fix strip_cr_before_lf to only remove CR before LF
54 +* jc/history-message-prep-fix (2026-06-29) 1 commit
55 + (merged to 'next' on 2026-07-06 at 00534a21ce)
56 + + history: streamline message preparation and plug file stream leak
57
58 - The GPG and SSH signature parsing code has been corrected to strip
59 - carriage return characters only when they immediately precede line
60 - feeds, instead of unconditionally stripping all carriage returns.
58 + A write file stream resource leak has been fixed as part of a code
59 + cleanup.
60
61 Graduated to 'master'.
63 - source: <20260624093618.17456-1-antonio.destefani08@gmail.com>
62 + cf. <akO1mhi2u2PntLbt@pks.im>
63 + source: <xmqqmrwdxrat.fsf@gitster.g>
64
65
66 -* hn/branch-push-slip-advice (2026-06-27) 2 commits
67 - (merged to 'next' on 2026-07-06 at acdff65ac5)
68 - + push: suggest <remote> <branch> for a slash slip
69 - + branch: suggest <remote>/<branch> on upstream slip
66 +* jk/bloom-leak-fixes (2026-06-30) 3 commits
67 + (merged to 'next' on 2026-07-08 at 3b9a1cda3f)
68 + + line-log: drop extra copy of range with bloom filters
69 + + revision: avoid leaking bloom keyvecs with multiple traversals
70 + + bloom: make bloom-filter slab initialization idempotent
71
71 - When 'git push origin/main' or 'git branch origin main' is run, the
72 - command is now recognized as a potential typo, and advice has been
73 - added to offer a typo fix.
72 + Various memory leaks in the Bloom-filter code paths that are exposed
73 + when running tests with the 'GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1'
74 + environment variable have been plugged.
75
76 Graduated to 'master'.
76 - cf. <xmqqfr272lq7.fsf@gitster.g>
77 - source: <pull.2331.v3.git.git.1782583345.gitgitgadget@gmail.com>
77 + cf. <b641aed4-ad52-477b-b1d8-9d8e470be46f@gmail.com>
78 + cf. <xmqqo6gqobrt.fsf@gitster.g>
79 + source: <20260701063538.GA2579765@coredump.intra.peff.net>
80
81
80 -* jk/format-patch-leakfix (2026-06-29) 2 commits
81 - (merged to 'next' on 2026-07-06 at 35aff0d609)
82 - + format-patch: fix leak of rev_info in prepare_bases()
83 - + t: move LSan errors from stdout to stderr
82 +* mg/meson-hook-list-buildfix (2026-07-01) 1 commit
83 + (merged to 'next' on 2026-07-08 at 10763a0ebc)
84 + + meson: restore hook-list.h to builtin_sources
85
85 - A memory leak in the '--base' handling of 'git format-patch' has been
86 - plugged, and the leak reporting of the test suite when running under a
87 - TAP harness has been improved.
86 + A racy build failure under Meson has been corrected by ensuring that
87 + the generated header file 'hook-list.h' is built before compiling
88 + files in 'builtin_sources' that depend on it.
89
90 Graduated to 'master'.
90 - cf. <akOZy-BygZS8fqPM@pks.im>
91 - source: <20260630063944.GA3733670@coredump.intra.peff.net>
91 + cf. <akZGJP1kVtjBFN_e@pks.im>
92 + source: <20260701193928.358825-1-floppym@gentoo.org>
93
94
94 -* jk/reftable-leakfix (2026-06-28) 1 commit
95 - (merged to 'next' on 2026-07-06 at 55ce81f2d5)
96 - + reftable: fix unlikely leak on API error
95 +* ps/history-drop (2026-07-01) 11 commits
96 + (merged to 'next' on 2026-07-08 at 6fb84708a4)
97 + + builtin/history: implement "drop" subcommand
98 + + builtin/history: split handling of ref updates into two phases
99 + + replay: expose `replay_result_queue_update()`
100 + + reset: stop assuming that the caller passes in a clean index
101 + + reset: allow the caller to specify the current HEAD object
102 + + reset: introduce ability to skip updating HEAD
103 + + reset: introduce dry-run mode
104 + + reset: modernize flags passed to `reset_working_tree()`
105 + + reset: rename `reset_head()`
106 + + reset: drop `USE_THE_REPOSITORY_VARIABLE`
107 + + read-cache: split out function to drop unmerged entries to stage 0
108
98 - A memory leak in the 'reftable_writer_new()' initialization function
99 - has been fixed by delaying the allocation of 'struct reftable_writer'
100 - until after input options are validated.
109 + The experimental 'git history' command has been taught a new 'drop'
110 + subcommand to remove a commit, with its descendants replayed onto its
111 + parent.
112
113 Graduated to 'master'.
103 - cf. <akIPBJLtPqDjQt-A@pks.im>
104 - source: <20260628090314.GA661068@coredump.intra.peff.net>
114 + cf. <xmqq1pdmprbk.fsf@gitster.g>
115 + cf. <CAP8UFD3OAktVQsLuqBNFH2uhEO31PH8ZF3ZT1ZW8k++XE8YLPw@mail.gmail.com>
116 + source: <20260701-b4-pks-history-drop-v8-0-19b5cdf1facd@pks.im>
117
118
107 -* kk/prio-queue-get-put-fusion (2026-06-08) 2 commits
108 - (merged to 'next' on 2026-07-06 at aa748c4564)
109 - + prio-queue: fold lazy_queue into prio_queue for automatic get+put fusion
110 - + prio-queue: rename .nr to .nr_ and add accessor helpers
111 - (this branch is used by kk/prio-queue-cascade-sift.)
119 +* ps/odb-drop-whence (2026-07-02) 7 commits
120 + (merged to 'next' on 2026-07-08 at f43ee51cc3)
121 + + odb: document object info fields
122 + + odb: drop `whence` field from object info
123 + + treewide: convert users of `whence` to the new source field
124 + + odb: add `source` field to struct object_info_source
125 + + odb: make backend-specific fields optional
126 + + packfile: thread odb_source_packed through packed_object_info()
127 + + Merge branch 'ps/odb-source-packed' into ps/odb-drop-whence
128 + (this branch is used by ps/odb-for-each-object-filter.)
129 +
130 + The 'whence' field in 'struct object_info' has been removed. The
131 + backend-specific object information retrieval has been refactored into
132 + an opt-in 'struct object_info_source' structure.
133 +
134 + Graduated to 'master'.
135 + cf. <xmqqv7b0rmt6.fsf@gitster.g>
136 + source: <20260702-b4-pks-odb-drop-whence-v2-0-b0af7468ad95@pks.im>
137 +
138 +
139 +* ps/refs-writing-subcommands (2026-07-06) 5 commits
140 + (merged to 'next' on 2026-07-08 at f001147283)
141 + + builtin/refs: add "rename" subcommand
142 + + builtin/refs: add "create" subcommand
143 + + builtin/refs: add "update" subcommand
144 + + builtin/refs: add "delete" subcommand
145 + + builtin/refs: drop `the_repository`
146 + (this branch is used by ps/refs-wo-the-repository.)
147
113 - The lazy priority queue optimization pattern (deferring actual removal
114 - in 'prio_queue_get()' to allow get+put fusion) has been folded
115 - directly into 'prio_queue' itself, speeding up commit traversal
116 - workflows and simplifying callers.
148 + The 'git refs' toolbox has been extended with new 'create', 'delete',
149 + 'update', and 'rename' subcommands to create, delete, update, and
150 + rename references, respectively.
151
152 Graduated to 'master'.
119 - cf. <xmqqh5mjrbgq.fsf@gitster.g>
120 - source: <pull.2140.v4.git.1780945851.gitgitgadget@gmail.com>
153 + source: <20260706-pks-refs-writing-subcommands-v4-0-d51f6ce7f830@pks.im>
154
155
123 -* ps/odb-generalize-prepare (2026-06-22) 3 commits
124 - (merged to 'next' on 2026-07-06 at 6132517517)
125 - + odb: introduce `odb_prepare()`
126 - + odb/source: generalize `reprepare()` callback
127 - + Merge branch 'ps/odb-source-packed' into ps/odb-generalize-prepare
156 +* rs/blame-abbrev-marks (2026-07-06) 1 commit
157 + (merged to 'next' on 2026-07-08 at e4962bd3d5)
158 + + blame: reserve mark column only if necessary
159
129 - The 'reprepare()' callback for object database sources has been
130 - generalized into a 'prepare()' callback with an optional flush cache
131 - flag, and a new 'odb_prepare()' wrapper has been introduced to allow
132 - pre-opening object database sources.
160 + The alignment of commit object name abbreviations in 'git blame'
161 + output has been optimized to reserve a column for marks (caret,
162 + question mark, or asterisk) only when such marks are actually shown.
163
164 Graduated to 'master'.
135 - cf. <87ik704f1j.fsf@emacs.iotcl.com>
136 - source: <20260622-b4-pks-odb-generalize-prepare-v1-0-d2a5c5d13144@pks.im>
165 + cf. <xmqqzf0397u1.fsf@gitster.g>
166 + source: <92991b5e-0667-4315-89d5-1514a5499297@web.de>
167
168 --------------------------------------------------
169 [New Topics]
170
141 -* tb/send-pack-no-ref-delta (2026-07-12) 4 commits
142 - - send-pack: honor `no-ref-delta` capability
143 - - pack-objects: support reuse with `--no-ref-delta`
144 - - pack-objects: introduce `--no-ref-delta`
145 - - t/helper: teach pack-deltas to list delta entries
146 -
147 - 'git send-pack' has been taught to refrain from sending 'REF_DELTA'
148 - encoded packfiles when the other side asks it to.
171 +* js/coverity-unchecked-returns-fix (2026-07-14) 11 commits
172 + - bisect: handle dup() failure when redirecting stdout
173 + - bisect: check get_terms return at all call sites
174 + - bisect: check strbuf_getline_lf return when reading terms
175 + - transport-helper: warn when export-marks file cannot be finalized
176 + - transport-helper: check dup() return in get_exporter
177 + - compat/pread: check initial lseek for errors
178 + - last-modified: handle repo_parse_commit() failures
179 + - reftable tests: check reftable_table_init_ref_iterator() return
180 + - reftable/block: check deflateInit() return value
181 + - config: propagate launch_editor() failure in show_editor()
182 + - http: die on curl_easy_duphandle failure in get_active_slot
183 +
184 + A handful of code paths have been corrected to check return values
185 + from functions like 'curl_easy_duphandle()', 'deflateInit()',
186 + 'lseek()', 'dup()', and 'strbuf_getline_lf()', resolving several
187 + Coverity warnings about unchecked returns.
188 +
189 + Waiting for response.
190 + cf. <xmqqldbdqciy.fsf@gitster.g>
191 + cf. <xmqqh5m1qcfh.fsf@gitster.g>
192 + cf. <alcvmX3b6y92KE4y@pks.im>
193 + cf. <alcvnm0xiOv5W0w_@pks.im>
194 + source: <pull.2179.git.1784069325.gitgitgadget@gmail.com>
195 +
196 +
197 +* jk/diff-relative-cached-unmerged (2026-07-14) 1 commit
198 + - diff: ignore unmerged paths outside prefix with --relative --cached
199 +
200 + 'git diff --relative' running with '--cached' has been corrected to
201 + avoid a segfault when encountering unmerged paths outside the
202 + prefix.
203
204 Needs review.
151 - source: <alQ7WKITYDXfiVn9@com-79390>
205 + source: <20260715060523.GA517940@coredump.intra.peff.net>
206
207
154 -* cc/doc-fast-export-synopsis-fix (2026-07-13) 1 commit
155 - - fast-export: standardize usage string and SYNOPSIS
208 +* jc/submodule-helper-avoid-zu (2026-07-15) 1 commit
209 + - submodule--helper: avoid use of %zu for now
210
157 - The usage string and SYNOPSIS for 'git fast-export' have been
158 - standardized to make them consistent with each other and with other
159 - commands.
211 + An accidental use of '%zu' format flag in 'git submodule--helper'
212 + has been corrected to use 'PRIuMAX' and cast the value to
213 + 'uintmax_t', to avoid portability issues.
214
215 Will merge to 'next'?
162 - cf. <alX5Nl8uX4ctVqo3@pks.im>
163 - source: <20260713124153.245268-1-christian.couder@gmail.com>
216 + cf. <87a4rrxg3r.fsf@gentoo.mail-host-address-is-not-set>
217 + source: <xmqq4ii0ko9t.fsf@gitster.g>
218
219
166 -* sk/t1100-modernize (2026-07-14) 2 commits
167 - - t1100: move creation of expected output into setup test
168 - - t1100: modernize test style
220 +* sk/t7614-do-not-hide-git-exit-status (2026-07-15) 1 commit
221 + (merged to 'next' on 2026-07-16 at 0d143986e7)
222 + + t7614: avoid hiding git's exit code in a pipe
223
170 - The test script 't/t1100-commit-tree-options.sh' has been modernized
171 - by converting test cases to the modern style (using single quotes and
172 - tab indentation) and moving the creation of the expected file inside
173 - the setup test so it runs under the protection of the test harness.
224 + The test script 't/t7614-merge-signoff.sh' has been updated to avoid
225 + suppressing the exit code of 'git' commands in a pipe.
226
175 - Will merge to 'next'?
176 - cf. <xmqq4ii1v7x0.fsf@gitster.g>
177 - source: <20260714122033.61947-1-diy2903@gmail.com>
227 + Will merge to 'master'.
228 + cf. <xmqq1pd4m4ea.fsf@gitster.g>
229 + source: <20260715113344.3490-1-diy2903@gmail.com>
230
231
180 -* tn/packfile-uri-concurrency (2026-07-13) 2 commits
181 - - fetch-pack: accept "pack" output for packfile URIs
182 - - http: use unique tempfiles for packfile URI downloads
232 +* ds/trace2-tolerate-failed-timestamp (2026-07-15) 1 commit
233 + - trace2: tolerate failed timestamp formatting
234
184 - Concurrent downloads of packfiles via packfile URIs have been
185 - supported by using unique temporary files, preventing corruption when
186 - multiple processes fetch the same pack. The 'fetch-pack' command has
187 - also been updated to tolerate pre-existing '.keep' files.
235 + The trace2 telemetry library has been updated to tolerate failures
236 + from system calls like 'gettimeofday()' and datetime formatting
237 + functions, replacing potential program crashes with blank placeholder
238 + timestamps in the traces.
239
189 - Expecting a reroll.
190 - cf. <alaAi4vNwi-KabYV@com-76773>
191 - source: <alVn-QmK3K91_tkH@com-76773>
240 + Needs review.
241 + source: <pull.2178.git.1784131932489.gitgitgadget@gmail.com>
242
243
194 -* rs/strbuf-avoid-redundant-reset (2026-07-14) 1 commit
195 - - strbuf: avoid redundant reset in strbuf_getwholeline()
244 +* mm/revision-pure-get-commit-action (2026-07-15) 1 commit
245 + - revision: make get_commit_action() a pure predicate
246
197 - A redundant 'strbuf_reset()' call in the 'HAVE_GETDELIM' path of
198 - 'strbuf_getwholeline()' has been removed, as 'getdelim()' overwrites
199 - the buffer and the length is updated afterwards.
247 + The 'get_commit_action()' function has been refactored to be a pure
248 + predicate by moving the side-effecting line-level log range folding to
249 + 'simplify_commit()'. This ensures that evaluating a commit's action
250 + before the walk reaches it does not prematurely mutate its tracked
251 + line ranges, making it safer for potential lookahead evaluations.
252 +
253 + Needs review.
254 + source: <pull.2169.git.1784143793613.gitgitgadget@gmail.com>
255 +
256 +
257 +* rs/remote-curl-simplify-push-specs (2026-07-14) 1 commit
258 + - remote-curl: simplify passing of push specs
259 +
260 + The passing of push destination specifications in the 'remote-curl'
261 + helper has been simplified by removing the explicit 'count' parameter
262 + and relying on the NULL-termination of the array.
263
264 Will merge to 'next'?
202 - cf. <xmqq8q7dv82b.fsf@gitster.g>
203 - source: <d4ffe7fb-f782-4f06-9e3b-f72729d1e225@web.de>
265 + cf. <alhr2bb0lUTHtvjO@pks.im>
266 + cf. <xmqqpl0nhutx.fsf@gitster.g>
267 + source: <935883f3-3be4-4c51-9711-5208b9ef9ca1@web.de>
268
269
206 -* rs/tempfile-wo-the-repository (2026-07-14) 5 commits
207 - - use repo_hold_lock_file_for_update{,_mode,_timeout}() with custom repos
208 - - tempfile: stop using the_repository
209 - - lockfile: add repo_hold_lock_file_for_update{,_timeout}{,_mode}()
210 - - refs/packed: use repo_create_tempfile()
211 - - tempfile: add repo_create_tempfile{,_mode}()
270 +* js/wincred-fixes (2026-07-16) 2 commits
271 + (merged to 'next' on 2026-07-16 at 8c5927f06f)
272 + + wincred: prevent silent credential loss when storing OAuth tokens
273 + + wincred: avoid memory corruption when erasing a credential
274
213 - The tempfile and lockfile APIs have been refactored to stop depending
214 - on the 'the_repository' global variable, and their callers have been
215 - updated to use the repository-aware variants.
275 + The wincred credential helper has been updated to avoid memory
276 + corruption when erasing credentials and to prevent silent
277 + credential loss when storing OAuth tokens, by correcting buffer
278 + allocations and arguments passed to safe-CRT APIs.
279 +
280 + Will merge to 'master'.
281 + source: <pull.2182.git.1784212072.gitgitgadget@gmail.com>
282 +
283 +
284 +* kk/no-walk-pathspec-fix (2026-07-16) 2 commits
285 + - revision: fix --no-walk path filtering regression
286 + - Merge branch 'kk/streaming-walk-pqueue' into kk/no-walk-pathspec-fix
287 +
288 + The 'git rev-list --no-walk' command lost pathspec filtering when the
289 + streaming walk was refactored, which has been corrected.
290 +
291 + Will merge to 'next'.
292 + source: <pull.2181.git.1784198879711.gitgitgadget@gmail.com>
293 +
294 +
295 +* cc/fast-import-usage (2026-07-16) 7 commits
296 + - fast-import: use struct option for usage string
297 + - fast-import: move command state globals into 'struct fast_import_state'
298 + - fast-import: introduce 'struct fast_import_state'
299 + - fast-import: localize 'i' into the 'for' loops using it
300 + - api-parse-options.adoc: document hidden and OPT_*_F option macros
301 + - api-parse-options.adoc: document per-option flags
302 + - parse-options: introduce OPT_HIDDEN_GROUP
303 +
304 + The usage string of 'git fast-import' has been updated to use the
305 + 'parse_options' API for displaying help, and its SYNOPSIS in the
306 + documentation has been standardized to match.
307
308 Needs review.
218 - source: <20260714175956.54601-1-l.s.r@web.de>
309 + cf. <xmqq4ihyehyb.fsf@gitster.g>
310 + cf. <xmqqcxwmeiwq.fsf@gitster.g>
311 + source: <20260716165517.433849-1-christian.couder@gmail.com>
312 +
313 +
314 +* ps/copy-wo-the-repository (2026-07-16) 1 commit
315 + - copy: drop dependency on `the_repository`
316 +
317 + The 'copy_file()' and 'copy_file_with_time()' functions have been
318 + refactored to take a repository parameter, allowing the removal of the
319 + implicit dependency on the global 'the_repository' variable in
320 + 'copy.c'.
321 +
322 + Needs review.
323 + source: <20260716-pks-copy-wo-the-repository-v2-1-8f5e32942929@pks.im>
324 +
325 +
326 +* ps/refspec-wo-the-repository (2026-07-16) 3 commits
327 + - refspec: stop depending on `the_repository`
328 + - refspec: let callers pass in hash algorithm when parsing items
329 + - refspec: group related structures and functions
330 +
331 + The dependency on the global 'the_repository' variable in the
332 + 'refspec.c' API has been removed by passing the hash algorithm
333 + explicitly to refspec-parsing functions and storing it in 'struct
334 + refspec'.
335 +
336 + Needs review.
337 + source: <20260716-pks-refspec-wo-the-repository-v1-0-aa40844d067f@pks.im>
338 +
339 +
340 +* ps/writev (2026-07-16) 5 commits
341 + - fast-import: use writev(3p) to send cat-blob responses
342 + - sideband: use writev(3p) to send pktlines
343 + - wrapper: properly handle MAX_IO_SIZE in writev(3p)
344 + - wrapper: introduce writev(3p) wrappers
345 + - compat/posix: introduce writev(3p) wrapper
346 +
347 + A compatibility wrapper for 'writev(3p)' has been reintroduced,
348 + including fixes for CMake build and 'MAX_IO_SIZE' limits on NonStop.
349 + Calls to 'write(3p)' in 'send_sideband()' and 'cat_blob()' have been
350 + refactored to use 'writev(3p)' wrappers to reduce syscall overhead.
351 +
352 + Needs review.
353 + cf. <f8050598-392f-44c9-8d66-0454740a7a12@kdbg.org>
354 + cf. <a2676ec6-39d5-4220-8549-10a17daec668@hogyros.de>
355 + source: <20260716-pks-reintroduce-writev-v1-0-ea9038c884bc@pks.im>
356 +
357 +
358 +* sc/wt-status-avoid-quadratic-insertion (2026-07-16) 1 commit
359 + - wt-status: avoid quadratic insertion for untracked paths
360 +
361 + The enumeration of untracked and ignored files in 'git status' has
362 + been optimized by avoiding quadratic complexity insertion into string
363 + lists, reducing the construction cost from O(n^2) to O(n log n).
364 +
365 + Needs review.
366 + source: <20260716185045.229320-1-sahityajb@gmail.com>
367
368 --------------------------------------------------
369 [Stalled]
@@ -250,7 +398,7 @@ Release tarballs are available at:
398 the current branch are skipped and duplicate updates are avoided to
399 prevent failures when branch aliases are present.
400
253 - Waiting for response(s) to review comment(s) for too long, stalled.
401 + Waiting for response for too long, stalled.
402 cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
403 source: <pull.2126.v2.git.1780482436865.gitgitgadget@gmail.com>
404
@@ -275,13 +423,99 @@ Release tarballs are available at:
423 period, avoiding failures when multiple processes attempt to update
424 the configuration simultaneously.
425
278 - Waiting for response(s) to review comment(s) for too long, stalled.
426 + Waiting for response for too long, stalled.
427 cf. <agrIrGwSMFlKTx9x@pks.im>
428 source: <20260517132111.1014901-1-joerg@thalheim.io>
429
430 --------------------------------------------------
431 [Cooking]
432
433 +* tb/send-pack-no-ref-delta (2026-07-12) 4 commits
434 + - send-pack: honor `no-ref-delta` capability
435 + - pack-objects: support reuse with `--no-ref-delta`
436 + - pack-objects: introduce `--no-ref-delta`
437 + - t/helper: teach pack-deltas to list delta entries
438 +
439 + 'git send-pack' has been taught to refrain from sending 'REF_DELTA'
440 + encoded packfiles when the other side asks it to.
441 +
442 + Needs review.
443 + source: <alQ7WKITYDXfiVn9@com-79390>
444 +
445 +
446 +* cc/doc-fast-export-synopsis-fix (2026-07-13) 1 commit
447 + (merged to 'next' on 2026-07-16 at b1dbc0cb3f)
448 + + fast-export: standardize usage string and SYNOPSIS
449 +
450 + The usage string and SYNOPSIS for 'git fast-export' have been
451 + standardized to make them consistent with each other and with other
452 + commands.
453 +
454 + Will merge to 'master'.
455 + cf. <alX5Nl8uX4ctVqo3@pks.im>
456 + cf. <xmqq4ii228dd.fsf@gitster.g>
457 + source: <20260713124153.245268-1-christian.couder@gmail.com>
458 +
459 +
460 +* sk/t1100-modernize (2026-07-14) 2 commits
461 + (merged to 'next' on 2026-07-16 at 621ca4ca5f)
462 + + t1100: move creation of expected output into setup test
463 + + t1100: modernize test style
464 +
465 + The test script 't/t1100-commit-tree-options.sh' has been modernized
466 + by converting test cases to the modern style (using single quotes and
467 + tab indentation) and moving the creation of the expected file inside
468 + the setup test so it runs under the protection of the test harness.
469 +
470 + Will merge to 'master'.
471 + cf. <xmqq4ii1v7x0.fsf@gitster.g>
472 + source: <20260714122033.61947-1-diy2903@gmail.com>
473 +
474 +
475 +* tn/packfile-uri-concurrency (2026-07-13) 2 commits
476 + - fetch-pack: accept "pack" output for packfile URIs
477 + - http: use unique tempfiles for packfile URI downloads
478 +
479 + Concurrent downloads of packfiles via packfile URIs have been
480 + supported by using unique temporary files, preventing corruption when
481 + multiple processes fetch the same pack. The 'fetch-pack' command has
482 + also been updated to tolerate pre-existing '.keep' files.
483 +
484 + Expecting a reroll.
485 + cf. <alaAi4vNwi-KabYV@com-76773>
486 + source: <alVn-QmK3K91_tkH@com-76773>
487 +
488 +
489 +* rs/strbuf-avoid-redundant-reset (2026-07-14) 1 commit
490 + (merged to 'next' on 2026-07-16 at f258ce38ba)
491 + + strbuf: avoid redundant reset in strbuf_getwholeline()
492 +
493 + A redundant 'strbuf_reset()' call in the 'HAVE_GETDELIM' path of
494 + 'strbuf_getwholeline()' has been removed, as 'getdelim()' overwrites
495 + the buffer and the length is updated afterward.
496 +
497 + Will merge to 'master'.
498 + cf. <xmqq8q7dv82b.fsf@gitster.g>
499 + cf. <20260714214941.GB4095533@coredump.intra.peff.net>
500 + source: <d4ffe7fb-f782-4f06-9e3b-f72729d1e225@web.de>
501 +
502 +
503 +* rs/tempfile-wo-the-repository (2026-07-14) 5 commits
504 + - use repo_hold_lock_file_for_update{,_mode,_timeout}() with custom repos
505 + - tempfile: stop using the_repository
506 + - lockfile: add repo_hold_lock_file_for_update{,_timeout}{,_mode}()
507 + - refs/packed: use repo_create_tempfile()
508 + - tempfile: add repo_create_tempfile{,_mode}()
509 +
510 + The tempfile and lockfile APIs have been refactored to stop depending
511 + on the 'the_repository' global variable, and their callers have been
512 + updated to use the repository-aware variants.
513 +
514 + Waiting for response.
515 + cf. <aldYW4TPUqgDMRcf@pks.im>
516 + source: <20260714175956.54601-1-l.s.r@web.de>
517 +
518 +
519 * js/pack-objects-delta-size-t (2026-07-09) 12 commits
520 - git-zlib: widen `git_deflate_bound()` to `size_t`
521 - t/helper/test-pack-deltas: widen `do_compress()`'s maxsize local to `size_t`
@@ -296,7 +530,7 @@ Release tarballs are available at:
530 - delta: widen `create_delta_index()` parameter to `size_t`
531 - diff-delta: widen `struct delta_index`' size fields to `size_t`
532
299 - The pack-objects and delta-encoding code paths have been updated to
533 + The 'pack-objects' and delta-encoding code paths have been updated to
534 use 'size_t' instead of 'unsigned long' for object sizes and offset
535 limits, avoiding potential truncation issues on 64-bit Windows.
536
@@ -327,9 +561,7 @@ Release tarballs are available at:
561 source: <20260710-pks-odb-stream-double-close-v1-1-d5fa233a37c7@pks.im>
562
563
330 -* pz/fetch-submodule-errors-config (2026-07-14) 4 commits
331 - - fixup! fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
332 - - fixup! fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
564 +* pz/fetch-submodule-errors-config (2026-07-16) 2 commits
565 - fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
566 - submodule: fix premature failure in recursive submodule fetch
567
@@ -343,8 +575,7 @@ Release tarballs are available at:
575 also fails.
576
577 Needs review.
346 - cf. <xmqqldbdvb3x.fsf@gitster.g>
347 - source: <20260714132959.3368867-1-paulius.zaleckas@gmail.com>
578 + source: <20260716140956.1023740-1-paulius.zaleckas@gmail.com>
579
580
581 * gr/add-e-use-apply-api (2026-07-10) 1 commit
@@ -366,19 +597,20 @@ Release tarballs are available at:
597 '--empty' option, allowing it to be dropped, kept, or to halt the
598 rebase.
599
369 - Expecting a reroll.
370 - cf. <DJXL4KSUEAD4.1EE4ERHJZ00TR@gmail.com>
600 + Waiting for response.
601 + cf. <690b965e-5f07-4aa4-a64c-96e60a86d73b@gmail.com>
602 source: <20260711-fz-autosquash-empty-v3-1-d227b63eb511@gmail.com>
603
604
605 * dm/submodule-update-i-shorthand (2026-07-07) 1 commit
375 - - submodule--helper: accept '-i' shorthand for update --init
606 + (merged to 'next' on 2026-07-15 at 55ef0fb748)
607 + + submodule--helper: accept '-i' shorthand for update --init
608
609 The '-i' shorthand for the '--init' option, which was accepted by the
610 'git submodule update' command until it was broken in a modernization
611 of the option-parsing code, has been restored.
612
381 - Will merge to 'next'.
613 + Will merge to 'master'.
614 cf. <xmqq8q7ltf51.fsf@gitster.g>
615 source: <20260708-submodule-init-v1-1-719456077262@atmark-techno.com>
616
@@ -491,7 +723,7 @@ Release tarballs are available at:
723 files object database source, enabling future alternative object
724 database backends to implement their own housekeeping services.
725
494 - Needs review.
726 + Waiting for response.
727 cf. <xmqqwluyyhv1.fsf@gitster.g>
728 source: <20260713-b4-pks-odb-optimize-v2-0-9c2c3ee94b38@pks.im>
729
@@ -549,18 +781,18 @@ Release tarballs are available at:
781 source: <pull.2174.v2.git.1783683577.gitgitgadget@gmail.com>
782
783
552 -* ps/odb-for-each-object-filter (2026-07-13) 10 commits
553 - - builtin/cat-file: filter objects via object database
554 - - odb: introduce object filters to `odb_for_each_object()`
555 - - pack-bitmap: introduce function to open bitmap for a single source
556 - - pack-bitmap: drop `_1` suffix from functions that open bitmaps
557 - - pack-bitmap: iterate object sources when opening bitmaps
558 - - pack-bitmap: allow aborting iteration of bitmapped objects
559 - - pack-objects: drop unused return value from add_object_entry()
560 - - pack-bitmap: mark object filter as `const`
561 - - odb/source-packed: improve lookup when enumerating objects
562 - - Merge branch 'ps/odb-drop-whence' into ps/odb-for-each-object-filter
563 - (this branch uses ps/odb-drop-whence.)
784 +* ps/odb-for-each-object-filter (2026-07-14) 10 commits
785 + (merged to 'next' on 2026-07-16 at 8f30e80d33)
786 + + builtin/cat-file: filter objects via object database
787 + + odb: introduce object filters to `odb_for_each_object()`
788 + + pack-bitmap: introduce function to open bitmap for a single source
789 + + pack-bitmap: drop `_1` suffix from functions that open bitmaps
790 + + pack-bitmap: iterate object sources when opening bitmaps
791 + + pack-bitmap: allow aborting iteration of bitmapped objects
792 + + pack-objects: drop unused return value from add_object_entry()
793 + + pack-bitmap: mark object filter as `const`
794 + + odb/source-packed: improve lookup when enumerating objects
795 + + Merge branch 'ps/odb-drop-whence' into ps/odb-for-each-object-filter
796
797 The object database enumeration interface 'odb_for_each_object()'
798 has been taught to accept object filters, allowing the underlying
@@ -569,21 +801,19 @@ Release tarballs are available at:
801 to use this generic interface, simplifying its code and avoiding
802 direct access to ODB backend internals.
803
572 - Will merge to 'next'?
573 - cf. <alW0KzSZuZnHmOZD@com-79390>
574 - source: <20260713-pks-odb-for-each-object-filter-v3-0-b3c65c641073@pks.im>
804 + Will merge to 'master'.
805 + cf. <874ii0h2uf.fsf@emacs.iotcl.com>
806 + source: <20260715-pks-odb-for-each-object-filter-v4-0-616d7adf7fb7@pks.im>
807
808
577 -* ps/refs-wo-the-repository (2026-07-09) 8 commits
809 +* ps/refs-wo-the-repository (2026-07-15) 7 commits
810 - refs: remove remaining uses of `the_repository`
811 - worktree: pass repository to public functions
812 - worktree: pass repository to file-local functions
813 - worktree: refactor code to use available repositories
814 - refs/files: drop `USE_THE_REPOSITORY_VARIABLE`
583 - - refs/packed: drop `USE_THE_REPOSITORY_VARIABLE`
815 - refs/packed: de-globalize handling of "core.packedRefsTimeout"
816 - Merge branch 'ps/refs-writing-subcommands' into ps/refs-wo-the-repository
586 - (this branch uses ps/refs-writing-subcommands.)
817
818 The ref subsystem and the worktree API have been refactored to pass a
819 repository pointer down the call chain, allowing them to drop
@@ -591,9 +821,9 @@ Release tarballs are available at:
821 the handling of the 'core.packedRefsTimeout' configuration has been
822 moved into the per-repository ref store structure.
823
594 - Expecting a reroll.
595 - cf. <alCJpxAQwpTQ4g93@pks.im>
596 - source: <20260709-pks-refs-wo-the-repository-v1-0-1ad6f27529c9@pks.im>
824 + Will merge to 'next'?
825 + cf. <xmqqldbbhuh0.fsf@gitster.g>
826 + source: <20260716-pks-refs-wo-the-repository-v3-0-db0a804e0224@pks.im>
827
828
829 * kk/commit-graph-topo-levels-fix (2026-07-09) 2 commits
@@ -652,19 +882,6 @@ Release tarballs are available at:
882 source: <pull.2166.v3.git.1783679767.gitgitgadget@gmail.com>
883
884
655 -* rs/blame-abbrev-marks (2026-07-06) 1 commit
656 - (merged to 'next' on 2026-07-08 at e4962bd3d5)
657 - + blame: reserve mark column only if necessary
658 -
659 - The alignment of commit object name abbreviations in 'git blame'
660 - output has been optimized to reserve a column for marks (caret,
661 - question mark, or asterisk) only when such marks are actually shown.
662 -
663 - Will merge to 'master'.
664 - cf. <xmqqzf0397u1.fsf@gitster.g>
665 - source: <92991b5e-0667-4315-89d5-1514a5499297@web.de>
666 -
667 -
885 * jm/t0213-skip-emulated-ancestry-tests (2026-07-06) 1 commit
886 - t0213: skip ancestry tests under user-mode emulation
887
@@ -694,19 +911,6 @@ Release tarballs are available at:
911 source: <20260708001557.3581080-1-sandals@crustytoothpaste.net>
912
913
697 -* mg/meson-hook-list-buildfix (2026-07-01) 1 commit
698 - (merged to 'next' on 2026-07-08 at 10763a0ebc)
699 - + meson: restore hook-list.h to builtin_sources
700 -
701 - A racy build failure under Meson has been corrected by ensuring that
702 - the generated header file 'hook-list.h' is built before compiling
703 - files in 'builtin_sources' that depend on it.
704 -
705 - Will merge to 'master'.
706 - cf. <akZGJP1kVtjBFN_e@pks.im>
707 - source: <20260701193928.358825-1-floppym@gentoo.org>
708 -
709 -
914 * zy/apply-abandoned-header-fix (2026-07-01) 1 commit
915 - apply: avoid leaking abandoned git-header state
916
@@ -744,14 +948,15 @@ Release tarballs are available at:
948
949
950 * ml/t9811-replace-test-f (2026-07-11) 2 commits
747 - - t9811: replace 'test -f' and '! test -f' with 'test_path_*'
748 - - t9811: break long && chains into multiple lines
951 + (merged to 'next' on 2026-07-15 at ffb7fcad15)
952 + + t9811: replace 'test -f' and '! test -f' with 'test_path_*'
953 + + t9811: break long && chains into multiple lines
954
955 The test script 't/t9811-git-p4-label-import.sh' has been
956 modernized to use 'test_path_is_file' and 'test_path_is_missing'
957 instead of raw 'test -f' and '! test -f' calls.
958
754 - Will merge to 'next'?
959 + Will merge to 'master'.
960 cf. <alTHrUEh4_O5ROeu@pks.im>
961 source: <20260711160447.99708-1-marcelomlage@usp.br>
962
@@ -811,14 +1016,15 @@ Release tarballs are available at:
1016
1017
1018 * cl/conditional-config-on-worktree-path (2026-07-09) 2 commits
814 - - config: add "worktree" and "worktree/i" includeIf conditions
815 - - config: refactor include_by_gitdir() into include_by_path()
1019 + (merged to 'next' on 2026-07-15 at 86ca33c437)
1020 + + config: add "worktree" and "worktree/i" includeIf conditions
1021 + + config: refactor include_by_gitdir() into include_by_path()
1022
1023 The '[includeIf "condition"]' conditional inclusion facility for
1024 configuration files has been taught to use the location of the
1025 worktree in its condition.
1026
821 - Will merge to 'next'?
1027 + Will merge to 'master'.
1028 cf. <alTJCTKR9jOWfgbk@pks.im>
1029 source: <20260710-includeif-worktree-v8-0-04686d8a616c@black-desk.cn>
1030
@@ -847,7 +1053,7 @@ Release tarballs are available at:
1053 'test_path_is_missing' helper functions instead of raw 'test -[fde]'
1054 commands.
1055
850 - Waiting for response(s) to review comment(s).
1056 + Waiting for response.
1057 cf. <akTKHfKPsP3-Rn31@pks.im>
1058 source: <20260630020220.1559190-1-bblima@usp.br>
1059
@@ -883,16 +1089,15 @@ Release tarballs are available at:
1089 source: <20260707-pks-setup-split-discovery-and-setup-v2-0-aab372cd227c@pks.im>
1090
1091
886 -* pw/rebase-drop-notes-with-commit (2026-07-13) 10 commits
1092 +* pw/rebase-drop-notes-with-commit (2026-07-15) 9 commits
1093 - sequencer: do not record dropped commits as rewritten
1094 - sequencer: use an enum to represent result of picking a commit
1095 - sequencer: simplify pick_one_commit()
1096 - sequencer: remove unnecessary condition in pick_one_commit()
891 - - sequencer: simplify handing of fixup with conflicts
1097 + - sequencer: simplify handling of fixup with conflicts
1098 - sequencer: remove unnecessary "or" in pick_one_commit()
1099 - sequencer: never reschedule on failed commit
1100 - sequencer: be more careful with external merge
895 - - sequencer: move definition of is_final_fixup()
1101 - t3400: restore coverage for note copying with apply backend
1102
1103 The rebase post-rewrite notes-copying logic has been corrected. When
@@ -901,24 +1106,7 @@ Release tarballs are available at:
1106 its notes from being copied to an unrelated commit.
1107
1108 Needs review.
904 - cf. <alTxn7MmX3aH_7gp@ugly.lan>
905 - source: <cover.1783948637.git.phillip.wood@dunelm.org.uk>
906 -
907 -
908 -* jk/bloom-leak-fixes (2026-06-30) 3 commits
909 - (merged to 'next' on 2026-07-08 at 3b9a1cda3f)
910 - + line-log: drop extra copy of range with bloom filters
911 - + revision: avoid leaking bloom keyvecs with multiple traversals
912 - + bloom: make bloom-filter slab initialization idempotent
913 -
914 - Various memory leaks in the Bloom-filter code paths that are exposed
915 - when running tests with the 'GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1'
916 - environment variable have been plugged.
917 -
918 - Will merge to 'master'.
919 - cf. <b641aed4-ad52-477b-b1d8-9d8e470be46f@gmail.com>
920 - cf. <xmqqo6gqobrt.fsf@gitster.g>
921 - source: <20260701063538.GA2579765@coredump.intra.peff.net>
1109 + source: <cover.1784128921.git.phillip.wood@dunelm.org.uk>
1110
1111
1112 * js/ci-dockerized-pid-limit (2026-07-04) 1 commit
@@ -975,53 +1163,34 @@ Release tarballs are available at:
1163 geometric repack as usual, while a separate cruft pack is written to
1164 collect unreachable objects.
1165
978 - Waiting for response(s) to review comment(s).
1166 + Waiting for response.
1167 cf. <aj8cOhH6hGVZIFft@nand.local>
1168 source: <cover.1782500507.git.me@ttaylorr.com>
1169
1170
1171 * jt/receive-pack-use-odb-transactions (2026-07-10) 11 commits
984 - - builtin/receive-pack: stage incoming objects via ODB transactions
985 - - builtin/receive-pack: drop redundant tmpdir env
986 - - odb/transaction: introduce ODB transaction flags
987 - - odb/transaction: add transaction env interface
988 - - odb/transaction: propagate commit errors
989 - - odb/transaction: propagate begin errors
990 - - object-file: propagate files transaction errors
991 - - object-file: drop check for inflight transactions
992 - - object-file: embed transaction flush logic in commit function
993 - - object-file: rename files transaction fsync function
994 - - object-file: rename files transaction prepare function
1172 + (merged to 'next' on 2026-07-15 at aba57e3365)
1173 + + builtin/receive-pack: stage incoming objects via ODB transactions
1174 + + builtin/receive-pack: drop redundant tmpdir env
1175 + + odb/transaction: introduce ODB transaction flags
1176 + + odb/transaction: add transaction env interface
1177 + + odb/transaction: propagate commit errors
1178 + + odb/transaction: propagate begin errors
1179 + + object-file: propagate files transaction errors
1180 + + object-file: drop check for inflight transactions
1181 + + object-file: embed transaction flush logic in commit function
1182 + + object-file: rename files transaction fsync function
1183 + + object-file: rename files transaction prepare function
1184
1185 'git receive-pack' has been refactored to use ODB transaction
1186 interfaces instead of directly managing 'tmp_objdir' for staging
1187 incoming objects, bringing it closer to being ODB backend agnostic.
1188
1000 - Will merge to 'next'.
1189 + Will merge to 'master'.
1190 cf. <alR1P-RGZNmjyiUE@pks.im>
1191 source: <20260710163722.2962278-1-jltobler@gmail.com>
1192
1193
1005 -* ps/odb-drop-whence (2026-07-02) 7 commits
1006 - (merged to 'next' on 2026-07-08 at f43ee51cc3)
1007 - + odb: document object info fields
1008 - + odb: drop `whence` field from object info
1009 - + treewide: convert users of `whence` to the new source field
1010 - + odb: add `source` field to struct object_info_source
1011 - + odb: make backend-specific fields optional
1012 - + packfile: thread odb_source_packed through packed_object_info()
1013 - + Merge branch 'ps/odb-source-packed' into ps/odb-drop-whence
1014 - (this branch is used by ps/odb-for-each-object-filter.)
1015 -
1016 - The 'whence' field in 'struct object_info' has been removed. The
1017 - backend-specific object information retrieval has been refactored into
1018 - an opt-in 'struct object_info_source' structure.
1019 -
1020 - Will merge to 'master'.
1021 - cf. <xmqqv7b0rmt6.fsf@gitster.g>
1022 - source: <20260702-b4-pks-odb-drop-whence-v2-0-b0af7468ad95@pks.im>
1023 -
1024 -
1194 * ps/reftable-hardening (2026-07-03) 12 commits
1195 (merged to 'next' on 2026-07-10 at b8f4dd0ab9)
1196 + reftable/table: fix OOB read on truncated table
@@ -1046,18 +1215,6 @@ Release tarballs are available at:
1215 source: <20260703-pks-reftable-hardening-v3-0-b87c555b9920@pks.im>
1216
1217
1049 -* jc/history-message-prep-fix (2026-06-29) 1 commit
1050 - (merged to 'next' on 2026-07-06 at 00534a21ce)
1051 - + history: streamline message preparation and plug file stream leak
1052 -
1053 - A write file stream resource leak has been fixed as part of a code
1054 - cleanup.
1055 -
1056 - Will merge to 'master'.
1057 - cf. <akO1mhi2u2PntLbt@pks.im>
1058 - source: <xmqqmrwdxrat.fsf@gitster.g>
1059 -
1060 -
1218 * ty/migrate-excludes-file (2026-07-13) 10 commits
1219 - repository: adjust the comment of config_values_private_
1220 - environment: move object_creation_mode into repo_config_values
@@ -1090,15 +1247,17 @@ Release tarballs are available at:
1247
1248
1249 * ps/libgit-in-subdir (2026-07-12) 3 commits
1093 - - Move libgit.a sources into separate "lib/" directory
1094 - - t/helper: prepare "test-example-tap.c" for introduction of "lib/"
1095 - - Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir
1250 + . Move libgit.a sources into separate "lib/" directory
1251 + . t/helper: prepare "test-example-tap.c" for introduction of "lib/"
1252 + . Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir
1253
1254 The source files for 'libgit.a' have been moved into a new 'lib/'
1255 directory to clean up the top-level directory and clearly separate
1256 library code.
1257
1101 - Needs review.
1258 + Ejected for now, as it causes too many evil merges with other topics.
1259 +
1260 + Waiting for response.
1261 cf. <alR9GDNTbdjWB4dq@szeder.dev>
1262 source: <20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im>
1263
@@ -1134,7 +1293,7 @@ Release tarballs are available at:
1293 source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
1294
1295
1137 -* hn/history-squash (2026-07-10) 5 commits
1296 +* hn/history-squash (2026-07-15) 5 commits
1297 - history: re-edit a squash with every message
1298 - sequencer: share the squash message marker helpers and flags
1299 - history: add squash subcommand to fold a range
@@ -1145,26 +1304,8 @@ Release tarballs are available at:
1304 subcommand to fold a range of commits into a single commit, with any
1305 descendants replayed on top.
1306
1148 - Expecting a reroll.
1149 - cf. <CAHwyqnVYQ6Sk=4ot6=5AbUdqxCrwS15xt_+wX3DB1h369CSqsA@mail.gmail.com>
1150 - source: <pull.2337.v8.git.git.1783674396.gitgitgadget@gmail.com>
1151 -
1152 -
1153 -* ps/refs-writing-subcommands (2026-07-06) 5 commits
1154 - (merged to 'next' on 2026-07-08 at f001147283)
1155 - + builtin/refs: add "rename" subcommand
1156 - + builtin/refs: add "create" subcommand
1157 - + builtin/refs: add "update" subcommand
1158 - + builtin/refs: add "delete" subcommand
1159 - + builtin/refs: drop `the_repository`
1160 - (this branch is used by ps/refs-wo-the-repository.)
1161 -
1162 - The 'git refs' toolbox has been extended with new 'create', 'delete',
1163 - 'update', and 'rename' subcommands to create, delete, update, and
1164 - rename references, respectively.
1165 -
1166 - Will merge to 'master'.
1167 - source: <20260706-pks-refs-writing-subcommands-v4-0-d51f6ce7f830@pks.im>
1307 + Needs review.
1308 + source: <pull.2337.v9.git.git.1784128573.gitgitgadget@gmail.com>
1309
1310
1311 * wy/doc-myfirstcontribution-trim-quotes (2026-06-11) 1 commit
@@ -1225,8 +1366,8 @@ Release tarballs are available at:
1366 'git tag --contains', significantly speeding up connectivity checks
1367 across many candidate refs with shared history.
1368
1228 - Needs review.
1229 - cf. <xmqqqzlpulkp.fsf@gitster.g>
1369 + Will merge to 'next'?
1370 + cf. <20260716091924.GB1212956@coredump.intra.peff.net>
1371 source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com>
1372
1373
@@ -1246,7 +1387,7 @@ Release tarballs are available at:
1387 source: <20260707-toon-git-replay-drop-merges-v7-0-808ab9b4afa6@iotcl.com>
1388
1389
1249 -* ps/cat-file-remote-object-info (2026-07-14) 13 commits
1390 +* ps/cat-file-remote-object-info (2026-07-15) 13 commits
1391 - cat-file: make remote-object-info allow-list dynamic
1392 - cat-file: validate remote atoms with an allow-list
1393 - cat-file: add remote-object-info to batch-command
@@ -1268,18 +1409,21 @@ Release tarballs are available at:
1409 filtered on the client based on server-advertised capabilities,
1410 returning empty strings for inapplicable or unsupported fields.
1411
1271 - Needs review.
1272 - cf. <xmqq8q7dto8d.fsf@gitster.g>
1273 - source: <20260714-ps-eric-work-rebase-v17-0-afabfc83260e@gmail.com>
1412 + Expecting a reroll.
1413 + cf. <DJZM80YDCMQG.SXP22P43W1J3@gmail.com>
1414 + source: <20260715-ps-eric-work-rebase-v18-0-34d7adb051bb@gmail.com>
1415
1416
1276 -* mm/diff-process-hunks (2026-06-14) 6 commits
1277 - - blame: consult diff process for no-hunk detection
1278 - - diff: bypass diff process with --no-ext-diff and in format-patch
1279 - - diff: add long-running diff process via diff.<driver>.process
1280 - - sub-process: separate process lifecycle from hashmap management
1281 - - userdiff: add diff.<driver>.process config
1282 - - xdiff: support external hunks via xpparam_t
1417 +* mm/diff-process-hunks (2026-07-15) 9 commits
1418 + . line-log: consult diff process for range tracking
1419 + . diff: consult diff process for --stat counts
1420 + . blame: consult diff process for no-hunk detection
1421 + . diff: bypass diff process with --no-ext-diff and in format-patch
1422 + . diff: add long-running diff process via diff.<driver>.process
1423 + . sub-process: separate process lifecycle from hashmap management
1424 + . userdiff: add diff.<driver>.process config
1425 + . xdiff: support external hunks via xpparam_t
1426 + . gitattributes: document how external diff drivers relate to diff features
1427
1428 A new 'diff.<driver>.process' configuration has been introduced to
1429 allow a long-running external process to act as a hunk provider,
@@ -1287,12 +1431,16 @@ Release tarballs are available at:
1431 while leaving all output formatting (word diff, color, blame, etc.) to
1432 Git's standard pipeline.
1433
1290 - Expecting a reroll for too long, stalled.
1291 - cf. <CAC2Qwm+P=fZOtpfMPeMiSXf3Afk6OLYpTP8Br78_PRA8WNL1Wg@mail.gmail.com>
1292 - source: <pull.2120.v4.git.1781463564.gitgitgadget@gmail.com>
1434 + Ejected for now, as conflicts badly with mm/line-log-limited-ops.
1435 +
1436 + Expecting a reroll.
1437 + cf. <xmqq8q7aj3b0.fsf@gitster.g>
1438 + cf. <CAC2QwmKRp90hmBAckug9PPvvD53Pi53q5csZhi15LRhzdQasQg@mail.gmail.com>
1439 + source: <pull.2120.v5.git.1784149323.gitgitgadget@gmail.com>
1440
1441
1295 -* ty/migrate-trust-executable-bit (2026-06-19) 3 commits
1442 +* ty/migrate-trust-executable-bit (2026-07-16) 4 commits
1443 + - environment: move has_symlinks into repo_config_values
1444 - environment: move trust_executable_bit into repo_config_values
1445 - read-cache: move 'ce_mode_from_stat()' to 'read-cache.c'
1446 - read-cache: remove redundant extern declarations
@@ -1302,32 +1450,8 @@ Release tarballs are available at:
1450 to a specific repository instance.
1451
1452 Needs review.
1305 - cf. <xmqqcxx9ukvw.fsf@gitster.g>
1306 - source: <20260619162105.648495-1-cat@malon.dev>
1307 -
1308 -
1309 -* ps/history-drop (2026-07-01) 11 commits
1310 - (merged to 'next' on 2026-07-08 at 6fb84708a4)
1311 - + builtin/history: implement "drop" subcommand
1312 - + builtin/history: split handling of ref updates into two phases
1313 - + replay: expose `replay_result_queue_update()`
1314 - + reset: stop assuming that the caller passes in a clean index
1315 - + reset: allow the caller to specify the current HEAD object
1316 - + reset: introduce ability to skip updating HEAD
1317 - + reset: introduce dry-run mode
1318 - + reset: modernize flags passed to `reset_working_tree()`
1319 - + reset: rename `reset_head()`
1320 - + reset: drop `USE_THE_REPOSITORY_VARIABLE`
1321 - + read-cache: split out function to drop unmerged entries to stage 0
1322 -
1323 - The experimental 'git history' command has been taught a new 'drop'
1324 - subcommand to remove a commit, with its descendants replayed onto its
1325 - parent.
1326 -
1327 - Will merge to 'master'.
1328 - cf. <xmqq1pdmprbk.fsf@gitster.g>
1329 - cf. <CAP8UFD3OAktVQsLuqBNFH2uhEO31PH8ZF3ZT1ZW8k++XE8YLPw@mail.gmail.com>
1330 - source: <20260701-b4-pks-history-drop-v8-0-19b5cdf1facd@pks.im>
1453 + cf. <xmqqa4rqfzys.fsf@gitster.g>
1454 + source: <20260716084941.1101918-1-cat@malon.dev>
1455
1456
1457 * za/completion-hide-dotfiles (2026-06-20) 2 commits
@@ -1338,7 +1462,7 @@ Release tarballs are available at:
1462 updated to hide dotfiles by default unless the user explicitly starts
1463 the path with a dot, matching standard shell-completion behavior.
1464
1341 - Waiting for response(s) to review comment(s), stalled.
1465 + Waiting for response, stalled.
1466 cf. <xmqqik71t3nr.fsf@gitster.g>
1467 source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
1468
@@ -1364,7 +1488,7 @@ Release tarballs are available at:
1488 Documentation for 'git replay' has been updated to refer to its
1489 configuration variables.
1490
1367 - Waiting for response(s) to review comment(s).
1491 + Waiting for response for too long, stalled.
1492 cf. <87cxwxofgv.fsf@emacs.iotcl.com>
1493 source: <V3_CV_doc_replay_config.780@msgid.xyz>
1494
@@ -1393,8 +1517,7 @@ Release tarballs are available at:
1517 The 'git checkout --track=...' command has been taught to optionally
1518 fetch the branch from the remote the new branch will work with.
1519
1396 - Waiting for response(s) to review comment(s).
1397 - cf. <CAL71e4MiijEiM26TKJcOYT7L4pfQeMM_F2oT3U3igP-wOZm2Ag@mail.gmail.com>
1520 + Needs review.
1521 source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
1522
1523
@@ -1412,7 +1535,8 @@ Release tarballs are available at:
1535 simplification) by indenting them, preventing them from appearing
1536 falsely related to unrelated commits rendered immediately above them.
1537
1415 - Needs review.
1538 + Will merge to 'next'?
1539 + cf. <CA+J6zkQNzEAhhY74qDrOwfFVrshEF7YFxWRRkwE3ttJo15ZbAg@mail.gmail.com>
1540 source: <20260714-ps-pre-commit-indent-v12-0-d50938e006df@gmail.com>
1541
1542