What's cooking (2026/01 #03)

Junio C Hamano committed Jan 8, 2026 at 17:04 UTC 3b6df43721ed67012110e401de90d2d04b802dc1
1 file changed +204 -168
whats-cooking.txt
+204 -168
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Jan 2026, #02)
3 -X-master-at: 68cb7f9e92a5d8e9824f5b52ac3d0a9d8f653dbe
4 -X-next-at: c9366fe5a04afd4bfc01bb74b2471bc26509b37a
2 +Subject: What's cooking in git.git (Jan 2026, #03)
3 +X-master-at: d529f3a197364881746f558e5652f0236131eb86
4 +X-next-at: a520c3929364f336279b44986f6d617b46a734d4
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Jan 2026, #02)
7 +What's cooking in git.git (Jan 2026, #03)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -45,9 +45,154 @@ Release tarballs are available at:
45
46 https://www.kernel.org/pub/software/scm/git/
47
48 +--------------------------------------------------
49 +[Graduated to 'master']
50 +
51 +* ar/run-command-hook (2025-12-26) 11 commits
52 + (merged to 'next' on 2025-12-28 at 048cdffe21)
53 + + receive-pack: convert receive hooks to hook API
54 + + receive-pack: convert update hooks to new API
55 + + hooks: allow callers to capture output
56 + + run-command: allow capturing of collated output
57 + + hook: allow overriding the ungroup option
58 + + reference-transaction: use hook API instead of run-command
59 + + transport: convert pre-push to hook API
60 + + hook: convert 'post-rewrite' hook in sequencer.c to hook API
61 + + hook: provide stdin via callback
62 + + run-command: add stdin callback for parallelization
63 + + run-command: add first helper for pp child states
64 +
65 + Use hook API to replace ad-hoc invocation of hook scripts with the
66 + run_command() API.
67 + source: <20251226122334.16687-1-adrian.ratiu@collabora.com>
68 +
69 +
70 +* bc/checkout-error-message-fix (2025-12-24) 1 commit
71 + (merged to 'next' on 2025-12-28 at d807c22e01)
72 + + checkout: quote invalid treeish in error message
73 +
74 + Message fix.
75 + source: <20251224203253.881129-1-sandals@crustytoothpaste.net>
76 +
77 +
78 +* dd/t5403-modernise (2025-12-29) 1 commit
79 + (merged to 'next' on 2026-01-01 at d1d712e288)
80 + + t5403: use test_path_is_file instead of test -f
81 +
82 + Test micro-clean-up.
83 + source: <20251229185737.2328-1-deveshigurgaon@gmail.com>
84 +
85 +
86 +* ds/diff-lazy-fetch-with-name-only-fix (2025-12-29) 1 commit
87 + (merged to 'next' on 2026-01-01 at ccbd34d6c9)
88 + + diff: avoid segfault with freed entries
89 +
90 + Running "git diff" with "--name-only" and other options that allows
91 + us not to look at the blob contents, while objects that are lazily
92 + fetched from a promisor remote, caused use-after-free, which has
93 + been corrected.
94 + source: <pull.2027.git.1767044697712.gitgitgadget@gmail.com>
95 +
96 +
97 +* en/ort-recursive-d-f-conflict-fix (2025-12-29) 1 commit
98 + (merged to 'next' on 2026-01-01 at 883dcfc63e)
99 + + merge-ort: fix corner case recursive submodule/directory conflict handling
100 +
101 + The ort merge machinery hit an assertion failure in a history with
102 + criss-cross merges renamed a directory and a non-directory, which
103 + has been corrected.
104 + source: <pull.2023.git.1767033783800.gitgitgadget@gmail.com>
105 +
106 +
107 +* rs/macos-iconv-workaround (2025-12-24) 2 commits
108 + (merged to 'next' on 2025-12-28 at 94ed776719)
109 + + macOS: use iconv from Homebrew if needed and present
110 + + macOS: make Homebrew use configurable
111 +
112 + Workaround the "iconv" shipped as part of macOS, which is broken
113 + handling stateful ISO/IEC 2022 encoded strings.
114 + source: <ce030c90-f635-42b5-82e1-814cd4c29505@web.de>
115 +
116 +
117 +* rs/parse-config-expiry-simplify (2025-12-27) 1 commit
118 + (merged to 'next' on 2025-12-30 at 138de1df67)
119 + + config: use git_parse_int() in git_config_get_expiry_in_days()
120 +
121 + Code clean-up.
122 + source: <1bd3c7f3-fcf6-4d8e-aa38-c15e3d51ce4c@web.de>
123 +
124 +
125 +* rs/show-branch-prio-queue (2025-12-25) 1 commit
126 + (merged to 'next' on 2025-12-28 at 99d21acd7b)
127 + + show-branch: use prio_queue
128 +
129 + Code clean-up.
130 + source: <70ed751e-fc3c-4cb4-a4fd-26094a9f622e@web.de>
131 +
132 +
133 +* rs/tag-wo-the-repository (2025-12-28) 4 commits
134 + (merged to 'next' on 2026-01-01 at 3b7c52229a)
135 + + tag: stop using the_repository
136 + + tag: support arbitrary repositories in parse_tag()
137 + + tag: support arbitrary repositories in gpg_verify_tag()
138 + + tag: use algo of repo parameter in parse_tag_buffer()
139 +
140 + Code clean-up.
141 + source: <20251228181051.68724-1-l.s.r@web.de>
142 +
143 --------------------------------------------------
144 [New Topics]
145
146 +* ml/doc-blame-markup (2026-01-05) 1 commit
147 + - doc: git-blame: convert blame to new doc format
148 +
149 + Doc mark-up update.
150 +
151 + Expecting a reroll.
152 + cf. <9123496.T7Z3S40VBb@debian-mbp>
153 + source: <20260105230220.519303-1-git@michael.lyo.nz>
154 +
155 +
156 +* ac/t1420-use-more-direct-check (2026-01-06) 1 commit
157 + - t1420: modernize the lost-found test
158 +
159 + Test update.
160 +
161 + Will merge to 'next'?
162 + source: <20260106132658.798706-1-andchi@fastmail.com>
163 +
164 +
165 +* ag/http-netrc-tests (2026-01-06) 1 commit
166 + - t5550: add netrc tests for http 401/403
167 +
168 + Additional tests were introduced to see the interaction with netrc
169 + auth with auth failure on the http transport.
170 +
171 + Comments?
172 + source: <20260106114029.763351-1-git@ashlesh.me>
173 +
174 +
175 +* jk/cat-file-avoid-bitmap-when-unneeded (2026-01-06) 1 commit
176 + - cat-file: only use bitmaps when filtering
177 +
178 + Fix for a performance regression in "git cat-file".
179 +
180 + Will merge to 'next'?
181 + source: <20260106102558.GA68914@coredump.intra.peff.net>
182 +
183 +
184 +* jk/t-perf-fixes (2026-01-06) 2 commits
185 + - t/perf/run: preserve GIT_PERF_* from environment
186 + - t/perf/perf-lib: fix assignment of TEST_OUTPUT_DIRECTORY
187 +
188 + Perf-test fixes.
189 +
190 + Will merge to 'next'?
191 + source: <20260106101043.GA3723319@coredump.intra.peff.net>
192 +
193 +--------------------------------------------------
194 +[Cooking]
195 +
196 * en/xdiff-cleanup-3 (2026-01-03) 11 commits
197 - SQUASH??? cocci
198 - xdiff: move xdl_cleanup_records() from xprepare.c to xdiffi.c
@@ -90,14 +235,14 @@ Release tarballs are available at:
235 source: <aVfzMsN2ouY3UBFG@ubuntu>
236
237
93 -* aa/add-p-previous-decisions (2026-01-04) 1 commit
238 +* aa/add-p-previous-decisions (2026-01-06) 1 commit
239 - add -p: show user's hunk decision when selecting hunks
240
241 "git add -p" and friends notes what the current status of the hunk
242 being shown is.
243
244 Comments?
100 - source: <aVpI36nPuZAEchuM@Adekunles-MacBook-Air.local>
245 + source: <aVz5kf6eLsMZ6WQQ@Adekunles-MacBook-Air.local>
246
247
248 * ps/t1300-2021-use-test-path-is-helpers (2026-01-04) 1 commit
@@ -109,8 +254,6 @@ Release tarballs are available at:
254 Will merge to 'master'.
255 source: <20260104194812.15134-1-pushkarkumarsingh1970@gmail.com>
256
112 ---------------------------------------------------
113 -[Cooking]
257
258 * pt/fsmonitor-linux (2025-12-31) 1 commit
259 - fsmonitor: implement filesystem change listener for Linux
@@ -131,91 +274,40 @@ Release tarballs are available at:
274
275
276 * pt/t7800-difftool-test-racefix (2026-01-03) 1 commit
134 - - t7800: fix racy "difftool --dir-diff syncs worktree" test
277 + (merged to 'next' on 2026-01-06 at 572d775bca)
278 + + t7800: fix racy "difftool --dir-diff syncs worktree" test
279
280 Test fixup.
281
138 - Will merge to 'next'.
139 - source: <pull.2149.v3.git.git.1767472809897.gitgitgadget@gmail.com>
140 -
141 -
142 -* dd/t5403-modernise (2025-12-29) 1 commit
143 - (merged to 'next' on 2026-01-01 at d1d712e288)
144 - + t5403: use test_path_is_file instead of test -f
145 -
146 - Test micro-clean-up.
147 -
148 - Will merge to 'master'.
149 - source: <20251229185737.2328-1-deveshigurgaon@gmail.com>
150 -
151 -
152 -* ds/diff-lazy-fetch-with-name-only-fix (2025-12-29) 1 commit
153 - (merged to 'next' on 2026-01-01 at ccbd34d6c9)
154 - + diff: avoid segfault with freed entries
155 -
156 - Running "git diff" with "--name-only" and other options that allows
157 - us not to look at the blob contents, while objects that are lazily
158 - fetched from a promisor remote, caused use-after-free, which has
159 - been corrected.
160 -
282 Will merge to 'master'.
162 - source: <pull.2027.git.1767044697712.gitgitgadget@gmail.com>
283 + source: <pull.2149.v3.git.git.1767472809897.gitgitgadget@gmail.com>
284
285
165 -* en/fsck-snapshot-ref-state (2025-12-29) 1 commit
286 +* en/fsck-snapshot-ref-state (2026-01-06) 1 commit
287 - fsck: snapshot default refs before object walk
288
289 "git fsck" used inconsistent set of refs to show a confused
290 warning, which has been corrected.
291
171 - Waiting for review responses.
172 - cf. <20260102054922.GA2580212@coredump.intra.peff.net>
173 - source: <pull.2026.git.1767035549378.gitgitgadget@gmail.com>
292 + Will merge to 'next'?
293 + source: <pull.2026.v2.git.1767749366719.gitgitgadget@gmail.com>
294
295
176 -* en/ort-recursive-d-f-conflict-fix (2025-12-29) 1 commit
177 - (merged to 'next' on 2026-01-01 at 883dcfc63e)
178 - + merge-ort: fix corner case recursive submodule/directory conflict handling
179 -
180 - The ort merge machinery was hit an assertion failure in a history
181 - with criss-cross merges renamed a directory and a non-directory,
182 - which has been corrected.
183 -
184 - Will merge to 'master'.
185 - source: <pull.2023.git.1767033783800.gitgitgadget@gmail.com>
186 -
187 -
188 -* rs/tag-wo-the-repository (2025-12-28) 4 commits
189 - (merged to 'next' on 2026-01-01 at 3b7c52229a)
190 - + tag: stop using the_repository
191 - + tag: support arbitrary repositories in parse_tag()
192 - + tag: support arbitrary repositories in gpg_verify_tag()
193 - + tag: use algo of repo parameter in parse_tag_buffer()
194 -
195 - Code clean-up.
196 -
197 - Will merge to 'master'.
198 - source: <20251228181051.68724-1-l.s.r@web.de>
199 -
200 -
201 -* kh/replay-invalid-onto-advance (2025-12-22) 2 commits
202 - - t3650: add more regression tests for failure conditions
203 - - replay: die descriptively when invalid commit-ish
296 +* kh/replay-invalid-onto-advance (2026-01-05) 6 commits
297 + (merged to 'next' on 2026-01-08 at 1024748f91)
298 + + t3650: add more regression tests for failure conditions
299 + + replay: die if we cannot parse object
300 + + replay: improve code comment and die message
301 + + replay: die descriptively when invalid commit-ish is given
302 + + replay: find *onto only after testing for ref name
303 + + replay: remove dead code and rearrange
304 + (this branch is used by ps/history and pw/replay-drop-empty.)
305
306 Test coverage of "git replay" has been improved.
307
207 - Expecting a rework on the bottom patch.
208 - source: <CV_replay_die_descr.13f@msgid.xyz>
209 -
210 -
211 -* bc/checkout-error-message-fix (2025-12-24) 1 commit
212 - (merged to 'next' on 2025-12-28 at d807c22e01)
213 - + checkout: quote invalid treeish in error message
214 -
215 - Message fix.
216 -
308 Will merge to 'master'.
218 - source: <20251224203253.881129-1-sandals@crustytoothpaste.net>
309 + cf. <CABPp-BGFNyKkpcWWksqvNqyXspMqfywbYyyhuSUaL41YHNHoNg@mail.gmail.com>
310 + source: <V3_CV_replay_die_descr.1a4@msgid.xyz>
311
312
313 * cc/lop-filter-auto (2025-12-23) 9 commits
@@ -259,26 +351,6 @@ Release tarballs are available at:
351 source: <20251224170327.68049-1-l.s.r@web.de>
352
353
262 -* rs/parse-config-expiry-simplify (2025-12-27) 1 commit
263 - (merged to 'next' on 2025-12-30 at 138de1df67)
264 - + config: use git_parse_int() in git_config_get_expiry_in_days()
265 -
266 - Code clean-up.
267 -
268 - Will merge to 'master'.
269 - source: <1bd3c7f3-fcf6-4d8e-aa38-c15e3d51ce4c@web.de>
270 -
271 -
272 -* rs/show-branch-prio-queue (2025-12-25) 1 commit
273 - (merged to 'next' on 2025-12-28 at 99d21acd7b)
274 - + show-branch: use prio_queue
275 -
276 - Code clean-up.
277 -
278 - Will merge to 'master'.
279 - source: <70ed751e-fc3c-4cb4-a4fd-26094a9f622e@web.de>
280 -
281 -
354 * tt/receive-pack-oo-namespace-symref-fix (2025-12-27) 1 commit
355 - receive-pack: fix crash on out-of-namespace symref
356
@@ -354,12 +426,14 @@ Release tarballs are available at:
426 source: <pull.2018.git.1765980535.gitgitgadget@gmail.com>
427
428
357 -* pc/lockfile-pid (2025-12-17) 1 commit
429 +* pc/lockfile-pid (2026-01-07) 1 commit
430 - lockfile: add PID file for debugging stale locks
431
432 Allow recording process ID of the process that holds the lock next
433 to a lockfile for diagnosis.
362 - source: <pull.2011.v2.git.1765997966593.gitgitgadget@gmail.com>
434 +
435 + Comments?
436 + source: <pull.2011.v4.git.1767804355831.gitgitgadget@gmail.com>
437
438
439 * js/neuter-sideband (2025-12-17) 4 commits
@@ -376,7 +450,7 @@ Release tarballs are available at:
450 source: <pull.1853.v2.git.1765981422.gitgitgadget@gmail.com>
451
452
379 -* ps/read-object-info-improvements (2025-12-18) 8 commits
453 +* ps/read-object-info-improvements (2026-01-07) 8 commits
454 - packfile: drop repository parameter from `packed_object_info()`
455 - packfile: skip unpacking object header for disk size requests
456 - packfile: disentangle return value of `packed_object_info()`
@@ -389,7 +463,7 @@ Release tarballs are available at:
463 The object-info API has been cleaned up.
464
465 Comments?
392 - source: <20251218-b4-pks-odb-read-object-info-improvements-v2-0-62e3e49072bc@pks.im>
466 + source: <20260107-b4-pks-odb-read-object-info-improvements-v4-0-b5d55c47082a@pks.im>
467
468
469 * tb/macos-iconv-workarounds (2025-12-15) 6 commits
@@ -449,22 +523,11 @@ Release tarballs are available at:
523 The packfile_store data structure is moved from object store to odb
524 source.
525
452 - Comments?
526 + Will merge to 'next'.
527 + cf. <87zf6po3r4.fsf@iotcl.com>
528 source: <20251218-b4-pks-pack-store-via-source-v2-0-62849007ce21@pks.im>
529
530
456 -* rs/macos-iconv-workaround (2025-12-24) 2 commits
457 - (merged to 'next' on 2025-12-28 at 94ed776719)
458 - + macOS: use iconv from Homebrew if needed and present
459 - + macOS: make Homebrew use configurable
460 -
461 - Workaround the "iconv" shipped as part of macOS, which is broken
462 - handling stateful ISO/IEC 2022 encoded strings.
463 -
464 - Will merge to 'master'.
465 - source: <ce030c90-f635-42b5-82e1-814cd4c29505@web.de>
466 -
467 -
531 * lo/repo-info-keys (2025-12-09) 3 commits
532 - repo: add new flag --keys to git-repo-info
533 - repo: add a default output format to enum output_format
@@ -485,26 +548,28 @@ Release tarballs are available at:
548 source: <pull.2123.git.git.1765261419802.gitgitgadget@gmail.com>
549
550
488 -* ps/odb-misc-fixes (2025-12-10) 3 commits
489 - - odb: properly close sources before freeing them
490 - - builtin/gc: fix condition for whether to write commit graphs
491 - - Merge branch 'ps/object-source-management' into ps/odb-misc-fixes
551 +* ps/odb-misc-fixes (2026-01-06) 3 commits
552 + (merged to 'next' on 2026-01-08 at 850d35a76d)
553 + + odb: properly close sources before freeing them
554 + + builtin/gc: fix condition for whether to write commit graphs
555 + + Merge branch 'ps/object-source-management' into ps/odb-misc-fixes
556 (this branch is used by ps/packfile-store-in-odb-source.)
557
558 Miscellaneous fixes on object database layer.
559
496 - Comments?
497 - source: <20251211-odb-related-fixes-v2-0-bdf875ce51fc@pks.im>
560 + Will merge to 'master'.
561 + source: <20260106-odb-related-fixes-v3-0-7ac157207b20@pks.im>
562
563
564 * ps/clar-integers (2025-12-06) 3 commits
501 - - gitattributes: disable blank-at-eof errors for clar test expectations
502 - - t/unit-tests: demonstrate use of integer comparison assertions
503 - - t/unit-tests: update clar to 39f11fe
565 + (merged to 'next' on 2026-01-08 at 9f9674ac20)
566 + + gitattributes: disable blank-at-eof errors for clar test expectations
567 + + t/unit-tests: demonstrate use of integer comparison assertions
568 + + t/unit-tests: update clar to 39f11fe
569
570 Import newer version of "clar", unit testing framework.
571
507 - Comments?
572 + Will merge to 'master'.
573 source: <20251206-b4-pks-clar-update-v2-0-9a14b10c1a36@pks.im>
574
575
@@ -575,10 +640,9 @@ Release tarballs are available at:
640 source: <20251126-toon-last-modified-zzzz-v1-0-608350df0caa@iotcl.com>
641
642
578 -* pw/replay-drop-empty (2025-12-18) 2 commits
643 +* pw/replay-drop-empty (2025-12-18) 1 commit
644 - replay: drop commits that become empty
580 - - Merge branch 'ps/history' into pw/replay-drop-empty
581 - (this branch uses ps/history.)
645 + (this branch uses kh/replay-invalid-onto-advance and ps/history.)
646
647 "git replay" is taught to drop commits that become empty (not the
648 ones that are empty in the original).
@@ -673,28 +737,7 @@ Release tarballs are available at:
737 source: <20251117221621.2863243-1-sandals@crustytoothpaste.net>
738
739
676 -* ar/run-command-hook (2025-12-26) 11 commits
677 - (merged to 'next' on 2025-12-28 at 048cdffe21)
678 - + receive-pack: convert receive hooks to hook API
679 - + receive-pack: convert update hooks to new API
680 - + hooks: allow callers to capture output
681 - + run-command: allow capturing of collated output
682 - + hook: allow overriding the ungroup option
683 - + reference-transaction: use hook API instead of run-command
684 - + transport: convert pre-push to hook API
685 - + hook: convert 'post-rewrite' hook in sequencer.c to hook API
686 - + hook: provide stdin via callback
687 - + run-command: add stdin callback for parallelization
688 - + run-command: add first helper for pp child states
689 -
690 - Use hook API to replace ad-hoc invocation of hook scripts with the
691 - run_command() API.
692 -
693 - Will merge to 'master'.
694 - source: <20251226122334.16687-1-adrian.ratiu@collabora.com>
695 -
696 -
697 -* je/doc-reset (2026-01-01) 4 commits
740 +* je/doc-reset (2026-01-05) 4 commits
741 - doc: git-reset: clarify `git reset <pathspec>`
742 - doc: git-reset: clarify `git reset [mode]`
743 - doc: git-reset: clarify intro
@@ -702,32 +745,25 @@ Release tarballs are available at:
745
746 Documentation updates.
747
705 - Expecting a (hopefully small and final) reroll.
706 - cf. <5953760.DvuYhMxLoT@piment-oiseau>
707 - cf. <1943073.tdWV9SEqCh@piment-oiseau>
708 - source: <cover.1767307382.git.ben.knoble+github@gmail.com>
748 + Will merge to 'next'?
749 + source: <cover.1767649692.git.ben.knoble+github@gmail.com>
750
751
711 -* ps/history (2025-12-03) 13 commits
712 - - builtin/history: implement "split" subcommand
713 - - cache-tree: allow writing in-memory index as tree
714 - - add-patch: allow disabling editing of hunks
715 - - add-patch: add support for in-memory index patching
716 - - add-patch: remove dependency on "add-interactive" subsystem
717 - - add-patch: split out `struct interactive_options`
718 - - add-patch: split out header from "add-interactive.h"
752 +* ps/history (2026-01-07) 8 commits
753 - builtin/history: implement "reword" subcommand
754 - builtin: add new "history" command
721 - - replay: stop using `the_repository`
722 - - replay: extract logic to pick commits
755 - wt-status: provide function to expose status for trees
724 - - Merge branch 'pw/replay-exclude-gpgsig-fix' into ps/history
725 - (this branch is used by pw/replay-drop-empty.)
756 + - replay: yield the object ID of the final rewritten commit
757 + - replay: small set of cleanups
758 + - builtin/replay: move core logic into "libgit.a"
759 + - builtin/replay: extract core logic to replay revisions
760 + - Merge branch 'kh/replay-invalid-onto-advance' into ps/history
761 + (this branch is used by pw/replay-drop-empty; uses kh/replay-invalid-onto-advance.)
762
763 "git history" history rewriting UI.
764
729 - What's the status of this topic?
730 - source: <20251203-b4-pks-history-builtin-v7-0-9e9f849bfd0e@pks.im>
765 + Comments?
766 + source: <20260107-b4-pks-history-builtin-v8-0-18e9779e3a26@pks.im>
767
768
769 * ms/doc-worktree-side-by-side (2025-10-10) 2 commits
@@ -742,7 +778,7 @@ Release tarballs are available at:
778 source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de>
779
780
745 -* ar/submodule-gitdir-tweak (2025-12-20) 11 commits
781 +* ar/submodule-gitdir-tweak (2026-01-07) 11 commits
782 - submodule: detect conflicts with existing gitdir configs
783 - submodule: hash the submodule name for the gitdir path
784 - submodule: fix case-folding gitdir filesystem collisions
@@ -760,7 +796,7 @@ Release tarballs are available at:
796 components.
797
798 Comments?
763 - source: <20251220101528.1227487-1-adrian.ratiu@collabora.com>
799 + source: <20260107230145.517562-1-adrian.ratiu@collabora.com>
800
801 --------------------------------------------------
802 [Discarded]