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