What's cooking (2026/04 #01)

Junio C Hamano committed Apr 1, 2026 at 15:31 UTC 267090a9aeb773f42371e399111fd76d11fa78a9
1 file changed +304 -344
whats-cooking.txt
+304 -344
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Mar 2026, #12)
3 -X-master-at: 270e10ad6dda3379ea0da7efd11e4fbf2cd7a325
4 -X-next-at: 0c370356e2245450de215a847afb905bda230d11
2 +Subject: What's cooking in git.git (Apr 2026, #01)
3 +X-master-at: cf2139f8e1680b076e115bc0b349e369b4b0ecc4
4 +X-next-at: 189a785ab595218b95d2e09937b96fbd752f5d80
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Mar 2026, #12)
7 +What's cooking in git.git (Apr 2026, #01)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -45,25 +45,217 @@ Release tarballs are available at:
45
46 https://www.kernel.org/pub/software/scm/git/
47
48 +--------------------------------------------------
49 +[Graduated to 'master']
50 +
51 +* bk/t5315-test-path-is-helpers (2026-03-19) 1 commit
52 + (merged to 'next' on 2026-03-24 at f7374e8e70)
53 + + t5315: use test_path_is_file for loose-object check
54 +
55 + Test clean-up.
56 + source: <20260319180803.164335-1-elkhatabibilal@gmail.com>
57 +
58 +
59 +* jc/macos-homebrew-wo-reg-enhanced (2026-03-23) 1 commit
60 + (merged to 'next' on 2026-03-26 at ce92a76711)
61 + + regexp: leave a pointer to resurrect workaround for Homebrew
62 +
63 + In case homebrew breaks REG_ENHANCED again, leave a in-code comment
64 + to suggest use of our replacement regex as a workaround.
65 + source: <xmqq8qbi5vvx.fsf@gitster.g>
66 +
67 +
68 +* jk/diff-highlight-more (2026-03-22) 9 commits
69 + (merged to 'next' on 2026-03-24 at e7b555cbc5)
70 + + diff-highlight: fetch all config with one process
71 + + diff-highlight: allow module callers to pass in color config
72 + + diff-highlight: test color config
73 + + diff-highlight: use test_decode_color in tests
74 + + t: add matching negative attributes to test_decode_color
75 + + diff-highlight: check diff-highlight exit status in tests
76 + + diff-highlight: drop perl version dependency back to 5.8
77 + + diff-highlight: mention build instructions
78 + + Merge branch 'jk/diff-highlight-identical-pairs' into jk/diff-highlight-more
79 +
80 + Various updates to contrib/diff-highlight, including documentation
81 + updates, test improvements, and color configuration handling.
82 + source: <20260323060139.GA10215@coredump.intra.peff.net>
83 +
84 +
85 +* jk/t0061-bat-test-update (2026-03-24) 1 commit
86 + (merged to 'next' on 2026-03-26 at ffae180124)
87 + + t0061: simplify .bat test
88 +
89 + A test to run a .bat file with whitespaces in the name with arguments
90 + with whitespaces in them was flaky in that sometimes it got killed
91 + before it produced expected side effects, which has been rewritten to
92 + make it more robust.
93 + source: <20260325061357.GA3772970@coredump.intra.peff.net>
94 +
95 +
96 +* kj/refspec-parsing-outside-repository (2026-03-23) 2 commits
97 + (merged to 'next' on 2026-03-26 at 0a8c60e8ae)
98 + + refspec: fix typo in comment
99 + + remote-curl: fall back to default hash outside repo
100 +
101 + "git ls-remote '+refs/tags/*:refs/tags/*' https://..." run outside a
102 + repository would dereference a NULL while trying to see if the given
103 + refspec is a single-object refspec, which has been corrected.
104 + source: <20260322023557.15907-1-jayatheerthkulkarni2005@gmail.com>
105 +
106 +
107 +* mk/repo-help-strings (2026-03-25) 2 commits
108 + (merged to 'next' on 2026-03-26 at a4c755ddde)
109 + + repo: show subcommand-specific help text
110 + + repo: factor repo usage strings into shared macros
111 +
112 + "git repo info -h" and "git repo structure -h" limit their help output
113 + to the part that is specific to the subcommand.
114 + source: <20260323152937.257406-1- mahlet.takassa@gmail.com>
115 +
116 +
117 +* rs/use-strvec-pushv (2026-03-24) 2 commits
118 + (merged to 'next' on 2026-03-24 at 7c6487dcaf)
119 + + use strvec_pushv() to add another strvec
120 + + Merge branch 'ps/build-tweaks' into rs/use-strvec-pushv
121 +
122 + Code paths that loop over another array to push each element into a
123 + strvec have been rewritten to use strvec_pushv() instead.
124 + source: <084f3b43-91ac-4553-8305-03944e97eaa6@web.de>
125 +
126 +
127 +* vp/http-rate-limit-retries (2026-03-17) 3 commits
128 + (merged to 'next' on 2026-03-24 at 9cb4ec5fad)
129 + + http: add support for HTTP 429 rate limit retries
130 + + strbuf_attach: fix call sites to pass correct alloc
131 + + strbuf: pass correct alloc to strbuf_attach() in strbuf_reencode()
132 +
133 + The HTTP transport learned to react to "429 Too Many Requests".
134 + cf. <ab4RIZr7b49VKjR9@nand.local>
135 + source: <pull.2008.v6.git.1773752435.gitgitgadget@gmail.com>
136 +
137 --------------------------------------------------
138 [New Topics]
139
51 -* sa/cat-file-batch-mailmap-switch (2026-03-29) 1 commit
140 +* jt/odb-transaction-write (2026-03-31) 7 commits
141 + - odb/transaction: make `write_object_stream()` pluggable
142 + - object-file: generalize packfile writes to use odb_write_stream
143 + - object-file: avoid fd seekback by checking object size upfront
144 + - object-file: remove flags from transaction packfile writes
145 + - odb: update `struct odb_write_stream` read() callback
146 + - odb/transaction: use pluggable `begin_transaction()`
147 + - odb: split `struct odb_transaction` into separate header
148 +
149 + ODB transaction interface is being reworked to explicitly handle
150 + object writes.
151 +
152 + Expecting a reroll.
153 + cf. <ac0irp8GJSrSD8GU@denethor>
154 + source: <20260401030316.1847362-1-jltobler@gmail.com>
155 +
156 +
157 +* jd/cache-tree-trace-wo-the-repository (2026-03-31) 1 commit
158 + - cache-tree: use index state repository in trace2 calls
159 +
160 + Code cleanup.
161 +
162 + Will merge to 'next'?
163 + source: <pull.2259.git.git.1774951373588.gitgitgadget@gmail.com>
164 +
165 +
166 +* ps/reftable-portability (2026-03-31) 6 commits
167 + - reftable: introduce "reftable-system.h" header
168 + - reftable/system: add abstraction to mmap files
169 + - reftable/system: add abstraction to retrieve time in milliseconds
170 + - reftable/fsck: use REFTABLE_UNUSED instead of UNUSED
171 + - reftable/stack: don't call fsync(3p) unless provided
172 + - reftable/system: provide `REFTABLE_INLINE()` macro
173 +
174 + Update reftable library part with what is used in libgit2 to improve
175 + portability to different target codebases and platforms.
176 +
177 + Will merge to 'next'?
178 + source: <20260331-pks-reftable-portability-fixes-v1-0-46bfae55c68c@pks.im>
179 +
180 +
181 +* jk/c23-const-preserving-fixes-more (2026-03-31) 12 commits
182 + - refs/files-backend: drop const to fix strchr() warning
183 + - http: drop const to fix strstr() warning
184 + - range-diff: drop const to fix strstr() warnings
185 + - pkt-line: make packet_reader.line non-const
186 + - skip_prefix(): check const match between in and out params
187 + - pseudo-merge: fix disk reads from find_pseudo_merge()
188 + - find_last_dir_sep(): convert inline function to macro
189 + - run-command: explicitly cast away constness when assigning to void
190 + - pager: explicitly cast away strchr() constness
191 + - transport-helper: drop const to fix strchr() warnings
192 + - http: add const to fix strchr() warnings
193 + - convert: add const to fix strchr() warnings
194 +
195 + Further work to adjust the codebase for C23 that changes functions
196 + like strchr() that discarded constness when they return a pointer into
197 + a const string to preserve constness.
198 +
199 + Will merge to 'next'?
200 + source: <20260331233856.GA2327197@coredump.intra.peff.net>
201 +
202 +
203 +* ps/odb-cleanup (2026-03-31) 7 commits
204 + - odb: drop unneeded headers and forward decls
205 + - odb: rename `odb_has_object()` flags
206 + - odb: use enum for `odb_write_object` flags
207 + - odb: rename `odb_write_object()` flags
208 + - treewide: use enum for `odb_for_each_object()` flags
209 + - CodingGuidelines: document our style for flags
210 + - Merge branch 'ps/odb-generic-object-name-handling' into ps/odb-cleanup
211 + (this branch uses ps/odb-generic-object-name-handling.)
212 +
213 + Various code clean-up around odb subsystem.
214 +
215 + Will merge to 'next'?
216 + source: <20260401-pks-odb-cleanups-v1-0-89adba9ada68@pks.im>
217 +
218 +
219 +* ss/t7004-unhide-git-failures (2026-03-31) 1 commit
220 + - t7004: replace wc -l with modern test helpers
221 +
222 + Test clean-up.
223 +
224 + Will merge to 'next'.
225 + source: <20260401062029.54757-1-r.siddharth.shrimali@gmail.com>
226 +
227 +
228 +* ng/add-files-to-cache-wo-rename (2026-04-01) 1 commit
229 + - read-cache: disable renames in add_files_to_cache
230 +
231 + add_files_to_cache() used diff_files() to detect only the paths that
232 + are different between the index and the working tree and add them,
233 + which does not need rename detection, which interfered with unnecessary
234 + conflicts.
235 +
236 + Will merge to 'next'?
237 + source: <20260401190033.11325-1-blindmansion@gmail.com>
238 +
239 +--------------------------------------------------
240 +[Cooking]
241 +
242 +* sa/cat-file-batch-mailmap-switch (2026-03-31) 1 commit
243 - cat-file: add mailmap subcommand to --batch-command
244
245 "git cat-file --batch" learns an in-line command "mailmap"
246 that lets the user toggle use of mailmap.
247
57 - Comments?
58 - source: <20260329082808.12609-2-siddharthasthana31@gmail.com>
248 + Will merge to 'next'?
249 + source: <20260331121111.9614-2-siddharthasthana31@gmail.com>
250
251
252 * sp/doc-gitignore-oowt (2026-03-28) 1 commit
62 - - doc: gitignore: clarify pattern base for info/exclude and core.excludesFile
253 + (merged to 'next' on 2026-03-31 at ab3e6e484e)
254 + + doc: gitignore: clarify pattern base for info/exclude and core.excludesFile
255
256 Doc update.
257
66 - Will merge to 'next'.
258 + Will merge to 'master'.
259 source: <20260328152233.1140327-1-shreyanshpaliwalcmsmn@gmail.com>
260
261
@@ -89,48 +281,51 @@ Release tarballs are available at:
281 have been implemented, and incremental strategy that does not require
282 all-into-one repacking has been introduced.
283
92 - Needs review.
284 + Expecting a reroll.
285 + cf. <acxBUkHDolY9VCnR@nand.local>
286 source: <cover.1774820449.git.me@ttaylorr.com>
287
288
289 * th/t6101-unhide-git-failures (2026-03-28) 1 commit
97 - - t6101: avoid suppressing git's exit code
290 + (merged to 'next' on 2026-03-31 at 8867bcf2b4)
291 + + t6101: avoid suppressing git's exit code
292
293 Test cleanup.
294
101 - Will merge to 'next'.
295 + Will merge to 'master'.
296 source: <20260328135935.180646-1-vikingtc4@gmail.com>
297
298
299 * za/t2000-modernise (2026-03-27) 1 commit
106 - - t2000: modernise overall structure
300 + (merged to 'next' on 2026-03-31 at 279c41a3e0)
301 + + t2000: modernise overall structure
302
303 Test cleanup.
304
110 - Will merge to 'next'.
305 + Will merge to 'master'.
306 source: <20260327234019.95591-1-zakariyahali100@gmail.com>
307
308
309 * jd/read-cache-trace-wo-the-repository (2026-03-30) 1 commit
115 - - read-cache: use istate->repo for trace2 logging
310 + (merged to 'next' on 2026-04-01 at 7047e45a6d)
311 + + read-cache: use istate->repo for trace2 logging
312
313 A handful of inappropriate uses of the_repository have been
314 rewritten to use the right repository structure instance in the
315 read-cache.c codepath.
316
121 - Will merge to 'next'.
317 + Will merge to 'master'.
318 source: <pull.2253.v4.git.git.1774895886678.gitgitgadget@gmail.com>
319
320
125 -* jd/unpack-trees-wo-the-repository (2026-03-30) 1 commit
126 - - unpack-trees: use explicit repository in trace2 calls
321 +* jd/unpack-trees-wo-the-repository (2026-03-31) 2 commits
322 + - unpack-trees: use repository from index instead of global
323 + - unpack-trees: use repository from index instead of global
324
325 A handful of inappropriate uses of the_repository have been
326 rewritten to use the right repository structure instance in the
327 unpack-trees.c codepath.
131 -
132 - Will merge to 'next'.
133 - source: <pull.2258.git.git.1774901607564.gitgitgadget@gmail.com>
328 + source: <pull.2258.v2.git.git.1774971267.gitgitgadget@gmail.com>
329
330
331 * ps/receive-pack-updateinstead-in-worktree (2026-03-30) 3 commits
@@ -141,7 +336,7 @@ Release tarballs are available at:
336 The check in "receive-pack" to prevent a checked out branch from
337 getting updated via updateInstead mechanism has been corrected.
338
144 - Needs review.
339 + Will merge to 'next'.
340 source: <20260330111822.165188-1-pabloosabaterr@gmail.com>
341
342
@@ -173,11 +368,12 @@ Release tarballs are available at:
368
369
370 * qb/doc-git-stash-push-optionality (2026-03-30) 1 commit
176 - - docs: fix "git stash [push]" documentation
371 + (merged to 'next' on 2026-03-31 at 66ece1b5d6)
372 + + docs: fix "git stash [push]" documentation
373
374 Doc update.
375
180 - Will merge to 'next'.
376 + Will merge to 'master'.
377 source: <pull.2255.v2.git.git.1774877075694.gitgitgadget@gmail.com>
378
379
@@ -191,181 +387,6 @@ Release tarballs are available at:
387 cf. <5ba0bbcb-25a7-4ad0-ac1d-c86508eaffdd@app.fastmail.com>
388 source: <CV_doc_int-tr_key_format.533@msgid.xyz>
389
194 ---------------------------------------------------
195 -[Graduated to 'master']
196 -
197 -* ai/t2107-test-path-is-helpers (2026-03-18) 1 commit
198 - (merged to 'next' on 2026-03-23 at 56d10e5f76)
199 - + t2107: modernize path existence check
200 -
201 - Test cleanup.
202 - source: <pull.2071.v2.git.1773864455956.gitgitgadget@gmail.com>
203 -
204 -
205 -* ej/ref-transaction-hook-preparing (2026-03-16) 1 commit
206 - (merged to 'next' on 2026-03-20 at f9b8fbb0dc)
207 - + refs: add 'preparing' phase to the reference-transaction hook
208 -
209 - The reference-transaction hook was taught to be triggered before
210 - taking locks on references in the "preparing" phase.
211 - source: <20260317023624.43070-2-eric.peijian@gmail.com>
212 -
213 -
214 -* gi/doc-boolean-config-typofix (2026-03-18) 1 commit
215 - (merged to 'next' on 2026-03-20 at 8810624798)
216 - + doc: add missing space on git-config page
217 -
218 - Doc typofix.
219 - source: <20260318210020.759128-1-gabl@gabl.ink>
220 -
221 -
222 -* jc/rerere-modern-strbuf-handling (2026-03-19) 2 commits
223 - (merged to 'next' on 2026-03-21 at 919b766afc)
224 - + cocci: strbuf.buf is never NULL
225 - + rerere: update to modern representation of empty strbufs
226 -
227 - Code clean-up overdue by 19 years.
228 - source: <xmqq341wnvbk.fsf@gitster.g>
229 - source: <xmqq4imbigvt.fsf@gitster.g>
230 -
231 -
232 -* jk/diff-highlight-identical-pairs (2026-03-17) 1 commit
233 - (merged to 'next' on 2026-03-20 at a8aa5bd14e)
234 - + contrib/diff-highlight: do not highlight identical pairs
235 - (this branch is used by jk/diff-highlight-more.)
236 -
237 - The handling of the incomplete lines at the end by "git
238 - diff-highlight" has been fixed.
239 - source: <20260317230223.GA716496@coredump.intra.peff.net>
240 -
241 -
242 -* jw/apply-corrupt-location (2026-03-17) 3 commits
243 - (merged to 'next' on 2026-03-23 at 18e9b8f91f)
244 - + apply: report input location in binary and garbage patch errors
245 - + apply: report input location in header parsing errors
246 - + apply: report the location of corrupt patches
247 -
248 - "git apply" now reports the name of the input file along with the
249 - line number when it encounters a corrupt patch, and correctly
250 - resets the line counter when processing multiple patch files.
251 - source: <20260317162321.71812-1-jerrywang183@yahoo.com>
252 -
253 -
254 -* jw/object-name-bitset-to-enum (2026-03-18) 1 commit
255 - (merged to 'next' on 2026-03-23 at 881af371ef)
256 - + object-name: turn INTERPRET_BRANCH_* constants into enum values
257 -
258 - The unsigned integer that is used as an bitset to specify the kind
259 - of branches interpret_branch_name() function has been changed to
260 - use a dedicated enum type.
261 - source: <20260318190942.22595-1-jerrywang183@yahoo.com>
262 -
263 -
264 -* jw/t2203-status-pipe-fix (2026-03-16) 1 commit
265 - (merged to 'next' on 2026-03-23 at 521c6eb44b)
266 - + t2203: avoid suppressing git status exit code
267 -
268 - Test clean-up.
269 - source: <20260317011544.65952-1-jerrywang183@yahoo.com>
270 -
271 -
272 -* kh/doc-interpret-trailers-1 (2026-03-16) 4 commits
273 - (merged to 'next' on 2026-03-20 at 6acc8b5a8a)
274 - + interpret-trailers: use placeholder instead of *
275 - + doc: config: convert trailers section to synopsis style
276 - + doc: interpret-trailers: normalize and fill out options
277 - + doc: interpret-trailers: convert to synopsis style
278 -
279 - Doc updates.
280 - source: <V2_CV_doc_interpret-tr_synopsis.50a@msgid.xyz>
281 -
282 -
283 -* mf/apply-p-no-atoi (2026-03-15) 1 commit
284 - (merged to 'next' on 2026-03-20 at 70a0a4313b)
285 - + apply.c: fix -p argument parsing
286 -
287 - "git apply -p<n>" parses <n> more carefully now.
288 - source: <20260316005120.7079-1-mroik@delayed.space>
289 -
290 -
291 -* mr/merge-file-object-id-worktree-fix (2026-03-10) 1 commit
292 - (merged to 'next' on 2026-03-20 at 68e1ee2045)
293 - + merge-file: fix BUG when --object-id is used in a worktree
294 -
295 - merge-file --object-id used to trigger a BUG when run in a linked
296 - worktree, which has been fixed.
297 - source: <c076edd0-9057-443b-ba37-33aacde2eede@app.fastmail.com>
298 -
299 -
300 -* ps/build-tweaks (2026-03-18) 8 commits
301 - (merged to 'next' on 2026-03-20 at fb53cf619a)
302 - + meson: precompile "git-compat-util.h"
303 - + meson: compile compatibility sources separately
304 - + git-compat-util.h: move warning infra to prepare for PCHs
305 - + builds: move build scripts into "tools/"
306 - + contrib: move "update-unicode.sh" script into "tools/"
307 - + contrib: move "coverage-diff.sh" script into "tools/"
308 - + contrib: move "coccinelle/" directory into "tools/"
309 - + Introduce new "tools/" directory
310 - (this branch is used by rs/use-strvec-pushv.)
311 -
312 - Tweak the build infrastructure by moving tools around.
313 - source: <20260319-b4-pks-build-infra-improvements-v3-0-82f5fb3edc3f@pks.im>
314 -
315 -
316 -* rs/ahead-behind-cleanup-optimization (2026-03-19) 1 commit
317 - (merged to 'next' on 2026-03-21 at 5d8b4fa265)
318 - + commit-reach: simplify cleanup of remaining bitmaps in ahead_behind ()
319 -
320 - The cleanup of remaining bitmaps in "ahead_behind()" has been
321 - simplified.
322 - source: <21adf042-2bd1-4022-8822-9ed4985122a4@web.de>
323 -
324 -
325 -* rs/prio-queue-to-commit-stack (2026-03-17) 1 commit
326 - (merged to 'next' on 2026-03-20 at 265cb7b28c)
327 - + use commit_stack instead of prio_queue in LIFO mode
328 -
329 - Uses of prio_queue as a LIFO stack of commits have been written
330 - with commit_stack.
331 - source: <05fc946f-6670-46e9-a058-231ee464029d@web.de>
332 -
333 -
334 -* rs/split-index-the-repo-fix (2026-03-19) 1 commit
335 - (merged to 'next' on 2026-03-21 at d66850b2ce)
336 - + split-index: stop using the_repository and the_hash_algo
337 -
338 - split-index.c has been updated to not use the global the_repository
339 - and the_hash_algo variables.
340 - source: <944c2331-4dec-4c98-9059-f41dc204ed86@web.de>
341 -
342 ---------------------------------------------------
343 -[Cooking]
344 -
345 -* jk/t0061-bat-test-update (2026-03-24) 1 commit
346 - (merged to 'next' on 2026-03-26 at ffae180124)
347 - + t0061: simplify .bat test
348 -
349 - A test to run a .bat file with whitespaces in the name with arguments
350 - with whitespaces in them was flaky in that sometimes it got killed
351 - before it produced expected side effects, which has been rewritten to
352 - make it more robust.
353 -
354 - Will merge to 'master'.
355 - source: <20260325061357.GA3772970@coredump.intra.peff.net>
356 -
357 -
358 -* mk/repo-help-strings (2026-03-25) 2 commits
359 - (merged to 'next' on 2026-03-26 at a4c755ddde)
360 - + repo: show subcommand-specific help text
361 - + repo: factor repo usage strings into shared macros
362 -
363 - "git repo info -h" and "git repo structure -h" limit their help output
364 - to the part that is specific to the subcommand.
365 -
366 - Will merge to 'master'.
367 - source: <20260323152937.257406-1- mahlet.takassa@gmail.com>
368 -
390
391 * tc/replay-ref (2026-03-25) 4 commits
392 . replay: allow to specify a ref with option --ref
@@ -382,42 +403,33 @@ Release tarballs are available at:
403 source: <20260325-toon-replay-arbitrary-ref-v2-0-553038702c9c@iotcl.com>
404
405
385 -* jc/macos-homebrew-wo-reg-enhanced (2026-03-23) 1 commit
386 - (merged to 'next' on 2026-03-26 at ce92a76711)
387 - + regexp: leave a pointer to resurrect workaround for Homebrew
388 -
389 - In case homebrew breaks REG_ENHANCED again, leave a in-code comment
390 - to suggest use of our replacement regex as a workaround.
391 -
392 - Will merge to 'master'.
393 - source: <xmqq8qbi5vvx.fsf@gitster.g>
394 -
395 -
406 * jk/c23-const-preserving-fixes (2026-03-26) 5 commits
397 - - config: store allocated string in non-const pointer
398 - - rev-parse: avoid writing to const string for parent marks
399 - - revision: avoid writing to const string for parent marks
400 - - rev-parse: simplify dotdot parsing
401 - - revision: make handle_dotdot() interface less confusing
407 + (merged to 'next' on 2026-03-31 at c813b9b814)
408 + + config: store allocated string in non-const pointer
409 + + rev-parse: avoid writing to const string for parent marks
410 + + revision: avoid writing to const string for parent marks
411 + + rev-parse: simplify dotdot parsing
412 + + revision: make handle_dotdot() interface less confusing
413
414 Adjust the codebase for C23 that changes functions like strchr()
415 that discarded constness when they return a pointer into a const
416 string to preserve constness.
417
407 - Will merge to 'next'.
418 + Will merge to 'master'.
419 source: <20260326190243.GA412983@coredump.intra.peff.net>
420 source: <20260326192320.GA418281@coredump.intra.peff.net>
421
422
423 * mf/format-patch-commit-list-format-doc (2026-03-27) 3 commits
413 - - format-patch: removing unconditional wrapping
414 - - docs: fix --commit-list-format related entries
415 - - Merge branch 'mf/format-patch-commit-list-format' into mf/format-patch-commit-list-format-doc
424 + (merged to 'next' on 2026-03-31 at 8f775bd513)
425 + + format-patch: removing unconditional wrapping
426 + + docs: fix --commit-list-format related entries
427 + + Merge branch 'mf/format-patch-commit-list-format' into mf/format-patch-commit-list-format-doc
428 (this branch uses mf/format-patch-commit-list-format and mf/format-patch-cover-letter-format.)
429
430 Doc updates.
431
420 - Will merge to 'next'.
432 + Will merge to 'master'.
433 source: <cover.1774640789.git.mroik@delayed.space>
434
435
@@ -442,7 +454,7 @@ Release tarballs are available at:
454 Handling of signed commits and tags in fast-import has been made more
455 configurable.
456
445 - Needs review.
457 + Will merge to 'next'.
458 source: <20260326191414.3783974-1-jltobler@gmail.com>
459
460
@@ -456,21 +468,10 @@ Release tarballs are available at:
468 in repositories with many branches.
469
470 Needs review.
471 + cf. <bdff0a5d-b738-4053-9b72-08eba88156de@kdbg.org>
472 source: <20260328001113.1275291-1-pabloosabaterr@gmail.com>
473
474
462 -* rs/use-strvec-pushv (2026-03-24) 2 commits
463 - (merged to 'next' on 2026-03-24 at 7c6487dcaf)
464 - + use strvec_pushv() to add another strvec
465 - + Merge branch 'ps/build-tweaks' into rs/use-strvec-pushv
466 -
467 - Code paths that loop over another array to push each element into a
468 - strvec have been rewritten to use strvec_pushv() instead.
469 -
470 - Will merge to 'master'.
471 - source: <084f3b43-91ac-4553-8305-03944e97eaa6@web.de>
472 -
473 -
475 * cc/promisor-auto-config-url (2026-03-23) 16 commits
476 - doc: promisor: improve acceptFromServer entry
477 - promisor-remote: auto-configure unknown remotes
@@ -492,85 +493,56 @@ Release tarballs are available at:
493 Promisor remote handling is enhanced to auto-configure remotes based
494 on a URL whitelist.
495
495 - Needs review.
496 + Expecting a reroll.
497 + cf. <CAP8UFD2vAK_khTkJMP4QBfhYA5iYVW5sfB3i-vnzhf71BvwQ=w@mail.gmail.com>
498 source: <20260323080520.887550-1-christian.couder@gmail.com>
499
500
499 -* kj/refspec-parsing-outside-repository (2026-03-23) 2 commits
500 - (merged to 'next' on 2026-03-26 at 0a8c60e8ae)
501 - + refspec: fix typo in comment
502 - + remote-curl: fall back to default hash outside repo
503 -
504 - "git ls-remote '+refs/tags/*:refs/tags/*' https://..." run outside a
505 - repository would dereference a NULL while trying to see if the given
506 - refspec is a single-object refspec, which has been corrected.
507 -
508 - Will merge to 'master'.
509 - source: <20260322023557.15907-1-jayatheerthkulkarni2005@gmail.com>
510 -
511 -
512 -* jk/diff-highlight-more (2026-03-22) 9 commits
513 - (merged to 'next' on 2026-03-24 at e7b555cbc5)
514 - + diff-highlight: fetch all config with one process
515 - + diff-highlight: allow module callers to pass in color config
516 - + diff-highlight: test color config
517 - + diff-highlight: use test_decode_color in tests
518 - + t: add matching negative attributes to test_decode_color
519 - + diff-highlight: check diff-highlight exit status in tests
520 - + diff-highlight: drop perl version dependency back to 5.8
521 - + diff-highlight: mention build instructions
522 - + Merge branch 'jk/diff-highlight-identical-pairs' into jk/diff-highlight-more
523 -
524 - Various updates to contrib/diff-highlight, including documentation
525 - updates, test improvements, and color configuration handling.
526 -
527 - Will merge to 'master'.
528 - source: <20260323060139.GA10215@coredump.intra.peff.net>
529 -
530 -
501 * ps/fsck-wo-the-repository (2026-03-23) 12 commits
532 - - builtin/fsck: stop using `the_repository` in error reporting
533 - - builtin/fsck: stop using `the_repository` when marking objects
534 - - builtin/fsck: stop using `the_repository` when checking packed objects
535 - - builtin/fsck: stop using `the_repository` with loose objects
536 - - builtin/fsck: stop using `the_repository` when checking reflogs
537 - - builtin/fsck: stop using `the_repository` when checking refs
538 - - builtin/fsck: stop using `the_repository` when snapshotting refs
539 - - builtin/fsck: fix trivial dependence on `the_repository`
540 - - fsck: drop USE_THE_REPOSITORY
541 - - fsck: store repository in fsck options
542 - - fsck: initialize fsck options via a function
543 - - fetch-pack: move fsck options into function scope
502 + (merged to 'next' on 2026-04-01 at 6ab7607f2d)
503 + + builtin/fsck: stop using `the_repository` in error reporting
504 + + builtin/fsck: stop using `the_repository` when marking objects
505 + + builtin/fsck: stop using `the_repository` when checking packed objects
506 + + builtin/fsck: stop using `the_repository` with loose objects
507 + + builtin/fsck: stop using `the_repository` when checking reflogs
508 + + builtin/fsck: stop using `the_repository` when checking refs
509 + + builtin/fsck: stop using `the_repository` when snapshotting refs
510 + + builtin/fsck: fix trivial dependence on `the_repository`
511 + + fsck: drop USE_THE_REPOSITORY
512 + + fsck: store repository in fsck options
513 + + fsck: initialize fsck options via a function
514 + + fetch-pack: move fsck options into function scope
515
516 Internals of "git fsck" have been refactored to not depend on the
517 global `the_repository` variable.
518
548 - Needs review.
519 + Will merge to 'master'.
520 source: <20260323-b4-pks-fsck-without-the-repository-v2-0-e8dc79bca651@pks.im>
521
522
523 * tb/stdin-packs-excluded-but-open (2026-03-27) 5 commits
553 - - repack: mark non-MIDX packs above the split as excluded-open
554 - - pack-objects: support excluded-open packs with --stdin-packs
555 - - t7704: demonstrate failure with once-cruft objects above the geometric split
556 - - pack-objects: refactor `read_packs_list_from_stdin()` to use `strmap`
557 - - pack-objects: plug leak in `read_stdin_packs()`
524 + (merged to 'next' on 2026-03-31 at e8927aa861)
525 + + repack: mark non-MIDX packs above the split as excluded-open
526 + + pack-objects: support excluded-open packs with --stdin-packs
527 + + t7704: demonstrate failure with once-cruft objects above the geometric split
528 + + pack-objects: refactor `read_packs_list_from_stdin()` to use `strmap`
529 + + pack-objects: plug leak in `read_stdin_packs()`
530
531 pack-objects's --stdin-packs=follow mode learns to handle
532 excluded-but-open packs.
533
562 - Will merge to 'next'.
534 + Will merge to 'master'.
535 source: <cover.1774641999.git.me@ttaylorr.com>
536
537
538 * yc/path-walk-fix-error-reporting (2026-03-20) 1 commit
567 - - path-walk: fix NULL pointer dereference in error message
539 + (merged to 'next' on 2026-04-01 at ddcff8b9c6)
540 + + path-walk: fix NULL pointer dereference in error message
541
542 The value of a wrong pointer variable was referenced in an error
543 message that reported that it shouldn't be NULL.
544
572 - Reproduction being discussed.
573 - cf. <994f92e9-3576-455a-a142-0fefc559131c@gmail.com>
545 + Will merge to 'master'.
546 source: <20260320114823.3151961-1-ysinghcin@gmail.com>
547
548
@@ -586,20 +558,22 @@ Release tarballs are available at:
558
559
560 * jc/whitespace-incomplete-line (2026-03-17) 1 commit
589 - - apply: fix new-style empty context line triggering incomplete-line check
561 + (merged to 'next' on 2026-04-01 at 10a4d95236)
562 + + apply: fix new-style empty context line triggering incomplete-line check
563
564 Fix whitespace correction for new-style empty context lines.
565
593 - Needs review.
566 + Will merge to 'master'.
567 source: <xmqqldfql4hp.fsf@gitster.g>
568
569
570 * sp/add-patch-with-fewer-the-repository (2026-03-17) 1 commit
598 - - add-patch: use repository instance from add_i_state instead of the_repository
571 + (merged to 'next' on 2026-04-01 at b9edaddcff)
572 + + add-patch: use repository instance from add_i_state instead of the_repository
573
574 Reduce dependency on `the_repository` in add-patch.c file.
575
602 - Needs review.
576 + Will merge to 'master'.
577 source: <20260317155230.619378-1-shreyanshpaliwalcmsmn@gmail.com>
578
579
@@ -619,23 +593,24 @@ Release tarballs are available at:
593
594
595 * ps/commit-graph-overflow-fix (2026-03-23) 1 commit
622 - - commit-graph: fix writing generations with dates exceeding 34 bits
596 + (merged to 'next' on 2026-04-01 at c502054354)
597 + + commit-graph: fix writing generations with dates exceeding 34 bits
598
599 Fix a regression in writing the commit-graph where commits with dates
600 exceeding 34 bits (beyond year 2514) could cause an underflow and
601 crash Git during the generation data overflow chunk writing.
602
628 - Waiting for review response.
629 - cf. <xmqq1ph92pzs.fsf@gitster.g>
603 + Will merge to 'master'.
604 source: <20260324-pks-commit-graph-overflow-v2-1-843568cf8780@pks.im>
605
606
607 * tc/replay-down-to-root (2026-03-24) 1 commit
634 - - replay: support replaying down from root commit
608 + (merged to 'next' on 2026-03-31 at 47456fcc12)
609 + + replay: support replaying down from root commit
610
611 git replay now supports replaying down to the root commit.
612
638 - Will merge to 'next'.
613 + Will merge to 'master'.
614 source: <20260324-toon-replay-down-to-root-v2-1-34e723489f6e@iotcl.com>
615
616
@@ -654,50 +629,43 @@ Release tarballs are available at:
629
630
631 * ps/odb-generic-object-name-handling (2026-03-20) 16 commits
657 - - odb: introduce generic `odb_find_abbrev_len()`
658 - - object-file: move logic to compute packed abbreviation length
659 - - object-name: move logic to compute loose abbreviation length
660 - - object-name: simplify computing common prefixes
661 - - object-name: abbreviate loose object names without `disambiguate_state`
662 - - object-name: merge `update_candidates()` and `match_prefix()`
663 - - object-name: backend-generic `get_short_oid()`
664 - - object-name: backend-generic `repo_collect_ambiguous()`
665 - - object-name: extract function to parse object ID prefixes
666 - - object-name: move logic to iterate through packed prefixed objects
667 - - object-name: move logic to iterate through loose prefixed objects
668 - - odb: introduce `struct odb_for_each_object_options`
669 - - oidtree: extend iteration to allow for arbitrary return codes
670 - - oidtree: modernize the code a bit
671 - - Merge branch 'ps/object-counting' into ps/odb-generic-object-name-handling
672 - - object-file: fix sparse 'plain integer as NULL pointer' error
632 + (merged to 'next' on 2026-03-31 at c14d7bdd1e)
633 + + odb: introduce generic `odb_find_abbrev_len()`
634 + + object-file: move logic to compute packed abbreviation length
635 + + object-name: move logic to compute loose abbreviation length
636 + + object-name: simplify computing common prefixes
637 + + object-name: abbreviate loose object names without `disambiguate_state`
638 + + object-name: merge `update_candidates()` and `match_prefix()`
639 + + object-name: backend-generic `get_short_oid()`
640 + + object-name: backend-generic `repo_collect_ambiguous()`
641 + + object-name: extract function to parse object ID prefixes
642 + + object-name: move logic to iterate through packed prefixed objects
643 + + object-name: move logic to iterate through loose prefixed objects
644 + + odb: introduce `struct odb_for_each_object_options`
645 + + oidtree: extend iteration to allow for arbitrary return codes
646 + + oidtree: modernize the code a bit
647 + + Merge branch 'ps/object-counting' into ps/odb-generic-object-name-handling
648 + + object-file: fix sparse 'plain integer as NULL pointer' error
649 + (this branch is used by ps/odb-cleanup.)
650
651 Object name handling (disambiguation and abbreviation) has been
652 refactored to be backend-generic, moving logic into the respective
653 object database backends.
654
678 - Will merge to 'next'.
655 + Will merge to 'master'.
656 cf. <874ilxm4wp.fsf@toon--20250203-5JQV3.mail-host-address-is-not-set>
657 source: <20260320-b4-pks-odb-source-abbrev-v2-0-fe65dcd8c735@pks.im>
658
659
683 -* bk/t5315-test-path-is-helpers (2026-03-19) 1 commit
684 - (merged to 'next' on 2026-03-24 at f7374e8e70)
685 - + t5315: use test_path_is_file for loose-object check
686 -
687 - Test clean-up.
688 -
689 - Will merge to 'master'.
690 - source: <20260319180803.164335-1-elkhatabibilal@gmail.com>
691 -
692 -
660 * aa/reap-transport-child-processes (2026-03-12) 1 commit
694 - - transport-helper, connect: use clean_on_exit to reap children on abnormal exit
661 + (merged to 'next' on 2026-03-31 at fb77f8ba9e)
662 + + transport-helper, connect: use clean_on_exit to reap children on abnormal exit
663
664 A few code paths that spawned child processes for network
665 connection weren't wait(2)ing for their children and letting "init"
666 reap them instead; they have been tightened.
667
700 - Will merge to 'next'.
668 + Will merge to 'master'.
669 cf. <20260325061357.GA3772970@coredump.intra.peff.net>
670 source: <20260312214945.4050010-1-cshung@gmail.com>
671
@@ -757,7 +725,7 @@ Release tarballs are available at:
725 --commit-list-format` (formerly `--cover-letter-format`) option,
726 including a new "modern" preset and better CLI ergonomics.
727
760 - Will merge to 'master'.
728 + Waiting for the follow-on topic.
729 source: <cover.1774284699.git.mroik@delayed.space>
730
731
@@ -791,7 +759,8 @@ Release tarballs are available at:
759 log/diff machinery is being reworked a bit to make the feature
760 compatible with more diff options, like -S/G.
761
794 - Needs review.
762 + Will merge to 'next'.
763 + cf. <xmqqbjg3y8i9.fsf@gitster.g>
764 source: <pull.2065.v2.git.1773714095.gitgitgadget@gmail.com>
765
766
@@ -904,7 +873,8 @@ Release tarballs are available at:
873 source: <cover.1772839973.git.mroik@delayed.space>
874
875
907 -* pt/fsmonitor-linux (2026-03-04) 12 commits
876 +* pt/fsmonitor-linux (2026-03-30) 13 commits
877 + - fsmonitor: fix split-index bitmap bounds in tweak_fsmonitor()
878 - fsmonitor: convert shown khash to strset in do_handle_client
879 - fsmonitor: add tests for Linux
880 - fsmonitor: add timeout to daemon stop command
@@ -921,7 +891,7 @@ Release tarballs are available at:
891 The fsmonitor daemon has been implemented for Linux.
892
893 Needs review.
924 - source: <pull.2147.v8.git.git.1772648125.gitgitgadget@gmail.com>
894 + source: <pull.2147.v12.git.git.1774937958.gitgitgadget@gmail.com>
895
896
897 * sa/replay-revert (2026-03-25) 2 commits
@@ -937,19 +907,6 @@ Release tarballs are available at:
907 source: <20260325202354.10628-1-siddharthasthana31@gmail.com>
908
909
940 -* vp/http-rate-limit-retries (2026-03-17) 3 commits
941 - (merged to 'next' on 2026-03-24 at 9cb4ec5fad)
942 - + http: add support for HTTP 429 rate limit retries
943 - + strbuf_attach: fix call sites to pass correct alloc
944 - + strbuf: pass correct alloc to strbuf_attach() in strbuf_reencode()
945 -
946 - The HTTP transport learned to react to "429 Too Many Requests".
947 -
948 - Will merge to 'master'.
949 - cf. <ab4RIZr7b49VKjR9@nand.local>
950 - source: <pull.2008.v6.git.1773752435.gitgitgadget@gmail.com>
951 -
952 -
910 * ar/parallel-hooks (2026-03-26) 13 commits
911 - hook: allow hook.jobs=-1 to use all available CPU cores
912 - hook: add hook.<event>.enabled switch
@@ -980,7 +937,10 @@ Release tarballs are available at:
937
938 Preparation of the xdiff/ codebase to work with Rust
939
983 - Needs review.
940 + Expecting a (hopefully small and final) reroll?
941 + cf. <40589b6f-6694-4d9c-8367-3f6352e45e7b@gmail.com>
942 + cf. <32c34d0d-9358-43e3-9d58-5999b3ffd6c2@gmail.com>
943 + cf. <87a54698-396d-4de8-bd9d-cd72f8d1e8df@gmail.com>
944 source: <pull.2156.v4.git.git.1774890003.gitgitgadget@gmail.com>
945
946 --------------------------------------------------