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>