What's cooking (2026/06 #10)
Junio C Hamano committed
Jun 25, 2026 at 15:26 UTC
1dac7a15ae7f108bad6e49197d0bc3a3e049eb37
1 file changed
+146
-73
whats-cooking.txt
+146
-73
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (Jun 2026, #09)
2
+Subject: What's cooking in git.git (Jun 2026, #10)
3
X-master-at: ab776a62a78576513ee121424adb19597fbb7613
4
-X-next-at: 234d366ad24a8ff7c16a867f3ef2bcd89aa774ae
4
+X-next-at: 42296fc12ea8e7025714869d102fa1a8ccc844f5
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (Jun 2026, #09)
7
+What's cooking in git.git (Jun 2026, #10)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -50,34 +50,106 @@ Release tarballs are available at:
50
https://www.kernel.org/pub/software/scm/git/
51
52
--------------------------------------------------
53
-[Graduated to 'master']
53
+[New Topics]
54
55
-* hn/macos-linker-warning (2026-06-19) 1 commit
56
- (merged to 'next' on 2026-06-22 at 0e7f024ab5)
57
- + config.mak.uname: avoid macOS dup-library warning
55
+* ad/gpg-strip-cr-before-lf (2026-06-24) 1 commit
56
+ - gpg-interface: fix strip_cr_before_lf to only remove CR before LF
57
59
- Xcode 15 and later has a linker set to complain when the same library
60
- archive is listed twice on the command line. Squelch the annoyance.
61
- cf. <ajjspU7lJ01GgrBw@pks.im>
62
- source: <pull.2314.v3.git.git.1781901127385.gitgitgadget@gmail.com>
58
+ The GPG and SSH signature parsing code has been corrected to strip
59
+ carriage return characters only when they immediately precede line
60
+ feeds, instead of unconditionally stripping all carriage returns.
61
62
+ Needs review.
63
+ source: <20260624093618.17456-1-antonio.destefani08@gmail.com>
64
+
65
+
66
+* jt/receive-pack-use-odb-transactions (2026-06-23) 6 commits
67
+ - builtin/receive-pack: stage incoming objects via ODB transactions
68
+ - odb/transaction: add transaction env interface
69
+ - odb/transaction: propagate commit errors
70
+ - odb/transaction: propagate begin errors
71
+ - object-file: propagate files transaction errors
72
+ - object-file: rename files transaction prepare function
73
+
74
+ git-receive-pack has been refactored to use ODB transaction
75
+ interfaces instead of directly managing tmp_objdir for staging
76
+ incoming objects, bringing it closer to being ODB backend agnostic.
77
+
78
+ Waiting for response(s) to review comment(s).
79
+ cf. <aju_AmlKVi5UZaiQ@pks.im>
80
+ source: <20260624041920.2601961-1-jltobler@gmail.com>
81
+
82
+
83
+* ps/odb-drop-whence (2026-06-24) 7 commits
84
+ - odb: document object info fields
85
+ - odb: drop `whence` field from object info
86
+ - treewide: convert users of `whence` to the new source field
87
+ - odb: add `source` field to struct object_info_source
88
+ - odb: make backend-specific fields optional
89
+ - packfile: thread odb_source_packed through packed_object_info()
90
+ - Merge branch 'ps/odb-source-packed' into ps/odb-drop-whence
91
+ (this branch uses ps/odb-source-packed.)
92
+
93
+ The whence field in struct object_info has been removed,
94
+ refactoring backend-specific object information retrieval into an
95
+ opt-in struct object_info_source structure.
96
+
97
+ Needs review.
98
+ source: <20260624-b4-pks-odb-drop-whence-v1-0-8d1877b790ac@pks.im>
99
+
100
+
101
+* ps/reftable-hardening (2026-06-24) 11 commits
102
+ - reftable/table: fix OOB read on truncated table
103
+ - reftable/table: fix NULL pointer access when seeking to bogus offsets
104
+ - reftable/block: fix OOB read with bogus restart offset
105
+ - reftable/block: fix use of uninitialized memory when binsearch fails
106
+ - reftable/block: fix OOB read with bogus restart count
107
+ - reftable/block: fix OOB read with bogus block size
108
+ - reftable/block: fix OOB write with bogus inflated log size
109
+ - reftable/record: don't abort when decoding invalid ref value type
110
+ - reftable/basics: fix OOB read on binary search of empty range
111
+ - oss-fuzz: add fuzzer for parsing reftables
112
+ - meson: support building fuzzers with libFuzzer
113
+
114
+ The reftable code has been hardened against corrupted tables by
115
+ fixing out-of-bounds writes, out-of-bounds reads, and abort calls
116
+ during parsing.
117
+
118
+ Needs review.
119
+ source: <20260624-pks-reftable-hardening-v1-0-66e4ce87c6b9@pks.im>
120
+
121
+
122
+* hn/branch-push-slip-advice (2026-06-24) 3 commits
123
+ - SQUASH??? use test_grep
124
+ - push: suggest <remote> <branch> for a slash slip
125
+ - branch: suggest <remote>/<branch> on upstream slip
126
65
-* js/win32-localtime-r (2026-06-22) 1 commit
66
- (merged to 'next' on 2026-06-22 at 67d3fa726d)
67
- + win32: ensure that `localtime_r()` is declared even in i686 builds
127
+ "git push origin/main" and "git branch origin main" could both be
128
+ an obvious typo, in which case offer the obvious typofix.
129
+
130
+ Waiting for response(s) to review comment(s).
131
+ cf. <xmqqfr2ae2wp.fsf@gitster.g>
132
+ source: <pull.2331.v2.git.git.1782338114.gitgitgadget@gmail.com>
133
69
- Build-fix for 32-bit Windows.
70
- source: <pull.2157.git.1782117847057.gitgitgadget@gmail.com>
134
135
+* jc/history-message-prep-fix (2026-06-25) 1 commit
136
+ - history: streamline message preparation and plug file stream leak
137
73
-* ps/gitlab-ci-windows (2026-06-15) 1 commit
74
- (merged to 'next' on 2026-06-22 at 6d177c61ea)
75
- + gitlab-ci: migrate Windows builds away from Chocolatey
138
+ Code clean-up with leakfix for a write file stream.
139
77
- Wean the Windows builds in GitLab CI procedure away from
78
- (unfortunately unreliable) Chocolatey to install dependencies.
79
- cf. <ajP5owy3r_GyuLqk@denethor>
80
- source: <20260615-b4-pks-gitlab-ci-drop-chocolatey-v1-1-51a6e7d5e388@pks.im>
140
+ Needs review.
141
+ source: <xmqqh5mqfkpv.fsf@gitster.g>
142
+
143
+
144
+* ty/migrate-excludes-file (2026-06-25) 2 commits
145
+ - environment: move excludes_file into repo_config_values
146
+ - dir: encapsulate excludes_file lazy-load
147
+
148
+ Move excludes_file global variable into per-repository structure.
149
+
150
+ Waiting for response(s) to review comment(s).
151
+ cf. <xmqqwlvme4lz.fsf@gitster.g>
152
+ source: <20260625161845.7543-1-cat@malon.dev>
153
154
--------------------------------------------------
155
[Stalled]
@@ -131,21 +203,22 @@ Release tarballs are available at:
203
--------------------------------------------------
204
[Cooking]
205
134
-* kk/merge-base-exhaustion (2026-06-20) 6 commits
135
- - Documentation/technical: add paint-down-to-common doc
206
+* kk/merge-base-exhaustion (2026-06-24) 7 commits
207
+ - commit-reach: terminate merge-base walk when one paint side is exhausted
208
+ - commit-reach: remove unused nonstale_queue dedup wrappers
209
+ - commit-reach: introduce struct paint_state with per-side counters
210
+ - commit-reach: add trace2 instrumentation to paint_down_to_common()
211
- t6099, t6600: add side-exhaustion regression tests
212
- t6600: add test cases for side-exhaustion edge cases
138
- - commit-reach: terminate merge-base walk when one paint side is exhausted
139
- - commit-reach: introduce struct paint_queue with per-side counters
140
- - commit-reach: decouple ahead_behind from nonstale_queue
213
+ - Documentation/technical: add paint-down-to-common doc
214
215
The merge-base computation has been optimized by stopping the walk
216
early when one side's exclusive commits in the queue are exhausted,
217
yielding significant speedups for queries with one-sided histories.
218
219
Expecting a reroll.
147
- cf. <CAL71e4Pcw-UUbHBw_j6PFx2bXmxZ93VLMWG+3Qap=RmCJa_ZgA@mail.gmail.com>
148
- source: <pull.2149.git.1781951820.gitgitgadget@gmail.com>
220
+ cf. <CAL71e4MnA36ZchLaUsMSoLcb9LO77aac274jES8+oV=yxuigOA@mail.gmail.com>
221
+ source: <pull.2149.v2.git.1782303254.gitgitgadget@gmail.com>
222
223
224
* dk/meson-enable-use-nsec-build (2026-06-20) 1 commit
@@ -159,8 +232,9 @@ Release tarballs are available at:
232
source: <c4c5ade901ff95b0f95939ea818870e4f3d59da1.1781971201.git.ben.knoble+github@gmail.com>
233
234
162
-* ps/connected-generic-promisor-checks (2026-06-22) 4 commits
235
+* ps/connected-generic-promisor-checks (2026-06-25) 5 commits
236
- connected: search promisor objects generically
237
+ - connected: split out promisor-based connectivity check
238
- odb/source-packed: support flags when iterating an object prefix
239
- odb/source-packed: extract logic to skip certain packs
240
- Merge branch 'ps/odb-source-packed' into ps/connected-generic-promisor-checks
@@ -171,9 +245,9 @@ Release tarballs are available at:
245
rather than iterating packfiles directly. This allows connectivity
246
checks to work properly in repositories that do not use packfiles.
247
174
- Waiting for response(s) to review comment(s).
175
- cf. <xmqq4iiu1mrt.fsf@gitster.g>
176
- source: <20260622-pks-connected-generic-promisor-checks-v1-0-25eba2698202@pks.im>
248
+ Will merge to 'next'?
249
+ cf. <xmqq4iiqfk0l.fsf@gitster.g>
250
+ source: <20260625-pks-connected-generic-promisor-checks-v3-0-7308f3b9dc44@pks.im>
251
252
253
* ps/libgit-in-subdir (2026-06-22) 3 commits
@@ -228,7 +302,8 @@ Release tarballs are available at:
302
a default limit of at most one reroll per day to give reviewers across
303
different time zones enough time to participate.
304
231
- Needs review.
305
+ Will merge to 'next'?
306
+ cf. <ajvDuUiDsmyf5LnX@pks.im>
307
source: <cover.1782028813.git.wy@wyuan.org>
308
309
@@ -257,12 +332,12 @@ Release tarballs are available at:
332
"git log -L<range>:<path>" learned to limit various "diff" operations
333
like --stat, --check, -G, to the specified range:path.
334
260
- Waiting for response(s) to review comment(s).
335
+ Expecting a reroll.
336
cf. <CAC2QwmKEHb+LL4ZkQwq+Rw8eyDXzdBp_nxa_d+Ecx0K1icNqQA@mail.gmail.com>
337
source: <pull.2152.git.1781806593.gitgitgadget@gmail.com>
338
339
265
-* hn/history-squash (2026-06-20) 4 commits
340
+* hn/history-squash (2026-06-24) 4 commits
341
- history: re-edit a squash with every message
342
- history: add squash subcommand to fold a range
343
- history: give commit_tree_ext a message template
@@ -272,19 +347,18 @@ Release tarballs are available at:
347
"squash" subcommand to fold a range of commits into a single commit,
348
replaying any descendants on top.
349
275
- Waiting for response(s) to review comment(s).
276
- cf. <ajkijomPo_kXSXul@pks.im>
277
- source: <pull.2337.v4.git.git.1782021195.gitgitgadget@gmail.com>
350
+ Needs review.
351
+ source: <pull.2337.v5.git.git.1782338102.gitgitgadget@gmail.com>
352
353
354
* ps/t4216-tap-fix (2026-06-19) 1 commit
281
- - t4216: fix no-op test that breaks TAP output
355
+ (merged to 'next' on 2026-06-25 at 42296fc12e)
356
+ + t4216: fix no-op test that breaks TAP output
357
358
TAP output breakage fix.
359
285
- Waiting for response(s) to review comment(s).
286
- cf. <xmqqa4sqlchz.fsf@gitster.g>
287
- cf. <ajjBmi39IFJW5p5V@pks.im>
360
+ Will merge to 'master'.
361
+ cf. <xmqq8q82fk8r.fsf@gitster.g>
362
source: <20260619-pks-t4216-drop-unused-prereq-v1-1-2ce0d7bea088@pks.im>
363
364
@@ -455,8 +529,8 @@ Release tarballs are available at:
529
linearize the replayed history, mimicking git rebase
530
--no-rebase-merges.
531
458
- Waiting for response(s) to review comment(s).
459
- cf. <xmqq7bnq37jm.fsf@gitster.g>
532
+ Expecting a reroll.
533
+ cf. <87tsqrycke.fsf@emacs.iotcl.com>
534
source: <20260622-toon-git-replay-drop-merges-v4-0-ff257f534319@iotcl.com>
535
536
@@ -482,7 +556,7 @@ Release tarballs are available at:
556
source: <20260611-b4-pks-setup-drop-global-state-v2-0-a6f7269c841d@pks.im>
557
558
485
-* ps/refs-avoid-chdir-notify-reparent (2026-06-22) 12 commits
559
+* ps/refs-avoid-chdir-notify-reparent (2026-06-25) 12 commits
560
- refs: protect against chicken-and-egg recursion
561
- refs/reftable: lazy-load configuration to fix chicken-and-egg
562
- reftable: split up write options
@@ -501,8 +575,9 @@ Release tarballs are available at:
575
`chdir_notify_reparent()` and fixes a memory leak in how the
576
reference database is constructed with an "onbranch" condition.
577
504
- Needs review.
505
- source: <20260622-b4-pks-refs-avoid-chdir-notify-reparent-v5-0-018475013dbc@pks.im>
578
+ Will merge to 'next'?
579
+ cf. <aj1DuUzusBUqmF_C@denethor>
580
+ source: <20260625-b4-pks-refs-avoid-chdir-notify-reparent-v6-0-41fbca3cf5e3@pks.im>
581
582
583
* ps/odb-source-packed (2026-06-16) 18 commits
@@ -525,7 +600,7 @@ Release tarballs are available at:
600
+ packfile: split out packfile list logic
601
+ packfile: rename `struct packfile_store` to `odb_source_packed`
602
+ Merge branch 'ps/odb-source-loose' into ps/odb-source-packed
528
- (this branch is used by ps/connected-generic-promisor-checks, ps/libgit-in-subdir and ps/odb-generalize-prepare.)
603
+ (this branch is used by ps/connected-generic-promisor-checks, ps/libgit-in-subdir, ps/odb-drop-whence and ps/odb-generalize-prepare.)
604
605
The packed object source has been refactored into a proper struct
606
odb_source.
@@ -566,7 +641,7 @@ Release tarballs are available at:
641
source: <20260620140957.667820-1-cat@malon.dev>
642
643
569
-* ps/cat-file-remote-object-info (2026-06-19) 12 commits
644
+* ps/cat-file-remote-object-info (2026-06-25) 13 commits
645
- cat-file: make remote-object-info allow-list dynamic
646
- cat-file: validate remote atoms with allow_list
647
- cat-file: add remote-object-info to batch-command
@@ -575,9 +650,10 @@ Release tarballs are available at:
650
- fetch-pack: move fetch initialization
651
- connect: refactor packet writing
652
- fetch-pack: move function to connect.c
653
+ - fetch-pack: prepare function to be moved
654
- t1006: split test utility functions into new "lib-cat-file.sh"
655
- cat-file: declare loop counter inside for()
580
- - git-compat-util: add strtoul_ul() with error handling
656
+ - git-compat-util: add strtoul_szt() with error handling
657
- transport-helper: fix memory leak of helper on disconnect
658
659
The `remote-object-info` command has been added to `git cat-file
@@ -590,8 +666,8 @@ Release tarballs are available at:
666
inapplicable or unsupported fields.
667
668
Waiting for response(s) to review comment(s).
593
- cf. <CAOLa=ZSvxXuf_bSzKMvViNQ5MuDAqxnQdo4asF9vfMhJaDQcVw@mail.gmail.com>
594
- source: <20260619-ps-eric-work-rebase-v13-0-3d4c7315d2f8@gmail.com>
669
+ cf. <xmqqjyrme393.fsf@gitster.g>
670
+ source: <20260625-ps-eric-work-rebase-v14-0-09f7ffe21a53@gmail.com>
671
672
673
* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
@@ -652,7 +728,6 @@ Release tarballs are available at:
728
729
Expecting a reroll.
730
cf. <CAC2Qwm+P=fZOtpfMPeMiSXf3Afk6OLYpTP8Br78_PRA8WNL1Wg@mail.gmail.com>
655
- cf. <CAC2Qwm+P=fZOtpfMPeMiSXf3Afk6OLYpTP8Br78_PRA8WNL1Wg@mail.gmail.com>
731
source: <pull.2120.v4.git.1781463564.gitgitgadget@gmail.com>
732
733
@@ -695,24 +770,23 @@ Release tarballs are available at:
770
element from the leaf vacancy), which halves the number of comparisons
771
per extract-min operation in the common case.
772
698
- Expecting a reroll.
699
- cf. <CAL71e4Ob-B5MJ5DPY+_tzpj6nyrbQ5WutxED2T93SWJV6kJGPA@mail.gmail.com>
773
+ On hold, waiting for kk/prio-queue-get-put-fusion to land first.
774
cf. <CAL71e4MYNiScZjTwkApjDAjRh2LM0_SP59h5HCTywV-Pua03tw@mail.gmail.com>
775
source: <pull.2132.v2.git.1780301856444.gitgitgadget@gmail.com>
776
777
704
-* jk/repo-info-path-keys (2026-06-20) 3 commits
778
+* jk/repo-info-path-keys (2026-06-23) 3 commits
779
- repo: add path.gitdir with absolute and relative suffix formatting
780
- repo: add path.commondir with absolute and relative suffix formatting
707
- - path: extract append_formatted_path() and use in rev-parse
781
+ - path: extract format_path() and use in rev-parse
782
783
The "git repo info" command has been taught new keys to output both
784
absolute and relative paths for "gitdir" and "commondir", supported by
785
a new path-formatting helper extracted from "git rev-parse".
786
713
- Expecting a reroll.
714
- cf. <CA+rGoLcahV9pPqkSAKvz9o3g2cw2PsYXxzzwAC8XoseFzMB5rA@mail.gmail.com>
715
- source: <20260621055534.46798-1-jayatheerthkulkarni2005@gmail.com>
787
+ Will merge to 'next'?
788
+ cf. <xmqqy0g3iz38.fsf@gitster.g>
789
+ source: <20260624033748.108281-1-jayatheerthkulkarni2005@gmail.com>
790
791
792
* ps/history-drop (2026-06-15) 10 commits
@@ -731,7 +805,8 @@ Release tarballs are available at:
805
subcommand to remove a commit and replay its descendants onto its
806
parent.
807
734
- Needs review.
808
+ Waiting for response(s) to review comment(s).
809
+ cf. <CAP8UFD1evTZqj1ymW9g5g2RmMkYMaE0rPa0Hzt+irH94M6LD6A@mail.gmail.com>
810
source: <20260615-b4-pks-history-drop-v6-0-2e329e536d78@pks.im>
811
812
@@ -817,7 +892,7 @@ Release tarballs are available at:
892
source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com>
893
894
820
-* hn/branch-delete-merged (2026-06-22) 7 commits
895
+* hn/branch-delete-merged (2026-06-24) 7 commits
896
- branch: add --dry-run for --delete-merged
897
- branch: add branch.<name>.deleteMerged opt-out
898
- branch: add --delete-merged <branch>
@@ -830,9 +905,8 @@ Release tarballs are available at:
905
local branches that have already been merged to the remote-tracking
906
branches they track.
907
833
- Waiting for response(s) to review comment(s).
834
- cf. <cb6fcdfb-67b4-429d-b820-c4e623f28cfa@gmail.com>
835
- source: <pull.2285.v17.git.git.1782113388.gitgitgadget@gmail.com>
908
+ Needs review.
909
+ source: <pull.2285.v18.git.git.1782338106.gitgitgadget@gmail.com>
910
911
912
* cc/promisor-auto-config-url-more (2026-05-27) 8 commits
@@ -857,7 +931,7 @@ Release tarballs are available at:
931
source: <20260527140820.1438165-1-christian.couder@gmail.com>
932
933
860
-* hn/checkout-track-fetch (2026-06-18) 2 commits
934
+* hn/checkout-track-fetch (2026-06-24) 2 commits
935
- checkout: extend --track with a "fetch" mode to refresh start-point
936
- branch: expose helpers for finding the remote owning a tracking ref
937
@@ -866,7 +940,7 @@ Release tarballs are available at:
940
941
Waiting for response(s) to review comment(s).
942
cf. <12998c3a-ff69-4a98-9ed6-18aa0224e75e@gmail.com>
869
- source: <pull.2281.v14.git.git.1781786652.gitgitgadget@gmail.com>
943
+ source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
944
945
946
* en/ort-harden-against-corrupt-trees (2026-06-13) 5 commits
@@ -885,8 +959,8 @@ Release tarballs are available at:
959
source: <pull.2096.v2.git.1781419047.gitgitgadget@gmail.com>
960
961
888
-* pw/status-rebase-todo (2026-06-22) 2 commits
889
- (merged to 'next' on 2026-06-22 at a32de5bd17)
962
+* pw/status-rebase-todo (2026-06-23) 2 commits
963
+ (merged to 'next' on 2026-06-23 at a0fcde09dc)
964
+ status: improve rebase todo list parsing
965
+ sequencer: factor out parsing of todo commands
966
@@ -895,8 +969,7 @@ Release tarballs are available at:
969
avoid misinterpreting refs as object IDs.
970
971
Will cook in 'next'.
898
- cf. <xmqqechy1o7p.fsf@gitster.g>
899
- source: <cover.1782117361.git.phillip.wood@dunelm.org.uk>
972
+ source: <cover.1782230024.git.phillip.wood@dunelm.org.uk>
973
974
975
* ps/shift-root-in-graph (2026-06-20) 3 commits