What's cooking (2026/03 #12)

Junio C Hamano committed Mar 30, 2026 at 16:28 UTC 8933d95b25518259e043ebee9eafce4a323281b2
1 file changed +375 -335
whats-cooking.txt
+375 -335
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Mar 2026, #11)
3 -X-master-at: 41688c1a2312f62f44435e1a6d03b4b904b5b0ec
4 -X-next-at: 0a8c60e8ae259ec48ddcdbbda0df4b2f04610708
2 +Subject: What's cooking in git.git (Mar 2026, #12)
3 +X-master-at: 270e10ad6dda3379ea0da7efd11e4fbf2cd7a325
4 +X-next-at: 0c370356e2245450de215a847afb905bda230d11
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Mar 2026, #11)
7 +What's cooking in git.git (Mar 2026, #12)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -46,70 +46,302 @@ Release tarballs are available at:
46 https://www.kernel.org/pub/software/scm/git/
47
48 --------------------------------------------------
49 -[Graduated to 'master']
49 +[New Topics]
50 +
51 +* sa/cat-file-batch-mailmap-switch (2026-03-29) 1 commit
52 + - cat-file: add mailmap subcommand to --batch-command
53 +
54 + "git cat-file --batch" learns an in-line command "mailmap"
55 + that lets the user toggle use of mailmap.
56 +
57 + Comments?
58 + source: <20260329082808.12609-2-siddharthasthana31@gmail.com>
59 +
60 +
61 +* sp/doc-gitignore-oowt (2026-03-28) 1 commit
62 + - doc: gitignore: clarify pattern base for info/exclude and core.excludesFile
63 +
64 + Doc update.
65 +
66 + Will merge to 'next'.
67 + source: <20260328152233.1140327-1-shreyanshpaliwalcmsmn@gmail.com>
68 +
69 +
70 +* tb/incremental-midx-part-3.3 (2026-03-29) 16 commits
71 + - repack: allow `--write-midx=incremental` without `--geometric`
72 + - repack: introduce `--write-midx=incremental`
73 + - repack: implement incremental MIDX repacking
74 + - packfile: ensure `close_pack_revindex()` frees in-memory revindex
75 + - builtin/repack.c: convert `--write-midx` to an `OPT_CALLBACK`
76 + - repack-geometry: prepare for incremental MIDX repacking
77 + - repack-midx: extract `repack_fill_midx_stdin_packs()`
78 + - repack-midx: factor out `repack_prepare_midx_command()`
79 + - midx: expose `midx_layer_contains_pack()`
80 + - repack: track the ODB source via existing_packs
81 + - midx: support custom `--base` for incremental MIDX writes
82 + - midx: introduce `--checksum-only` for incremental MIDX writes
83 + - midx: use `strvec` for `keep_hashes`
84 + - strvec: introduce `strvec_init_alloc()`
85 + - midx: use `string_list` for retained MIDX files
86 + - midx-write: handle noop writes when converting incremental chains
87 +
88 + The repacking code has been refactored and compaction of MIDX layers
89 + have been implemented, and incremental strategy that does not require
90 + all-into-one repacking has been introduced.
91 +
92 + Needs review.
93 + source: <cover.1774820449.git.me@ttaylorr.com>
94 +
95 +
96 +* th/t6101-unhide-git-failures (2026-03-28) 1 commit
97 + - t6101: avoid suppressing git's exit code
98 +
99 + Test cleanup.
100 +
101 + Will merge to 'next'.
102 + source: <20260328135935.180646-1-vikingtc4@gmail.com>
103 +
104 +
105 +* za/t2000-modernise (2026-03-27) 1 commit
106 + - t2000: modernise overall structure
107 +
108 + Test cleanup.
109 +
110 + Will merge to 'next'.
111 + source: <20260327234019.95591-1-zakariyahali100@gmail.com>
112 +
113 +
114 +* jd/read-cache-trace-wo-the-repository (2026-03-30) 1 commit
115 + - read-cache: use istate->repo for trace2 logging
116
51 -* ps/object-counting (2026-03-12) 7 commits
52 - (merged to 'next' on 2026-03-17 at 8d3d9a1374)
53 - + odb: introduce generic object counting
54 - + odb/source: introduce generic object counting
55 - + object-file: generalize counting objects
56 - + object-file: extract logic to approximate object count
57 - + packfile: extract logic to count number of objects
58 - + odb: stop including "odb/source.h"
59 - + Merge branch 'ps/odb-sources' into ps/object-counting
60 - (this branch is used by ps/odb-generic-object-name-handling.)
61 -
62 - The logic to count objects has been cleaned up.
63 - source: <20260312-b4-pks-odb-source-count-objects-v2-0-5914f69256bf@pks.im>
64 -
65 -
66 -* tb/incremental-midx-part-3.2 (2026-02-24) 17 commits
67 - (merged to 'next' on 2026-03-18 at 7f995e23bb)
68 - + midx: enable reachability bitmaps during MIDX compaction
69 - + midx: implement MIDX compaction
70 - + t/helper/test-read-midx.c: plug memory leak when selecting layer
71 - + midx-write.c: factor fanout layering from `compute_sorted_entries()`
72 - + midx-write.c: enumerate `pack_int_id` values directly
73 - + midx-write.c: extract `fill_pack_from_midx()`
74 - + midx-write.c: introduce `midx_pack_perm()` helper
75 - + midx: do not require packs to be sorted in lexicographic order
76 - + midx-write.c: introduce `struct write_midx_opts`
77 - + midx-write.c: don't use `pack_perm` when assigning `bitmap_pos`
78 - + t/t5319-multi-pack-index.sh: fix copy-and-paste error in t5319.39
79 - + git-multi-pack-index(1): align SYNOPSIS with 'git multi-pack-index -h'
80 - + git-multi-pack-index(1): remove non-existent incompatibility
81 - + builtin/multi-pack-index.c: make '--progress' a common option
82 - + midx: introduce `midx_get_checksum_hex()`
83 - + midx: rename `get_midx_checksum()` to `midx_get_checksum_hash()`
84 - + midx: mark `get_midx_checksum()` arguments as const
85 -
86 - Further work on incremental repacking using MIDX/bitmap
87 - source: <cover.1771959555.git.me@ttaylorr.com>
117 + A handful of inappropriate uses of the_repository have been
118 + rewritten to use the right repository structure instance in the
119 + read-cache.c codepath.
120 +
121 + Will merge to 'next'.
122 + source: <pull.2253.v4.git.git.1774895886678.gitgitgadget@gmail.com>
123 +
124 +
125 +* jd/unpack-trees-wo-the-repository (2026-03-30) 1 commit
126 + - unpack-trees: use explicit repository in trace2 calls
127 +
128 + A handful of inappropriate uses of the_repository have been
129 + rewritten to use the right repository structure instance in the
130 + unpack-trees.c codepath.
131 +
132 + Will merge to 'next'.
133 + source: <pull.2258.git.git.1774901607564.gitgitgadget@gmail.com>
134 +
135 +
136 +* ps/receive-pack-updateinstead-in-worktree (2026-03-30) 3 commits
137 + - receive-pack: use worktree HEAD for updateInstead
138 + - t5516: clean up cloned and new-wt in denyCurrentBranch and worktrees test
139 + - t5516: test updateInstead with worktree and unborn bare HEAD
140 +
141 + The check in "receive-pack" to prevent a checked out branch from
142 + getting updated via updateInstead mechanism has been corrected.
143 +
144 + Needs review.
145 + source: <20260330111822.165188-1-pabloosabaterr@gmail.com>
146 +
147 +
148 +* ps/setup-wo-the-repository (2026-03-30) 18 commits
149 + - setup: stop using `the_repository` in `init_db()`
150 + - setup: stop using `the_repository` in `create_reference_database()`
151 + - setup: stop using `the_repository` in `initialize_repository_version()`
152 + - setup: stop using `the_repository` in `check_repository_format()`
153 + - setup: stop using `the_repository` in `upgrade_repository_format()`
154 + - setup: stop using `the_repository` in `setup_git_directory()`
155 + - setup: stop using `the_repository` in `setup_git_directory_gently()`
156 + - setup: stop using `the_repository` in `setup_git_env()`
157 + - setup: stop using `the_repository` in `set_git_work_tree()`
158 + - setup: stop using `the_repository` in `setup_work_tree()`
159 + - setup: stop using `the_repository` in `enter_repo()`
160 + - setup: stop using `the_repository` in `verify_non_filename()`
161 + - setup: stop using `the_repository` in `verify_filename()`
162 + - setup: stop using `the_repository` in `path_inside_repo()`
163 + - setup: stop using `the_repository` in `prefix_path()`
164 + - setup: stop using `the_repository` in `is_inside_git_dir()`
165 + - setup: stop using `the_repository` in `is_inside_worktree()`
166 + - setup: replace use of `the_repository` in static functions
167 +
168 + Many uses of the_repository has been updated to use a more
169 + appropriate struct repository instance in setup.c codepath.
170 +
171 + Needs review.
172 + source: <20260330-pks-setup-wo-the-repository-v1-0-0d2e822837aa@pks.im>
173 +
174 +
175 +* qb/doc-git-stash-push-optionality (2026-03-30) 1 commit
176 + - docs: fix "git stash [push]" documentation
177 +
178 + Doc update.
179 +
180 + Will merge to 'next'.
181 + source: <pull.2255.v2.git.git.1774877075694.gitgitgadget@gmail.com>
182 +
183 +
184 +* kh/doc-trailers (2026-03-30) 2 commits
185 + - doc: interpret-trailers: explain key format
186 + - doc: interpret-trailers: stop fixating on RFC 822
187 +
188 + Documentation updates.
189 +
190 + Expecting a reroll.
191 + cf. <5ba0bbcb-25a7-4ad0-ac1d-c86508eaffdd@app.fastmail.com>
192 + source: <CV_doc_int-tr_key_format.533@msgid.xyz>
193
194 --------------------------------------------------
90 -[New Topics]
195 +[Graduated to 'master']
196
92 -* jc/test-set-e-clean (2026-03-24) 11 commits
93 - . t9902: make test "set -e" clean
94 - . t5570: make test "set -e" clean
95 - . t940?: make test "set -e" clean
96 - . t9200: make test "set -e" clean
97 - . t7508: make test "set -e" clean
98 - . tests: make svn test "set -e" clean
99 - . t7450: make test "set -e" clean
100 - . t4032: make test "set -e" clean
101 - . t6002: make test "set -e" clean
102 - . t0008: make test "set -e" clean
103 - . test-lib: catch misspelt 'test_expect_successo'
104 -
105 - The test suite harness and many individual test scripts have been
106 - updated to work correctly when 'set -e' is in effect, which helps
107 - detect misspelled test commands.
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
109 - Comments?
110 - source: <20260325062114.2067946-1-gitster@pobox.com>
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
@@ -145,7 +377,8 @@ Release tarballs are available at:
377 The experimental `git replay` command learned the `--ref=<ref>` option
378 to allow specifying which ref to update, overriding the default behavior.
379
148 - Comments?
380 + Seems to break CI.
381 + cf. <xmqqjyuynv99.fsf@gitster.g>
382 source: <20260325-toon-replay-arbitrary-ref-v2-0-553038702c9c@iotcl.com>
383
384
@@ -171,41 +404,33 @@ Release tarballs are available at:
404 that discarded constness when they return a pointer into a const
405 string to preserve constness.
406
174 - Comments?
407 + Will merge to 'next'.
408 source: <20260326190243.GA412983@coredump.intra.peff.net>
409 source: <20260326192320.GA418281@coredump.intra.peff.net>
410
411
179 -* mf/format-patch-commit-list-format-doc (2026-03-26) 2 commits
412 +* 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
416 (this branch uses mf/format-patch-commit-list-format and mf/format-patch-cover-letter-format.)
417
418 Doc updates.
419
186 - Waiting for review responses.
187 - source: <20260326200643.20251-1-mroik@delayed.space>
188 -
189 -
190 -* th/t8003-unhide-git-failures (2026-03-26) 1 commit
191 - - t8003: avoid suppressing git's exit code
420 + Will merge to 'next'.
421 + source: <cover.1774640789.git.mroik@delayed.space>
422
193 - Test clean-up.
194 -
195 - Will merge to 'next'?
196 - source: <20260326141118.146155-1-vikingtc4@gmail.com>
423
198 -
199 -* za/t2000-test-path-is-helpers (2026-03-26) 1 commit
200 - - t2000: modernize path checks with test_path_is_* helpers
424 +* th/t8003-unhide-git-failures (2026-03-28) 2 commits
425 + (merged to 'next' on 2026-03-30 at ad41378b07)
426 + + t8003: modernise style
427 + + t8003: avoid suppressing git's exit code
428
429 Test clean-up.
430
204 - Will merge to 'next'?
205 - source: <20260326192603.23961-1-zakariyahali100@gmail.com>
431 + Will merge to 'master'.
432 + source: <20260328132955.172262-2-vikingtc4@gmail.com>
433
207 ---------------------------------------------------
208 -[Cooking]
434
435 * jt/fast-import-signed-modes (2026-03-26) 5 commits
436 - fast-import: add 'abort-if-invalid' mode to '--signed-tags=<mode>'
@@ -216,27 +441,28 @@ Release tarballs are available at:
441
442 Handling of signed commits and tags in fast-import has been made more
443 configurable.
444 +
445 + Needs review.
446 source: <20260326191414.3783974-1-jltobler@gmail.com>
447
448
222 -* ps/graph-lane-limit (2026-03-25) 2 commits
223 - - graph: add documentation and tests about --graph-lane-limit
449 +* ps/graph-lane-limit (2026-03-27) 3 commits
450 + - graph: add truncation mark to capped lanes
451 - graph: add --graph-lane-limit option
452 + - graph: limit the graph width to a hard-coded max
453
454 The graph output from commands like "git log --graph" can now be
455 limited to a specified number of lanes, preventing overly wide output
456 in repositories with many branches.
457
230 - Expecting a reroll.
231 - cf. <CAN5EUNQdq7Eg+yd9ZqVGbYuKSYOhAB5rc2np7SeQT-Zc10aqDw@mail.gmail.com>
232 - source: <20260325174401.217577-1-pabloosabaterr@gmail.com>
458 + Needs review.
459 + source: <20260328001113.1275291-1-pabloosabaterr@gmail.com>
460
461
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
239 - (this branch uses ps/build-tweaks.)
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.
@@ -283,18 +509,6 @@ Release tarballs are available at:
509 source: <20260322023557.15907-1-jayatheerthkulkarni2005@gmail.com>
510
511
286 -* jk/diff-highlight-identical-pairs (2026-03-17) 1 commit
287 - (merged to 'next' on 2026-03-20 at a8aa5bd14e)
288 - + contrib/diff-highlight: do not highlight identical pairs
289 - (this branch is used by jk/diff-highlight-more.)
290 -
291 - The handling of the incomplete lines at the end by "git
292 - diff-highlight" has been fixed.
293 -
294 - Will merge to 'master'.
295 - source: <20260317230223.GA716496@coredump.intra.peff.net>
296 -
297 -
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
@@ -306,7 +520,6 @@ Release tarballs are available at:
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
309 - (this branch uses jk/diff-highlight-identical-pairs.)
523
524 Various updates to contrib/diff-highlight, including documentation
525 updates, test improvements, and color configuration handling.
@@ -336,7 +549,7 @@ Release tarballs are available at:
549 source: <20260323-b4-pks-fsck-without-the-repository-v2-0-e8dc79bca651@pks.im>
550
551
339 -* tb/stdin-packs-excluded-but-open (2026-03-25) 5 commits
552 +* 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
@@ -346,8 +559,8 @@ Release tarballs are available at:
559 pack-objects's --stdin-packs=follow mode learns to handle
560 excluded-but-open packs.
561
349 - Will merge to 'next'?
350 - source: <cover.1774482700.git.me@ttaylorr.com>
562 + Will merge to 'next'.
563 + source: <cover.1774641999.git.me@ttaylorr.com>
564
565
566 * yc/path-walk-fix-error-reporting (2026-03-20) 1 commit
@@ -391,27 +604,18 @@ Release tarballs are available at:
604
605
606 * ds/backfill-revs (2026-03-26) 6 commits
394 - - t5620: test backfill's unknown argument handling
395 - - path-walk: support wildcard pathspecs for blob filtering
396 - - backfill: work with prefix pathspecs
397 - - backfill: accept revision arguments
398 - - t5620: prepare branched repo for revision tests
399 - - revision: include object-name.h
607 + (merged to 'next' on 2026-03-27 at d4703fdd35)
608 + + t5620: test backfill's unknown argument handling
609 + + path-walk: support wildcard pathspecs for blob filtering
610 + + backfill: work with prefix pathspecs
611 + + backfill: accept revision arguments
612 + + t5620: prepare branched repo for revision tests
613 + + revision: include object-name.h
614
615 `git backfill` learned to accept revision and pathspec arguments.
616
403 - Will merge to 'next'?
404 - source: <pull.2070.v3.git.1774538094.gitgitgadget@gmail.com>
405 -
406 -
407 -* jw/t2203-status-pipe-fix (2026-03-16) 1 commit
408 - (merged to 'next' on 2026-03-23 at 521c6eb44b)
409 - + t2203: avoid suppressing git status exit code
410 -
411 - Test clean-up.
412 -
617 Will merge to 'master'.
414 - source: <20260317011544.65952-1-jerrywang183@yahoo.com>
618 + source: <pull.2070.v3.git.1774538094.gitgitgadget@gmail.com>
619
620
621 * ps/commit-graph-overflow-fix (2026-03-23) 1 commit
@@ -431,88 +635,24 @@ Release tarballs are available at:
635
636 git replay now supports replaying down to the root commit.
637
434 - Will merge to 'next'?
638 + Will merge to 'next'.
639 source: <20260324-toon-replay-down-to-root-v2-1-34e723489f6e@iotcl.com>
640
641
438 -* mr/merge-file-object-id-worktree-fix (2026-03-10) 1 commit
439 - (merged to 'next' on 2026-03-20 at 68e1ee2045)
440 - + merge-file: fix BUG when --object-id is used in a worktree
441 -
442 - merge-file --object-id used to trigger a BUG when run in a linked
443 - worktree, which has been fixed.
444 -
445 - Will merge to 'master'.
446 - source: <c076edd0-9057-443b-ba37-33aacde2eede@app.fastmail.com>
447 -
448 -
449 -* rs/prio-queue-to-commit-stack (2026-03-17) 1 commit
450 - (merged to 'next' on 2026-03-20 at 265cb7b28c)
451 - + use commit_stack instead of prio_queue in LIFO mode
452 -
453 - Uses of prio_queue as a LIFO stack of commits have been written
454 - with commit_stack.
455 -
456 - Will merge to 'master'.
457 - source: <05fc946f-6670-46e9-a058-231ee464029d@web.de>
458 -
459 -
460 -* jw/object-name-bitset-to-enum (2026-03-18) 1 commit
461 - (merged to 'next' on 2026-03-23 at 881af371ef)
462 - + object-name: turn INTERPRET_BRANCH_* constants into enum values
463 -
464 - The unsigned integer that is used as an bitset to specify the kind
465 - of branches interpret_branch_name() function has been changed to
466 - use a dedicated enum type.
467 -
468 - Will merge to 'master'.
469 - source: <20260318190942.22595-1-jerrywang183@yahoo.com>
470 -
471 -
472 -* ai/t2107-test-path-is-helpers (2026-03-18) 1 commit
473 - (merged to 'next' on 2026-03-23 at 56d10e5f76)
474 - + t2107: modernize path existence check
475 -
476 - Test cleanup.
477 -
478 - Will merge to 'master'.
479 - source: <pull.2071.v2.git.1773864455956.gitgitgadget@gmail.com>
480 -
481 -
482 -* gi/doc-boolean-config-typofix (2026-03-18) 1 commit
483 - (merged to 'next' on 2026-03-20 at 8810624798)
484 - + doc: add missing space on git-config page
485 -
486 - Doc typofix.
487 -
488 - Will merge to 'master'.
489 - source: <20260318210020.759128-1-gabl@gabl.ink>
490 -
491 -
492 -* ua/push-remote-group (2026-03-25) 2 commits
642 +* ua/push-remote-group (2026-03-27) 3 commits
643 + - SQUASH??? - futureproof against the attack of the "main"
644 - push: support pushing to a remote group
645 - remote: move remote group resolution to remote.c
646
647 "git push" learned to take a "remote group" name to push to, which
648 causes pushes to multiple places, just like "git fetch" would do.
649
499 - Waiting for a review response.
650 + Expecting a reroll.
651 cf. <xmqq7bqzu1xh.fsf@gitster.g>
652 + cf. <xmqqse9kj4rh.fsf@gitster.g>
653 source: <20260325190906.1153080-1-usmanakinyemi202@gmail.com>
654
655
504 -* jc/rerere-modern-strbuf-handling (2026-03-19) 2 commits
505 - (merged to 'next' on 2026-03-21 at 919b766afc)
506 - + cocci: strbuf.buf is never NULL
507 - + rerere: update to modern representation of empty strbufs
508 -
509 - Code clean-up overdue by 19 years.
510 -
511 - Will merge to 'master'.
512 - source: <xmqq341wnvbk.fsf@gitster.g>
513 - source: <xmqq4imbigvt.fsf@gitster.g>
514 -
515 -
656 * 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
@@ -535,21 +675,11 @@ Release tarballs are available at:
675 refactored to be backend-generic, moving logic into the respective
676 object database backends.
677
538 - Comments?
678 + Will merge to 'next'.
679 + cf. <874ilxm4wp.fsf@toon--20250203-5JQV3.mail-host-address-is-not-set>
680 source: <20260320-b4-pks-odb-source-abbrev-v2-0-fe65dcd8c735@pks.im>
681
682
542 -* rs/ahead-behind-cleanup-optimization (2026-03-19) 1 commit
543 - (merged to 'next' on 2026-03-21 at 5d8b4fa265)
544 - + commit-reach: simplify cleanup of remaining bitmaps in ahead_behind ()
545 -
546 - The cleanup of remaining bitmaps in "ahead_behind()" has been
547 - simplified.
548 -
549 - Will merge to 'master'.
550 - source: <21adf042-2bd1-4022-8822-9ed4985122a4@web.de>
551 -
552 -
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
@@ -560,17 +690,6 @@ Release tarballs are available at:
690 source: <20260319180803.164335-1-elkhatabibilal@gmail.com>
691
692
563 -* rs/split-index-the-repo-fix (2026-03-19) 1 commit
564 - (merged to 'next' on 2026-03-21 at d66850b2ce)
565 - + split-index: stop using the_repository and the_hash_algo
566 -
567 - split-index.c has been updated to not use the global the_repository
568 - and the_hash_algo variables.
569 -
570 - Will merge to 'master'.
571 - source: <944c2331-4dec-4c98-9059-f41dc204ed86@web.de>
572 -
573 -
693 * aa/reap-transport-child-processes (2026-03-12) 1 commit
694 - transport-helper, connect: use clean_on_exit to reap children on abnormal exit
695
@@ -578,22 +697,11 @@ Release tarballs are available at:
697 connection weren't wait(2)ing for their children and letting "init"
698 reap them instead; they have been tightened.
699
581 - Will merge to 'next' after jk/t0061-bat-test-update settles down.
700 + Will merge to 'next'.
701 cf. <20260325061357.GA3772970@coredump.intra.peff.net>
702 source: <20260312214945.4050010-1-cshung@gmail.com>
703
704
586 -* ej/ref-transaction-hook-preparing (2026-03-16) 1 commit
587 - (merged to 'next' on 2026-03-20 at f9b8fbb0dc)
588 - + refs: add 'preparing' phase to the reference-transaction hook
589 -
590 - The reference-transaction hook was taught to be triggered before
591 - taking locks on references in the "preparing" phase.
592 -
593 - Will merge to 'master'.
594 - source: <20260317023624.43070-2-eric.peijian@gmail.com>
595 -
596 -
705 * hn/git-checkout-m-with-stash (2026-03-17) 4 commits
706 - checkout: -m (--merge) uses autostash when switching branches
707 - sequencer: teach autostash apply to take optional conflict marker labels
@@ -621,28 +729,15 @@ Release tarballs are available at:
729
730
731 * pw/worktree-reduce-the-repository (2026-03-26) 3 commits
624 - - worktree: reject NULL worktree in get_worktree_git_dir()
625 - - worktree add: stop reading ".git/HEAD"
626 - - worktree: remove "the_repository" from is_current_worktree()
732 + (merged to 'next' on 2026-03-30 at f967ececef)
733 + + worktree: reject NULL worktree in get_worktree_git_dir()
734 + + worktree add: stop reading ".git/HEAD"
735 + + worktree: remove "the_repository" from is_current_worktree()
736
737 Reduce the reference to the_repository in the worktree subsystem.
738
630 - Will merge to 'next'?
631 - source: <cover.1774534617.git.phillip.wood@dunelm.org.uk>
632 -
633 -
634 -* jw/apply-corrupt-location (2026-03-17) 3 commits
635 - (merged to 'next' on 2026-03-23 at 18e9b8f91f)
636 - + apply: report input location in binary and garbage patch errors
637 - + apply: report input location in header parsing errors
638 - + apply: report the location of corrupt patches
639 -
640 - "git apply" now reports the name of the input file along with the
641 - line number when it encounters a corrupt patch, and correctly
642 - resets the line counter when processing multiple patch files.
643 -
739 Will merge to 'master'.
645 - source: <20260317162321.71812-1-jerrywang183@yahoo.com>
740 + source: <cover.1774534617.git.phillip.wood@dunelm.org.uk>
741
742
743 * mf/format-patch-commit-list-format (2026-03-23) 9 commits
@@ -686,47 +781,6 @@ Release tarballs are available at:
781 source: <SY0P300MB080186A23FB9582AD793F0D1CE40A@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>
782
783
689 -* mf/apply-p-no-atoi (2026-03-15) 1 commit
690 - (merged to 'next' on 2026-03-20 at 70a0a4313b)
691 - + apply.c: fix -p argument parsing
692 -
693 - "git apply -p<n>" parses <n> more carefully now.
694 -
695 - Will merge to 'master'.
696 - source: <20260316005120.7079-1-mroik@delayed.space>
697 -
698 -
699 -* ps/build-tweaks (2026-03-18) 8 commits
700 - (merged to 'next' on 2026-03-20 at fb53cf619a)
701 - + meson: precompile "git-compat-util.h"
702 - + meson: compile compatibility sources separately
703 - + git-compat-util.h: move warning infra to prepare for PCHs
704 - + builds: move build scripts into "tools/"
705 - + contrib: move "update-unicode.sh" script into "tools/"
706 - + contrib: move "coverage-diff.sh" script into "tools/"
707 - + contrib: move "coccinelle/" directory into "tools/"
708 - + Introduce new "tools/" directory
709 - (this branch is used by rs/use-strvec-pushv.)
710 -
711 - Tweak the build infrastructure by moving tools around.
712 -
713 - Will merge to 'master'.
714 - source: <20260319-b4-pks-build-infra-improvements-v3-0-82f5fb3edc3f@pks.im>
715 -
716 -
717 -* kh/doc-interpret-trailers-1 (2026-03-16) 4 commits
718 - (merged to 'next' on 2026-03-20 at 6acc8b5a8a)
719 - + interpret-trailers: use placeholder instead of *
720 - + doc: config: convert trailers section to synopsis style
721 - + doc: interpret-trailers: normalize and fill out options
722 - + doc: interpret-trailers: convert to synopsis style
723 -
724 - Doc updates.
725 -
726 - Will merge to 'master'.
727 - source: <V2_CV_doc_interpret-tr_synopsis.50a@msgid.xyz>
728 -
729 -
784 * mm/line-log-use-standard-diff-output (2026-03-16) 4 commits
785 - doc: note that -L supports patch formatting and pickaxe options
786 - t4211: add tests for -L with standard diff options
@@ -742,24 +796,25 @@ Release tarballs are available at:
796
797
798 * ar/config-hook-cleanups (2026-03-25) 13 commits
745 - - hook: reject unknown hook names in git-hook(1)
746 - - hook: show disabled hooks in "git hook list"
747 - - hook: show config scope in git hook list
748 - - hook: introduce hook_config_cache_entry for per-hook data
749 - - t1800: add test to verify hook execution ordering
750 - - hook: make consistent use of friendly-name in docs
751 - - hook: replace hook_list_clear() -> string_list_clear_func()
752 - - hook: detect & emit two more bugs
753 - - hook: rename cb_data_free/alloc -> hook_data_free/alloc
754 - - hook: fix minor style issues
755 - - builtin/receive-pack: properly init receive_hook strbuf
756 - - hook: move unsorted_string_list_remove() to string-list.[ch]
757 - - Merge branch 'ar/config-hooks' into ar/config-hook-cleanups
799 + (merged to 'next' on 2026-03-30 at c128948b16)
800 + + hook: reject unknown hook names in git-hook(1)
801 + + hook: show disabled hooks in "git hook list"
802 + + hook: show config scope in git hook list
803 + + hook: introduce hook_config_cache_entry for per-hook data
804 + + t1800: add test to verify hook execution ordering
805 + + hook: make consistent use of friendly-name in docs
806 + + hook: replace hook_list_clear() -> string_list_clear_func()
807 + + hook: detect & emit two more bugs
808 + + hook: rename cb_data_free/alloc -> hook_data_free/alloc
809 + + hook: fix minor style issues
810 + + builtin/receive-pack: properly init receive_hook strbuf
811 + + hook: move unsorted_string_list_remove() to string-list.[ch]
812 + + Merge branch 'ar/config-hooks' into ar/config-hook-cleanups
813 (this branch is used by ar/parallel-hooks.)
814
815 Code clean-up around the recent "hooks defined in config" topic.
816
762 - Will merge to 'next'?
817 + Will merge to 'master'.
818 source: <20260325195503.1139418-1-adrian.ratiu@collabora.com>
819
820
@@ -865,20 +920,20 @@ Release tarballs are available at:
920
921 The fsmonitor daemon has been implemented for Linux.
922
868 - Waiting for the rerolls to slow down?
869 - cf. <aakyzGksiC2fhhiD@pks.im>
923 + Needs review.
924 source: <pull.2147.v8.git.git.1772648125.gitgitgadget@gmail.com>
925
926
927 * sa/replay-revert (2026-03-25) 2 commits
874 - - replay: add --revert mode to reverse commit changes
875 - - sequencer: extract revert message formatting into shared function
928 + (merged to 'next' on 2026-03-30 at ef4896a676)
929 + + replay: add --revert mode to reverse commit changes
930 + + sequencer: extract revert message formatting into shared function
931 (this branch is used by tc/replay-ref.)
932
933 "git replay" (experimental) learns, in addition to "pick" and
934 "replay", a new operating mode "revert".
935
881 - Will merge to 'next'?
936 + Will merge to 'master'.
937 source: <20260325202354.10628-1-siddharthasthana31@gmail.com>
938
939
@@ -915,50 +970,22 @@ Release tarballs are available at:
970 source: <20260326101819.1307742-1-adrian.ratiu@collabora.com>
971
972
918 -* en/xdiff-cleanup-3 (2026-03-25) 5 commits
919 - - xdiff/xdl_cleanup_records: use unambiguous types
973 +* en/xdiff-cleanup-3 (2026-03-30) 6 commits
974 - xdiff/xdl_cleanup_records: simplify INVESTIGATE handling for clarity
975 - xdiff/xdl_cleanup_records: make setting action easier to follow
976 - xdiff/xdl_cleanup_records: make limits more clear
977 + - xdiff/xdl_cleanup_records: use unambiguous types
978 + - xdiff: use unambiguous types in xdl_bogo_sqrt()
979 - xdiff/xdl_cleanup_records: delete local recs pointer
980
981 Preparation of the xdiff/ codebase to work with Rust
982
927 - Needs review?
928 - source: <pull.2156.v2.git.git.1774473065.gitgitgadget@gmail.com>
929 -
930 -
931 -* js/macos-homebrew-forgets-reg-enhanced (2026-03-20) 1 commit
932 - . osx-clang: work around Homebrew's clang lacking REG_ENHANCED
933 -
934 - The build on macOS with Clang is fixed to work around a Homebrew change
935 - that exposed an issue with missing REG_ENHANCED.
936 -
937 - No longer needed?
938 - cf. <6c108696-2d41-4fa1-9662-fbf6db97f767@web.de>
939 - cf. <458ad3c1-96df-4575-ee42-e6eb754f25f6@gmx.de>
940 - cf. <xmqq8qbi5vvx.fsf@gitster.g>
941 - source: <d340af9e-334c-4e81-e58a-fc3dea73ebdd@gmx.de>
983 + Needs review.
984 + source: <pull.2156.v4.git.git.1774890003.gitgitgadget@gmail.com>
985
986 --------------------------------------------------
987 [Discarded]
988
946 -* js/neuter-sideband (2026-02-03) 6 commits
947 - . sideband: delay sanitizing by default to Git v3.0
948 - . sideband: offer to configure sanitizing on a per-URL basis
949 - . sideband: add options to allow more control sequences to be passed through
950 - . sideband: do allow ANSI color sequences by default
951 - . sideband: introduce an "escape hatch" to allow control characters
952 - . sideband: mask control characters
953 -
954 - Invalidate control characters in sideband messages, to avoid
955 - terminal state getting messed up.
956 -
957 - Superseded by 'jc/neuter-sideband-fixup', which reuses most of the patches.
958 - cf. <xmqqv7gcnwd4.fsf@gitster.g>
959 - source: <pull.1853.v4.git.1770113882.gitgitgadget@gmail.com>
960 -
961 -
989 * bc/rev-parse-parseopt-help-exit-code (2026-03-16) 1 commit
990 . rev-parse: have --parseopt callers exit 0 on --help
991
@@ -969,3 +996,16 @@ Release tarballs are available at:
996 Need to step back and rethink how exit code should look like.
997 cf. <20260317150759.GA9975@coredump.intra.peff.net>
998 source: <20260316220742.1286157-1-sandals@crustytoothpaste.net>
999 +
1000 +
1001 +* js/macos-homebrew-forgets-reg-enhanced (2026-03-20) 1 commit
1002 + . osx-clang: work around Homebrew's clang lacking REG_ENHANCED
1003 +
1004 + The build on macOS with Clang is fixed to work around a Homebrew change
1005 + that exposed an issue with missing REG_ENHANCED.
1006 +
1007 + No longer needed?
1008 + cf. <6c108696-2d41-4fa1-9662-fbf6db97f767@web.de>
1009 + cf. <458ad3c1-96df-4575-ee42-e6eb754f25f6@gmx.de>
1010 + cf. <xmqq8qbi5vvx.fsf@gitster.g>
1011 + source: <d340af9e-334c-4e81-e58a-fc3dea73ebdd@gmx.de>