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]