What's cooking (2026/03 #07)
Junio C Hamano committed
Mar 19, 2026 at 13:35 UTC
58938c15a650a5a9e964d90d873939be35362346
1 file changed
+392
-338
whats-cooking.txt
+392
-338
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (Mar 2026, #06)
3
-X-master-at: ca1db8a0f7dc0dbea892e99f5b37c5fe5861be71
4
-X-next-at: 0bb29b3bc592338d0db506b4bb84c8f3f11e7095
2
+Subject: What's cooking in git.git (Mar 2026, #07)
3
+X-master-at: 7ff1e8dc1e1680510c96e69965b3fa81372c5037
4
+X-next-at: 1eceb487f285f1efa78465e6208770318f9f4892
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (Mar 2026, #06)
7
+What's cooking in git.git (Mar 2026, #07)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -48,181 +48,318 @@ Release tarballs are available at:
48
--------------------------------------------------
49
[Graduated to 'master']
50
51
-* ds/for-each-repo-w-worktree (2026-03-03) 4 commits
52
- (merged to 'next' on 2026-03-06 at 3886f0d054)
53
- + for-each-repo: simplify passing of parameters
54
- + for-each-repo: work correctly in a worktree
55
- + run-command: extract sanitize_repo_env helper
56
- + for-each-repo: test outside of repo context
51
+* bk/run-command-wo-the-repository (2026-03-12) 2 commits
52
+ (merged to 'next' on 2026-03-12 at 61ffe62b75)
53
+ + run-command: wean auto_maintenance() functions off the_repository
54
+ + run-command: wean start_command() off the_repository
55
+
56
+ The run_command() API lost its implicit dependencyon the singleton
57
+ `the_repository` instance.
58
+ source: <20260312144437.626392-1-bkkaracay@gmail.com>
59
+
60
+
61
+* dd/list-objects-filter-options-wo-strbuf-split (2026-03-11) 2 commits
62
+ (merged to 'next' on 2026-03-12 at 99c4dbd03e)
63
+ + list-objects-filter-options: avoid strbuf_split_str()
64
+ + worktree: do not pass strbuf by value
65
+ (this branch is used by dd/cocci-do-not-pass-strbuf-by-value.)
66
+
67
+ The way combined list-object filter options are parsed has been
68
+ revamped.
69
+ source: <20260311173336.8395-1-deveshigurgaon@gmail.com>
70
58
- "git for-each-repo" started from a secondary worktree did not work
59
- as expected, which has been corrected.
60
- source: <pull.2056.v4.git.1772559114.gitgitgadget@gmail.com>
71
72
+* jc/doc-wholesale-replace-before-next (2026-03-09) 1 commit
73
+ (merged to 'next' on 2026-03-13 at 19ca350c9b)
74
+ + SubmittingPatches: spell out "replace fully to pretend to be perfect"
75
63
-* fp/t3310-unhide-git-failures (2026-03-07) 1 commit
64
- (merged to 'next' on 2026-03-09 at edd6c35bb8)
65
- + t3310: avoid hiding failures from rev-parse in command substitutions
76
+ Doc update.
77
+ source: <xmqq34283b12.fsf@gitster.g>
78
+
79
+
80
+* lc/rebase-trailer (2026-03-06) 6 commits
81
+ (merged to 'next' on 2026-03-13 at 75c22b6b26)
82
+ + rebase: support --trailer
83
+ + commit, tag: parse --trailer with OPT_STRVEC
84
+ + trailer: append trailers without fork/exec
85
+ + trailer: libify a couple of functions
86
+ + interpret-trailers: refactor create_in_place_tempfile()
87
+ + interpret-trailers: factor trailer rewriting
88
+
89
+ "git rebase" learns "--trailer" command to drive the
90
+ interpret-trailers machinery.
91
+ source: <cover.1772808594.git.phillip.wood@dunelm.org.uk>
92
+
93
+
94
+* ps/editorconfig-unanchor (2026-03-11) 1 commit
95
+ (merged to 'next' on 2026-03-12 at 39ef732ca9)
96
+ + editorconfig: fix style not applying to subdirs anymore
97
67
- The construct 'test "$(command)" = expectation' loses the exit
68
- status from the command, which has been fixed by breaking up the
69
- statement into pieces.
70
- source: <20260307103631.89829-1-francescopaparatto@gmail.com>
98
+ Editorconfig filename patterns were specified incorrectly, making
99
+ many source files inside subdirectories unaffected, which has been
100
+ corrected.
101
+ source: <20260311-b4-pks-editorconfig-fix-subdirs-v1-1-4938193ccd31@pks.im>
102
103
73
-* hn/status-compare-with-push (2026-03-04) 4 commits
74
- (merged to 'next' on 2026-03-06 at 7c5ad405d7)
75
- + status: clarify how status.compareBranches deduplicates
76
- (merged to 'next' on 2026-02-26 at 1c11b8819a)
77
- + status: add status.compareBranches config for multiple branch comparisons
78
- + refactor format_branch_comparison in preparation
79
- + Merge branch 'jk/remote-tracking-ref-leakfix' into hn/status-compare-with-push
104
+* ps/t9200-test-path-is-helpers (2026-03-12) 2 commits
105
+ (merged to 'next' on 2026-03-12 at 8500bdf172)
106
+ + t9200: replace test -f with modern path helper
107
+ + t9200: handle missing CVS with skip_all
108
81
- "git status" learned to show comparison between the current branch
82
- and various other branches listed on status.compareBranches
83
- configuration.
84
- source: <pull.2138.v30.git.git.1772102022.gitgitgadget@gmail.com>
85
- source: <pull.2138.v31.git.git.1772627131.gitgitgadget@gmail.com>
109
+ Test update.
110
+ source: <20260311194002.190195-1-pabloosabaterr@gmail.com>
111
+ source: <20260312173305.15112-1-pabloosabaterr@gmail.com>
112
113
88
-* jk/unleak-mmap (2026-03-06) 6 commits
89
- (merged to 'next' on 2026-03-10 at e169ff00b3)
90
- + meson: turn on NO_MMAP when building with LSan
91
- + Makefile: turn on NO_MMAP when building with LSan
92
- + object-file: fix mmap() leak in odb_source_loose_read_object_stream()
93
- + pack-revindex: avoid double-loading .rev files
94
- + check_connected(): fix leak of pack-index mmap
95
- + check_connected(): delay opening new_pack
114
+* ps/unit-test-c-escape-names.txt (2026-03-10) 1 commit
115
+ (merged to 'next' on 2026-03-13 at f545ea5a9c)
116
+ + test-lib: print escape sequence names
117
97
- Plug a few leaks where mmap'ed memory regions are not unmapped.
98
- source: <20260305230315.GA2354983@coredump.intra.peff.net>
99
- source: <796110ee-d795-4445-9d82-7026370a88cf@intel.com>
100
- source: <20260307022459.GA693632@coredump.intra.peff.net>
118
+ The unit test helper function was taught to use backslash +
119
+ mnemonic notation for certain control characters like "\t", instead
120
+ of octal notation like "\011".
121
+ source: <20260311031442.11942-1-pabloosabaterr@gmail.com>
122
123
103
-* jt/repo-structure-extrema (2026-03-02) 6 commits
104
- (merged to 'next' on 2026-03-09 at 8ccfebc0b1)
105
- + builtin/repo: find tree with most entries
106
- + builtin/repo: find commit with most parents
107
- + builtin/repo: add OID annotations to table output
108
- + builtin/repo: collect largest inflated objects
109
- + builtin/repo: add helper for printing keyvalue output
110
- + builtin/repo: update stats for each object
124
+* ss/submodule--helper-use-xmalloc (2026-03-10) 1 commit
125
+ (merged to 'next' on 2026-03-13 at f13711965e)
126
+ + submodule--helper: replace malloc with xmalloc
127
112
- "git repo structure" command learns to report maximum values on
113
- various aspects of objects it inspects.
114
- source: <20260302214526.2034279-1-jltobler@gmail.com>
128
+ Code clean-up.
129
+ source: <20260310164412.47403-1-r.siddharth.shrimali@gmail.com>
130
131
117
-* os/doc-git-custom-commands (2026-03-07) 1 commit
118
- (merged to 'next' on 2026-03-09 at 5cabe3db39)
119
- + doc: make it easier to find custom command information
132
+* ss/t3200-test-zero-oid (2026-03-11) 1 commit
133
+ (merged to 'next' on 2026-03-12 at 647ee3f2dc)
134
+ + t3200: replace hardcoded null OID with $ZERO_OID
135
121
- Doc update.
122
- source: <pull.2225.git.git.1772903281929.gitgitgadget@gmail.com>
123
-
124
-
125
-* ps/odb-sources (2026-03-05) 19 commits
126
- (merged to 'next' on 2026-03-06 at 69fd3b792a)
127
- + odb/source: make `begin_transaction()` function pluggable
128
- + odb/source: make `write_alternate()` function pluggable
129
- + odb/source: make `read_alternates()` function pluggable
130
- + odb/source: make `write_object_stream()` function pluggable
131
- + odb/source: make `write_object()` function pluggable
132
- + odb/source: make `freshen_object()` function pluggable
133
- + odb/source: make `for_each_object()` function pluggable
134
- + odb/source: make `read_object_stream()` function pluggable
135
- + odb/source: make `read_object_info()` function pluggable
136
- + odb/source: make `close()` function pluggable
137
- + odb/source: make `reprepare()` function pluggable
138
- + odb/source: make `free()` function pluggable
139
- + odb/source: introduce source type for robustness
140
- + odb: move reparenting logic into respective subsystems
141
- + odb: embed base source in the "files" backend
142
- + odb: introduce "files" source
143
- + odb: split `struct odb_source` into separate header
144
- + Merge branch 'ps/object-info-bits-cleanup' into ps/odb-sources
145
- + Merge branch 'ps/odb-for-each-object' into ps/odb-sources
146
- (this branch is used by ps/object-counting.)
147
-
148
- The object source API is getting restructured to allow plugging new
149
- backends.
150
- source: <20260305-b4-pks-odb-source-pluggable-v2-0-3290bfd1f444@pks.im>
151
-
152
-
153
-* rs/history-ergonomics-updates-fix (2026-03-08) 1 commit
154
- (merged to 'next' on 2026-03-10 at 7d58650290)
155
- + history: initialize rev_info in cmd_history_reword()
156
-
157
- Fix use of uninitialized variable.
158
- source: <b0b8633f-be95-48eb-8244-d0e3f1a7be72@web.de>
159
-
160
-
161
-* sp/wt-status-wo-the-repository (2026-02-18) 3 commits
162
- (merged to 'next' on 2026-03-09 at 2e99d5ed52)
163
- + wt-status: use hash_algo from local repository instead of global the_hash_algo
164
- + wt-status: replace uses of the_repository with local repository instances
165
- + wt-status: pass struct repository through function parameters
166
-
167
- Reduce dependence on the global the_hash_algo and the_repository
168
- variables of wt-status code path.
169
- source: <20260218175654.66004-1-shreyanshpaliwalcmsmn@gmail.com>
170
-
171
-
172
-* ty/patch-ids-document-lazy-eval (2026-03-08) 1 commit
173
- (merged to 'next' on 2026-03-10 at c8be8d6f7e)
174
- + patch-ids: document intentional const-casting in patch_id_neq()
175
-
176
- In-code comment update to record a design decision to allow lazy
177
- computation of patch IDs.
178
- source: <20260309065140.108644-1-cat@malon.dev>
179
-
180
-
181
-* ty/setup-error-tightening (2026-03-04) 1 commit
182
- (merged to 'next' on 2026-03-10 at 38268a7acc)
183
- + setup: improve error diagnosis for invalid .git files
184
-
185
- While discovering a ".git" directory, the code treats any stat()
186
- failure as a sign that a filesystem entity .git does not exist
187
- there, and ignores ".git" that is not a "gitdir" file or a
188
- directory. The code has been tightened to notice and report
189
- filesystem corruption better.
190
- source: <20260304141526.37764-1-a3205153416@gmail.com>
136
+ A test now uses the symbolic constant $ZERO_OID instead of 40 "0" to
137
+ work better with SHA-256 as well as SHA-1.
138
+ source: <20260311174120.76871-1-r.siddharth.shrimali@gmail.com>
139
140
--------------------------------------------------
141
[New Topics]
142
143
+* jc/whitespace-incomplete-line (2026-03-17) 1 commit
144
+ - apply: fix new-style empty context line triggering incomplete-line check
145
+
146
+ Fix whitespace correction for new-style empty context lines.
147
+
148
+ Needs review.
149
+ source: <xmqqldfql4hp.fsf@gitster.g>
150
+
151
+
152
+* sp/add-patch-with-fewer-the-repository (2026-03-17) 1 commit
153
+ - add-patch: use repository instance from add_i_state instead of the_repository
154
+
155
+ Reduce dependency on `the_repository` in add-patch.c file.
156
+
157
+ Needs review.
158
+ source: <20260317155230.619378-1-shreyanshpaliwalcmsmn@gmail.com>
159
+
160
+
161
+* ds/backfill-revs (2026-03-16) 5 commits
162
+ - path-walk: support wildcard pathspecs for blob filtering
163
+ - backfill: work with prefix pathspecs
164
+ - backfill: accept revision arguments
165
+ - t5620: prepare branched repo for revision tests
166
+ - revision: include object-name.h
167
+
168
+ `git backfill` learned to accept revision and pathspec arguments.
169
+
170
+ Needs review.
171
+ source: <pull.2070.git.1773707361.gitgitgadget@gmail.com>
172
+
173
+
174
+* jw/t2203-status-pipe-fix (2026-03-16) 1 commit
175
+ - t2203: avoid suppressing git status exit code
176
+
177
+ Test clean-up.
178
+
179
+ Will merge to 'next'?
180
+ source: <20260317011544.65952-1-jerrywang183@yahoo.com>
181
+
182
+
183
+* ps/commit-graph-overflow-fix (2026-03-17) 1 commit
184
+ - commit-graph: fix writing generations with dates exceeding 34 bits
185
+
186
+ Fix a regression in writing the commit-graph where commits with dates
187
+ exceeding 34 bits (beyond year 2514) could cause an underflow and
188
+ crash Git during the generation data overflow chunk writing.
189
+
190
+ Needs review.
191
+ source: <20260317-pks-commit-graph-overflow-v1-1-e6bee22cd826@pks.im>
192
+
193
+
194
+* tc/replay-down-to-root (2026-03-17) 1 commit
195
+ - replay: support replaying down from root commit
196
+
197
+ git replay now supports replaying down to the root commit.
198
+
199
+ Needs review.
200
+ source: <20260317-toon-replay-down-to-root-v1-1-cb5c249e15fd@iotcl.com>
201
+
202
+
203
+* mr/merge-file-object-id-worktree-fix (2026-03-10) 1 commit
204
+ - merge-file: fix BUG when --object-id is used in a worktree
205
+
206
+ merge-file --object-id used to trigger a BUG when run in a linked
207
+ worktree, which has been fixed.
208
+
209
+ Will merge to 'next'.
210
+ source: <c076edd0-9057-443b-ba37-33aacde2eede@app.fastmail.com>
211
+
212
+
213
+* rs/prio-queue-to-commit-stack (2026-03-17) 1 commit
214
+ - use commit_stack instead of prio_queue in LIFO mode
215
+
216
+ Uses of prio_queue as a LIFO stack of commits have been written
217
+ with commit_stack.
218
+
219
+ Will merge to 'next'.
220
+ source: <05fc946f-6670-46e9-a058-231ee464029d@web.de>
221
+
222
+
223
+* jw/object-name-bitset-to-enum (2026-03-18) 1 commit
224
+ - object-name: turn INTERPRET_BRANCH_* constants into enum values
225
+
226
+ The unsigned integer that is used as an bitset to specify the kind
227
+ of branches interpret_branch_name() function has been changed to
228
+ use a dedicated enum type.
229
+
230
+ Will merge to 'next'?
231
+ source: <20260318190942.22595-1-jerrywang183@yahoo.com>
232
+
233
+
234
+* ai/t2107-test-path-is-helpers (2026-03-18) 1 commit
235
+ - t2107: modernize path existence check
236
+
237
+ Test cleanup.
238
+
239
+ Will merge to 'next'?
240
+ source: <pull.2071.v2.git.1773864455956.gitgitgadget@gmail.com>
241
+
242
+
243
+* gi/doc-boolean-config-typofix (2026-03-18) 1 commit
244
+ - doc: add missing space on git-config page
245
+
246
+ Doc typofix.
247
+
248
+ Will merge to 'next'.
249
+ source: <20260318210020.759128-1-gabl@gabl.ink>
250
+
251
+
252
+* ua/push-remote-group (2026-03-19) 3 commits
253
+ - fixup! push: support pushing to a remote group
254
+ - push: support pushing to a remote group
255
+ - remote: move remote group resolution to remote.c
256
+
257
+ "git push" learned to take a "remote group" name to push to, which
258
+ causes pushes to multiple places, just like "git fetch" would do.
259
+
260
+ Will merge to 'next' after squashing the fixup in?
261
+ source: <20260318204028.1010487-1-usmanakinyemi202@gmail.com>
262
+
263
+
264
+* jc/rerere-modern-strbuf-handling (2026-03-19) 1 commit
265
+ - rerere: update to modern representation of empty strbufs
266
+
267
+ Code clean-up overdue by 19 years.
268
+
269
+ Will merge to 'next'.
270
+ source: <xmqq341wnvbk.fsf@gitster.g>
271
+
272
+
273
+* ps/odb-generic-object-name-handling (2026-03-18) 15 commits
274
+ - odb: introduce generic `odb_find_abbrev_len()`
275
+ - object-file: move logic to compute packed abbreviation length
276
+ - object-name: move logic to compute loose abbreviation length
277
+ - object-name: simplify computing common prefixes
278
+ - object-name: abbreviate loose object names without `disambiguate_state`
279
+ - object-name: merge `update_candidates()` and `match_prefix()`
280
+ - object-name: backend-generic `get_short_oid()`
281
+ - object-name: backend-generic `repo_collect_ambiguous()`
282
+ - object-name: extract function to parse object ID prefixes
283
+ - object-name: move logic to iterate through packed prefixed objects
284
+ - object-name: move logic to iterate through loose prefixed objects
285
+ - odb: introduce `struct odb_for_each_object_options`
286
+ - oidtree: extend iteration to allow for arbitrary return codes
287
+ - oidtree: modernize the code a bit
288
+ - Merge branch 'ps/object-counting' into ps/odb-generic-object-name-handling
289
+ (this branch uses ps/object-counting.)
290
+
291
+ Object name handling (disambiguation and abbreviation) has been
292
+ refactored to be backend-generic, moving logic into the respective
293
+ object database backends.
294
+
295
+ Comments?
296
+ source: <20260319-b4-pks-odb-source-abbrev-v1-0-5ddebad292b0@pks.im>
297
+
298
+
299
+* rs/ahead-behind-cleanup-optimization (2026-03-19) 1 commit
300
+ - commit-reach: simplify cleanup of remaining bitmaps in ahead_behind ()
301
+
302
+ The cleanup of remaining bitmaps in "ahead_behind()" has been
303
+ simplified.
304
+
305
+ Will merge to 'next'.
306
+ source: <21adf042-2bd1-4022-8822-9ed4985122a4@web.de>
307
+
308
+
309
+* bk/t5315-test-path-is-helpers (2026-03-19) 1 commit
310
+ - t5315: use test_path_is_file for loose-object check
311
+
312
+ Test clean-up.
313
+
314
+ Will merge to 'next'?
315
+ source: <20260319180803.164335-1-elkhatabibilal@gmail.com>
316
+
317
+
318
+* rs/split-index-the-repo-fix (2026-03-19) 1 commit
319
+ - split-index: stop using the_repository and the_hash_algo
320
+
321
+ split-index.c has been updated to not use the global the_repository
322
+ and the_hash_algo variables.
323
+
324
+ Will merge to 'next'.
325
+ source: <944c2331-4dec-4c98-9059-f41dc204ed86@web.de>
326
+
327
+--------------------------------------------------
328
+[Cooking]
329
+
330
* aa/reap-transport-child-processes (2026-03-12) 1 commit
196
- - transport-helper, connect: use clean_on_exit to reap children on abnormal exit
331
+ . transport-helper, connect: use clean_on_exit to reap children on abnormal exit
332
333
A few code paths that spawned child processes for network
334
connection weren't wait(2)ing for their children and letting "init"
335
reap them instead; they have been tightened.
336
202
- Will merge to 'next'?
337
+ CI failures on Windows in t0061.24?
338
+ cf. <20260318040423.GA2858991@coredump.intra.peff.net>
339
source: <20260312214945.4050010-1-cshung@gmail.com>
340
341
342
* ss/t0410-delete-object-cleanup (2026-03-12) 1 commit
207
- - t0410: modernize delete_object helper
343
+ (merged to 'next' on 2026-03-17 at a8d41f4c1f)
344
+ + t0410: modernize delete_object helper
345
346
Test clean-up.
347
211
- Will merge to 'next'.
212
- source: <20260313025852.30010-1-r.siddharth.shrimali@gmail.com>
348
+ Will merge to 'master'.
349
+ source: <20260313053159.36492-1-r.siddharth.shrimali@gmail.com>
350
351
215
-* ej/ref-transaction-hook-preparing (2026-03-15) 1 commit
352
+* ej/ref-transaction-hook-preparing (2026-03-16) 1 commit
353
- refs: add 'preparing' phase to the reference-transaction hook
354
355
The reference-transaction hook was taught to be triggered before
356
taking locks on references in the "preparing" phase.
357
221
- Comments?
222
- source: <20260316045102.70551-2-eric.peijian@gmail.com>
358
+ Will merge to 'next'.
359
+ source: <20260317023624.43070-2-eric.peijian@gmail.com>
360
361
225
-* hn/git-checkout-m-with-stash (2026-03-15) 4 commits
362
+* hn/git-checkout-m-with-stash (2026-03-17) 4 commits
363
- checkout: -m (--merge) uses autostash when switching branches
364
- sequencer: teach autostash apply to take optional conflict marker labels
365
- sequencer: allow create_autostash to run silently
@@ -234,7 +371,7 @@ Release tarballs are available at:
371
was taught to create a stash to save the local changes.
372
373
Needs review.
237
- source: <pull.2234.v5.git.git.1773573553.gitgitgadget@gmail.com>
374
+ source: <pull.2234.v6.git.git.1773740139.gitgitgadget@gmail.com>
375
376
377
* kh/name-rev-custom-format (2026-03-13) 2 commits
@@ -262,62 +399,68 @@ Release tarballs are available at:
399
400
401
* dd/cocci-do-not-pass-strbuf-by-value (2026-03-15) 3 commits
265
- - stash: do not pass strbuf by value
266
- - coccinelle: detect struct strbuf passed by value
267
- - Merge branch 'dd/list-objects-filter-options-wo-strbuf-split' into dd/cocci-do-not-pass-strbuf-by-value
268
- (this branch uses dd/list-objects-filter-options-wo-strbuf-split.)
402
+ (merged to 'next' on 2026-03-18 at a2ffed1127)
403
+ + stash: do not pass strbuf by value
404
+ + coccinelle: detect struct strbuf passed by value
405
+ + Merge branch 'dd/list-objects-filter-options-wo-strbuf-split' into dd/cocci-do-not-pass-strbuf-by-value
406
407
Add a coccinelle rule to break the build when "struct strbuf" gets
408
passed by value.
409
273
- Will merge to 'next'?
410
+ Will merge to 'master'.
411
source: <20260315094445.19849-1-deveshigurgaon@gmail.com>
412
413
414
* gj/user-manual-fix-grep-example (2026-03-16) 1 commit
278
- - doc: fix git grep args order in Quick Reference
415
+ (merged to 'next' on 2026-03-17 at dbf9137a9d)
416
+ + doc: fix git grep args order in Quick Reference
417
418
Fix an example in the user-manual.
419
282
- Will merge to 'next'.
420
+ Will merge to 'master'.
421
source: <pull.2069.git.1773670536808.gitgitgadget@gmail.com>
422
423
424
* jk/transport-color-leakfix (2026-03-14) 1 commit
287
- - transport: plug leaks in transport_color_config()
425
+ (merged to 'next' on 2026-03-17 at c2d7c74d11)
426
+ + transport: plug leaks in transport_color_config()
427
428
Leakfix.
429
291
- Will merge to 'next'.
430
+ Will merge to 'master'.
431
source: <20260314160814.GA918806@coredump.intra.peff.net>
432
433
295
-* jw/apply-corrupt-location (2026-03-16) 1 commit
434
+* jw/apply-corrupt-location (2026-03-17) 3 commits
435
+ - apply: report input location in binary and garbage patch errors
436
+ - apply: report input location in header parsing errors
437
- apply: report the location of corrupt patches
438
439
"git apply" now reports the name of the input file along with the
440
line number when it encounters a corrupt patch, and correctly
441
resets the line counter when processing multiple patch files.
442
302
- Expecting review responses.
303
- source: <20260316113459.77794-1-jerrywang183@yahoo.com>
443
+ Will merge to 'next'?
444
+ source: <20260317162321.71812-1-jerrywang183@yahoo.com>
445
446
447
* ps/clar-wo-path-max (2026-03-16) 1 commit
307
- - clar: update to fix compilation on platforms without PATH_MAX
448
+ (merged to 'next' on 2026-03-17 at 1d2f28a677)
449
+ + clar: update to fix compilation on platforms without PATH_MAX
450
451
Clar (unit testing framework) update from the upstream.
452
311
- Will merge to 'next'.
453
+ Will merge to 'master'.
454
source: <20260316-b4-pks-clar-without-path-max-v1-1-40b4bc91fdc0@pks.im>
455
456
457
* rj/pack-refs-tests-path-is-helpers (2026-03-15) 1 commit
316
- - t/pack-refs-tests: use test_path_is_missing
458
+ (merged to 'next' on 2026-03-17 at 56374095e3)
459
+ + t/pack-refs-tests: use test_path_is_missing
460
461
Test updates.
462
320
- Will merge to 'next'.
463
+ Will merge to 'master'.
464
source: <20260315081032.497-1-riteshjd75@gmail.com>
465
466
@@ -336,29 +479,30 @@ Release tarballs are available at:
479
--commit-list-format` (formerly `--cover-letter-format`) option,
480
including a new "modern" preset and better CLI ergonomics.
481
339
- Needs review.
482
+ Expecting a reroll.
483
+ cf. <abl-U6jJaMQsfxWj@exploit>
484
source: <cover.1773530191.git.mroik@delayed.space>
485
486
487
* mf/t0008-cleanup (2026-03-15) 1 commit
344
- - t0008: improve test cleanup to fix failing test
488
+ (merged to 'next' on 2026-03-17 at 2bb0e51243)
489
+ + t0008: improve test cleanup to fix failing test
490
491
Test clean-up.
492
348
- Will merge to 'next'.
493
+ Will merge to 'master'.
494
source: <20260316011544.13825-1-mroik@delayed.space>
495
496
497
* pb/t4200-test-path-is-helpers (2026-03-16) 1 commit
353
- - t4200: convert test -[df] checks to test_path_* helpers
498
+ (merged to 'next' on 2026-03-17 at a78771f93e)
499
+ + t4200: convert test -[df] checks to test_path_* helpers
500
501
Test clean-up.
502
357
- Will merge to 'next'.
503
+ Will merge to 'master'.
504
source: <20260316172457.38242-1-prashantjee2025@gmail.com>
505
360
---------------------------------------------------
361
-[Cooking]
506
507
* js/parseopt-subcommand-autocorrection (2026-03-16) 10 commits
508
- doc: document autocorrect API
@@ -381,15 +525,16 @@ Release tarballs are available at:
525
526
527
* jt/fast-import-sign-again (2026-03-12) 3 commits
384
- - fast-import: add mode to sign commits with invalid signatures
385
- - gpg-interface: allow sign_buffer() to use default signing key
386
- - commit: remove unused forward declaration
528
+ (merged to 'next' on 2026-03-17 at e04808d5f2)
529
+ + fast-import: add mode to sign commits with invalid signatures
530
+ + gpg-interface: allow sign_buffer() to use default signing key
531
+ + commit: remove unused forward declaration
532
533
"git fast-import" learned to optionally replace signature on
534
commits whose signatures get invalidated due to replaying by
535
signing afresh.
536
392
- Will merge to 'next'.
537
+ Will merge to 'master'.
538
source: <20260313013938.2742124-1-jltobler@gmail.com>
539
540
@@ -398,11 +543,11 @@ Release tarballs are available at:
543
544
"git apply -p<n>" parses <n> more carefully now.
545
401
- Will merge to 'next'?
546
+ Will merge to 'next'.
547
source: <20260316005120.7079-1-mroik@delayed.space>
548
549
405
-* ps/build-tweaks (2026-03-16) 8 commits
550
+* ps/build-tweaks (2026-03-18) 8 commits
551
- meson: precompile "git-compat-util.h"
552
- meson: compile compatibility sources separately
553
- git-compat-util.h: move warning infra to prepare for PCHs
@@ -414,32 +559,35 @@ Release tarballs are available at:
559
560
Tweak the build infrastructure by moving tools around.
561
417
- Will merge to 'next'??
418
- source: <20260316-b4-pks-build-infra-improvements-v2-0-4b2c2c0c0425@pks.im>
562
+ Will merge to 'next'.
563
+ source: <20260319-b4-pks-build-infra-improvements-v3-0-82f5fb3edc3f@pks.im>
564
565
566
* ps/object-counting (2026-03-12) 7 commits
422
- - odb: introduce generic object counting
423
- - odb/source: introduce generic object counting
424
- - object-file: generalize counting objects
425
- - object-file: extract logic to approximate object count
426
- - packfile: extract logic to count number of objects
427
- - odb: stop including "odb/source.h"
428
- - Merge branch 'ps/odb-sources' into ps/object-counting
567
+ (merged to 'next' on 2026-03-17 at 8d3d9a1374)
568
+ + odb: introduce generic object counting
569
+ + odb/source: introduce generic object counting
570
+ + object-file: generalize counting objects
571
+ + object-file: extract logic to approximate object count
572
+ + packfile: extract logic to count number of objects
573
+ + odb: stop including "odb/source.h"
574
+ + Merge branch 'ps/odb-sources' into ps/object-counting
575
+ (this branch is used by ps/odb-generic-object-name-handling.)
576
577
The logic to count objects has been cleaned up.
578
432
- Will merge to 'next'.
579
+ Will merge to 'master'.
580
source: <20260312-b4-pks-odb-source-count-objects-v2-0-5914f69256bf@pks.im>
581
582
583
* ty/doc-diff-u-wo-number (2026-03-10) 1 commit
437
- - diff: document -U without <n> as using default context
584
+ (merged to 'next' on 2026-03-18 at 8a410154ff)
585
+ + diff: document -U without <n> as using default context
586
587
"git diff -U<num>" was too lenient in its command line parsing and
588
took an empty string as a valid <num>.
589
442
- Will merge to 'next'?
590
+ Will merge to 'master'.
591
source: <20260310095017.131957-1-cat@malon.dev>
592
593
@@ -467,51 +615,6 @@ Release tarballs are available at:
615
source: <20260311121107.1122387-1-dev+git@drbeat.li>
616
617
470
-* ps/editorconfig-unanchor (2026-03-11) 1 commit
471
- (merged to 'next' on 2026-03-12 at 39ef732ca9)
472
- + editorconfig: fix style not applying to subdirs anymore
473
-
474
- Editorconfig filename patterns were specified incorrectly, making
475
- many source files inside subdirectories unaffected, which has been
476
- corrected.
477
-
478
- Will merge to 'master'.
479
- source: <20260311-b4-pks-editorconfig-fix-subdirs-v1-1-4938193ccd31@pks.im>
480
-
481
-
482
-* ps/unit-test-c-escape-names.txt (2026-03-10) 1 commit
483
- (merged to 'next' on 2026-03-13 at f545ea5a9c)
484
- + test-lib: print escape sequence names
485
-
486
- The unit test helper function was taught to use backslash +
487
- mnemonic notation for certain control characters like "\t", instead
488
- of octal notation like "\011".
489
-
490
- Will merge to 'master'.
491
- source: <20260311031442.11942-1-pabloosabaterr@gmail.com>
492
-
493
-
494
-* ss/submodule--helper-use-xmalloc (2026-03-10) 1 commit
495
- (merged to 'next' on 2026-03-13 at f13711965e)
496
- + submodule--helper: replace malloc with xmalloc
497
-
498
- Code clean-up.
499
-
500
- Will merge to 'master'.
501
- source: <20260310164412.47403-1-r.siddharth.shrimali@gmail.com>
502
-
503
-
504
-* ss/t3200-test-zero-oid (2026-03-11) 1 commit
505
- (merged to 'next' on 2026-03-12 at 647ee3f2dc)
506
- + t3200: replace hardcoded null OID with $ZERO_OID
507
-
508
- A test now uses the symbolic constant $ZERO_OID instead of 40 "0" to
509
- work better with SHA-256 as well as SHA-1.
510
-
511
- Will merge to 'master'.
512
- source: <20260311174120.76871-1-r.siddharth.shrimali@gmail.com>
513
-
514
-
618
* jc/test-allow-sed-with-ere (2026-03-11) 1 commit
619
(merged to 'next' on 2026-03-16 at be057bed35)
620
+ t: allow use of "sed -E"
@@ -522,28 +625,16 @@ Release tarballs are available at:
625
source: <xmqq3425lvtq.fsf@gitster.g>
626
627
525
-* bk/run-command-wo-the-repository (2026-03-12) 2 commits
526
- (merged to 'next' on 2026-03-12 at 61ffe62b75)
527
- + run-command: wean auto_maintenance() functions off the_repository
528
- + run-command: wean start_command() off the_repository
529
-
530
- The run_command() API lost its implicit dependencyon the singleton
531
- `the_repository` instance.
532
-
533
- Will merge to 'master'.
534
- source: <20260312144437.626392-1-bkkaracay@gmail.com>
535
-
536
-
537
-* kh/doc-interpret-trailers-1 (2026-03-11) 3 commits
628
+* kh/doc-interpret-trailers-1 (2026-03-16) 4 commits
629
+ - interpret-trailers: use placeholder instead of *
630
- doc: config: convert trailers section to synopsis style
631
- doc: interpret-trailers: normalize and fill out options
632
- doc: interpret-trailers: convert to synopsis style
633
634
Doc updates.
635
544
- Expecting a (hopefully small and final) reroll?
545
- cf. <xmqq1phogbk5.fsf@gitster.g>
546
- source: <CV_doc_interpret-tr_synopsis.48a@msgid.xyz>
636
+ Will merge to 'next'.
637
+ source: <V2_CV_doc_interpret-tr_synopsis.50a@msgid.xyz>
638
639
640
* ty/mktree-wo-the-repository (2026-03-12) 1 commit
@@ -556,7 +647,7 @@ Release tarballs are available at:
647
source: <20260312164203.964033-1-cat@malon.dev>
648
649
559
-* mm/line-log-use-standard-diff-output (2026-03-06) 4 commits
650
+* mm/line-log-use-standard-diff-output (2026-03-16) 4 commits
651
- doc: note that -L supports patch formatting and pickaxe options
652
- t4211: add tests for -L with standard diff options
653
- line-log: route -L output through the standard diff pipeline
@@ -566,9 +657,8 @@ Release tarballs are available at:
657
log/diff machinery is being reworked a bit to make the feature
658
compatible with more diff options, like -S/G.
659
569
- Expecting a reroll.
570
- cf. <CAC2QwmJTqYj5b531itc=8ZM3vXsg5oG3BLCHiEuoB7d0d4U=TQ@mail.gmail.com>
571
- source: <pull.2065.git.1772845338.gitgitgadget@gmail.com>
660
+ Needs review.
661
+ source: <pull.2065.v2.git.1773714095.gitgitgadget@gmail.com>
662
663
664
* ar/config-hook-cleanups (2026-03-08) 11 commits
@@ -603,40 +693,6 @@ Release tarballs are available at:
693
source: <3ad40c3d0762c2e8c14792dfb68cba9f63a883a3.1773026586.git.collin.funk1@gmail.com>
694
695
606
-* dd/list-objects-filter-options-wo-strbuf-split (2026-03-11) 2 commits
607
- (merged to 'next' on 2026-03-12 at 99c4dbd03e)
608
- + list-objects-filter-options: avoid strbuf_split_str()
609
- + worktree: do not pass strbuf by value
610
- (this branch is used by dd/cocci-do-not-pass-strbuf-by-value.)
611
-
612
- Revamp the way combined option filter is parsed.
613
-
614
- Will merge to 'master'.
615
- source: <20260311173336.8395-1-deveshigurgaon@gmail.com>
616
-
617
-
618
-* jc/doc-wholesale-replace-before-next (2026-03-09) 1 commit
619
- (merged to 'next' on 2026-03-13 at 19ca350c9b)
620
- + SubmittingPatches: spell out "replace fully to pretend to be perfect"
621
-
622
- Doc update.
623
-
624
- Will merge to 'master'.
625
- source: <xmqq34283b12.fsf@gitster.g>
626
-
627
-
628
-* ps/t9200-test-path-is-helpers (2026-03-12) 2 commits
629
- (merged to 'next' on 2026-03-12 at 8500bdf172)
630
- + t9200: replace test -f with modern path helper
631
- + t9200: handle missing CVS with skip_all
632
-
633
- Test update.
634
-
635
- Will merge to 'master'.
636
- source: <20260311194002.190195-1-pabloosabaterr@gmail.com>
637
- source: <20260312173305.15112-1-pabloosabaterr@gmail.com>
638
-
639
-
696
* ab/clone-default-object-filter (2026-03-14) 1 commit
697
- clone: add clone.<url>.defaultObjectFilter config
698
@@ -695,18 +751,19 @@ Release tarballs are available at:
751
752
753
* ps/history-split (2026-03-02) 8 commits
698
- - builtin/history: implement "split" subcommand
699
- - builtin/history: split out extended function to create commits
700
- - cache-tree: allow writing in-memory index as tree
701
- - add-patch: allow disabling editing of hunks
702
- - add-patch: add support for in-memory index patching
703
- - add-patch: remove dependency on "add-interactive" subsystem
704
- - add-patch: split out `struct interactive_options`
705
- - add-patch: split out header from "add-interactive.h"
754
+ (merged to 'next' on 2026-03-17 at 456723f018)
755
+ + builtin/history: implement "split" subcommand
756
+ + builtin/history: split out extended function to create commits
757
+ + cache-tree: allow writing in-memory index as tree
758
+ + add-patch: allow disabling editing of hunks
759
+ + add-patch: add support for in-memory index patching
760
+ + add-patch: remove dependency on "add-interactive" subsystem
761
+ + add-patch: split out `struct interactive_options`
762
+ + add-patch: split out header from "add-interactive.h"
763
764
"git history" learned the "split" subcommand.
765
709
- Will merge to 'next'.
766
+ Will merge to 'master'.
767
source: <20260302-pks-history-split-v1-0-444fc987a324@pks.im>
768
769
@@ -722,39 +779,24 @@ Release tarballs are available at:
779
780
781
* ps/upload-pack-buffer-more-writes (2026-03-12) 10 commits
725
- - builtin/pack-objects: reduce lock contention when writing packfile data
726
- - csum-file: drop `hashfd_throughput()`
727
- - csum-file: introduce `hashfd_ext()`
728
- - sideband: use writev(3p) to send pktlines
729
- - wrapper: introduce writev(3p) wrappers
730
- - compat/posix: introduce writev(3p) wrapper
731
- - upload-pack: reduce lock contention when writing packfile data
732
- - upload-pack: prefer flushing data over sending keepalive
733
- - upload-pack: adapt keepalives based on buffering
734
- - upload-pack: fix debug statement when flushing packfile data
782
+ (merged to 'next' on 2026-03-18 at 138ad42ac5)
783
+ + builtin/pack-objects: reduce lock contention when writing packfile data
784
+ + csum-file: drop `hashfd_throughput()`
785
+ + csum-file: introduce `hashfd_ext()`
786
+ + sideband: use writev(3p) to send pktlines
787
+ + wrapper: introduce writev(3p) wrappers
788
+ + compat/posix: introduce writev(3p) wrapper
789
+ + upload-pack: reduce lock contention when writing packfile data
790
+ + upload-pack: prefer flushing data over sending keepalive
791
+ + upload-pack: adapt keepalives based on buffering
792
+ + upload-pack: fix debug statement when flushing packfile data
793
794
Reduce system overhead "git upload-pack" spends on relaying "git
795
pack-objects" output to the "git fetch" running on the other end of
796
the connection.
797
740
- Will merge to 'next'?
741
- source: <20260313-pks-upload-pack-write-contention-v4-0-7a9668061f7f@pks.im>
742
-
743
-
744
-* lc/rebase-trailer (2026-03-06) 6 commits
745
- (merged to 'next' on 2026-03-13 at 75c22b6b26)
746
- + rebase: support --trailer
747
- + commit, tag: parse --trailer with OPT_STRVEC
748
- + trailer: append trailers without fork/exec
749
- + trailer: libify a couple of functions
750
- + interpret-trailers: refactor create_in_place_tempfile()
751
- + interpret-trailers: factor trailer rewriting
752
-
753
- "git rebase" learns "--trailer" command to drive the
754
- interpret-trailers machinery.
755
-
798
Will merge to 'master'.
757
- source: <cover.1772808594.git.phillip.wood@dunelm.org.uk>
799
+ source: <20260313-pks-upload-pack-write-contention-v4-0-7a9668061f7f@pks.im>
800
801
802
* mf/format-patch-cover-letter-format (2026-03-06) 5 commits
@@ -819,17 +861,15 @@ Release tarballs are available at:
861
source: <20260313054035.26605-1-siddharthasthana31@gmail.com>
862
863
822
-* vp/http-rate-limit-retries (2026-02-23) 4 commits
864
+* vp/http-rate-limit-retries (2026-03-17) 3 commits
865
- http: add support for HTTP 429 rate limit retries
824
- - remote-curl: introduce show_http_message_fatal() helper
866
- strbuf_attach: fix call sites to pass correct alloc
867
- strbuf: pass correct alloc to strbuf_attach() in strbuf_reencode()
868
869
The HTTP transport learned to react to "429 Too Many Requests".
870
871
Needs review.
831
- cf. <xmqq5x7nknrd.fsf@gitster.g>
832
- source: <pull.2008.v5.git.1771856405.gitgitgadget@gmail.com>
872
+ source: <pull.2008.v6.git.1773752435.gitgitgadget@gmail.com>
873
874
875
* ar/parallel-hooks (2026-03-09) 10 commits
@@ -861,12 +901,13 @@ Release tarballs are available at:
901
902
903
* yc/histogram-hunk-shift-fix (2026-03-02) 1 commit
864
- - xdiff: re-diff shifted change groups when using histogram algorithm
904
+ (merged to 'next' on 2026-03-18 at 5e49edc821)
905
+ + xdiff: re-diff shifted change groups when using histogram algorithm
906
907
The final clean-up phase of the diff output could turn the result of
908
histogram diff algorithm suboptimal, which has been corrected.
909
869
- Will merge to 'next'?
910
+ Will merge to 'master'.
911
source: <pull.2120.v2.git.git.1772463265865.gitgitgadget@gmail.com>
912
913
@@ -891,27 +932,28 @@ Release tarballs are available at:
932
933
934
* tb/incremental-midx-part-3.2 (2026-02-24) 17 commits
894
- - midx: enable reachability bitmaps during MIDX compaction
895
- - midx: implement MIDX compaction
896
- - t/helper/test-read-midx.c: plug memory leak when selecting layer
897
- - midx-write.c: factor fanout layering from `compute_sorted_entries()`
898
- - midx-write.c: enumerate `pack_int_id` values directly
899
- - midx-write.c: extract `fill_pack_from_midx()`
900
- - midx-write.c: introduce `midx_pack_perm()` helper
901
- - midx: do not require packs to be sorted in lexicographic order
902
- - midx-write.c: introduce `struct write_midx_opts`
903
- - midx-write.c: don't use `pack_perm` when assigning `bitmap_pos`
904
- - t/t5319-multi-pack-index.sh: fix copy-and-paste error in t5319.39
905
- - git-multi-pack-index(1): align SYNOPSIS with 'git multi-pack-index -h'
906
- - git-multi-pack-index(1): remove non-existent incompatibility
907
- - builtin/multi-pack-index.c: make '--progress' a common option
908
- - midx: introduce `midx_get_checksum_hex()`
909
- - midx: rename `get_midx_checksum()` to `midx_get_checksum_hash()`
910
- - midx: mark `get_midx_checksum()` arguments as const
935
+ (merged to 'next' on 2026-03-18 at 7f995e23bb)
936
+ + midx: enable reachability bitmaps during MIDX compaction
937
+ + midx: implement MIDX compaction
938
+ + t/helper/test-read-midx.c: plug memory leak when selecting layer
939
+ + midx-write.c: factor fanout layering from `compute_sorted_entries()`
940
+ + midx-write.c: enumerate `pack_int_id` values directly
941
+ + midx-write.c: extract `fill_pack_from_midx()`
942
+ + midx-write.c: introduce `midx_pack_perm()` helper
943
+ + midx: do not require packs to be sorted in lexicographic order
944
+ + midx-write.c: introduce `struct write_midx_opts`
945
+ + midx-write.c: don't use `pack_perm` when assigning `bitmap_pos`
946
+ + t/t5319-multi-pack-index.sh: fix copy-and-paste error in t5319.39
947
+ + git-multi-pack-index(1): align SYNOPSIS with 'git multi-pack-index -h'
948
+ + git-multi-pack-index(1): remove non-existent incompatibility
949
+ + builtin/multi-pack-index.c: make '--progress' a common option
950
+ + midx: introduce `midx_get_checksum_hex()`
951
+ + midx: rename `get_midx_checksum()` to `midx_get_checksum_hash()`
952
+ + midx: mark `get_midx_checksum()` arguments as const
953
954
Further work on incremental repacking using MIDX/bitmap
955
914
- Will merge to 'next'?
956
+ Will merge to 'master'.
957
source: <cover.1771959555.git.me@ttaylorr.com>
958
959
--------------------------------------------------
@@ -931,3 +973,15 @@ Release tarballs are available at:
973
Superseded by 'jc/neuter-sideband-fixup', which reuses most of the patches.
974
cf. <xmqqv7gcnwd4.fsf@gitster.g>
975
source: <pull.1853.v4.git.1770113882.gitgitgadget@gmail.com>
976
+
977
+
978
+* bc/rev-parse-parseopt-help-exit-code (2026-03-16) 1 commit
979
+ . rev-parse: have --parseopt callers exit 0 on --help
980
+
981
+ `rev-parse --parseopt` now includes "exit 0" in its output when the
982
+ user asks for help, ensuring that scripts using the recommended `eval`
983
+ pattern exit successfully.
984
+
985
+ Need to step back and rethink how exit code should look like.
986
+ cf. <20260317150759.GA9975@coredump.intra.peff.net>
987
+ source: <20260316220742.1286157-1-sandals@crustytoothpaste.net>