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