What's cooking (2026/06 #08)

Junio C Hamano committed Jun 22, 2026 at 19:57 UTC 167f89bcf67379b605cc5715ac4c29381215f61d
1 file changed +240 -322
whats-cooking.txt
+240 -322
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Jun 2026, #07)
3 -X-master-at: 8d96f09e9245ddf80c1981476fcbac8c4bb4125f
4 -X-next-at: 43192e7977f5f05138abcdb3212a3f87ab513bef
2 +Subject: What's cooking in git.git (Jun 2026, #08)
3 +X-master-at: 26d8d94e94df5535eecd036f16627493506a0614
4 +X-next-at: 0e7f024ab5a9fbe85f03c2e2a9e851d80bd6640a
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Jun 2026, #07)
7 +What's cooking in git.git (Jun 2026, #08)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -17,16 +17,15 @@ A topic without enough support may be discarded after a long period
17 of no activity (of course they can be resubmitted when new interests
18 arise).
19
20 -Git 2.55-rc1 has been tagged and pushed out. There may be a few
21 -more topics in 'next' that we may want to include in the release
22 -that I didn't manage or I forgot (please let me know), but basically
23 -this development cycle is over, the tree is feature-frozen, and
24 -remaining topics in 'next' will stay in "Will cook in 'next'"
25 -instead of "Will merge to 'master'" state. We'd want to force
26 -ourselves to concentrate on addressing topics that are important
27 -fixes but still in the "Needs review" state, and of course, find any
28 -correct any regressions relative to Git 2.54, until we are ready to
29 -tag Git 2.55 final.
20 +Git 2.55-rc2 will be tagged tomorrow. There are a few topics I want
21 +to merge to 'master' before it happens, but other than these topics,
22 +I expect nothing will move to 'master' before the final. The tree
23 +is feature-frozen, and remaining topics in 'next' will stay in "Will
24 +cook in 'next'" instead of "Will merge to 'master'" state. We'd
25 +want to force ourselves to concentrate on addressing topics that are
26 +important fixes but still in the "Needs review" state, and of
27 +course, find any correct any regressions relative to Git 2.54, until
28 +we are ready to tag Git 2.55 final.
29
30 Copies of the source code to Git live in many repositories, and the
31 following is a list of the ones I push into or their mirrors. Some
@@ -59,102 +58,168 @@ Release tarballs are available at:
58 --------------------------------------------------
59 [Graduated to 'master']
60
62 -* dl/posix-unused-warning-clang (2026-06-13) 3 commits
63 - (merged to 'next' on 2026-06-15 at 1d7e627c24)
64 - + compat/posix.h: simplify GIT_GNUC_PREREQ() comparison
65 - + compat/posix.h: clean up GIT_GNUC_PREREQ() and UNUSED
66 - + compat/posix.h: enable UNUSED warning messages for Clang
61 +* js/objects-larger-than-4gb-on-windows-more (2026-06-15) 7 commits
62 + (merged to 'next' on 2026-06-18 at 2b3ac350e6)
63 + + odb: use size_t for object_info.sizep and the size APIs
64 + + packfile,delta: drop the `cast_size_t_to_ulong()` wrappers
65 + + pack-objects: use size_t for in-core object sizes
66 + + packfile: widen unpack_entry()'s size out-parameter to size_t
67 + + pack-objects(check_pack_inflate()): use size_t instead of unsigned long
68 + + patch-delta: use size_t for sizes
69 + + compat/msvc: use _chsize_s for ftruncate
70 +
71 + Will cook in 'next'.
72 + cf. <ajPhBn7n1wR-sii4@pks.im>
73 + source: <pull.2137.v2.git.1781524349.gitgitgadget@gmail.com>
74
68 - The UNUSED macro in 'compat/posix.h' has been updated to use a
69 - newly introduced GIT_CLANG_PREREQ macro for compiler version
70 - checks, and the existing GIT_GNUC_PREREQ macro has been modernized
71 - to use explicit major/minor comparisons rather than bit-shifting.
72 - cf. <ai-8Y1r9zbWfdY8p@pks.im>
73 - source: <20260613122711.38662-1-dominik.loidolt@univie.ac.at>
75
76 +* kw/gitattributes-typofix (2026-06-15) 1 commit
77 + (merged to 'next' on 2026-06-17 at 14ff167ef8)
78 + + gitattributes: fix eol attribute for Perl scripts
79
76 -* en/commit-graph-timestamp-fix (2026-06-13) 1 commit
77 - (merged to 'next' on 2026-06-16 at 13248b8196)
78 - + commit-graph: use timestamp_t for max parent generation accumulator
80 + Will cook in 'next'.
81 + cf. <ai-5vfY8D84UhsB4@pks.im>
82 + source: <pull.2151.v2.git.1781510039164.gitgitgadget@gmail.com>
83
80 - compute_reachable_generation_numbers() in commit-graph used a 32-bit
81 - integer to accumulate parent generations, which is OK for generation
82 - number v1 (topological levels), but with generation number v2
83 - (adjusted committer timestamps), it truncated timestamps beyond
84 - 2106. Fixed by widening the accumulator to timestamp_t.
85 - cf. <09e50180-e165-48d8-a9d0-485283342f5c@gmail.com>
86 - source: <pull.2148.git.1781420271100.gitgitgadget@gmail.com>
84 +--------------------------------------------------
85 +[New Topics]
86 +
87 +* kk/merge-base-exhaustion (2026-06-20) 6 commits
88 + - Documentation/technical: add paint-down-to-common doc
89 + - t6099, t6600: add side-exhaustion regression tests
90 + - t6600: add test cases for side-exhaustion edge cases
91 + - commit-reach: terminate merge-base walk when one paint side is exhausted
92 + - commit-reach: introduce struct paint_queue with per-side counters
93 + - commit-reach: decouple ahead_behind from nonstale_queue
94
95 + The merge-base computation has been optimized by stopping the walk
96 + early when one side's exclusive commits in the queue are exhausted,
97 + yielding significant speedups for queries with one-sided histories.
98
89 -* jc/t1400-fifo-cleanup (2026-06-10) 1 commit
90 - (merged to 'next' on 2026-06-15 at 7d5acd110a)
91 - + t1400: have fifo test clean after itself
99 + Expecting a reroll.
100 + cf. <CAL71e4Pcw-UUbHBw_j6PFx2bXmxZ93VLMWG+3Qap=RmCJa_ZgA@mail.gmail.com>
101 + source: <pull.2149.git.1781951820.gitgitgadget@gmail.com>
102
93 - Test cleanup.
94 - cf. <aiqs5Wq2Di-6yW0D@pks.im>
95 - source: <xmqqo6hit6rn.fsf@gitster.g>
103
104 +* dk/meson-enable-use-nsec-build (2026-06-20) 1 commit
105 + - meson: wire up USE_NSEC build knob
106
98 -* js/objects-larger-than-4gb-on-windows (2026-06-18) 1 commit
99 - (merged to 'next' on 2026-06-18 at 99d7cf9126)
100 - + zlib: properly clamp to uLong
107 + The USE_NSEC build knob, which enables support for sub-second file
108 + timestamp resolution, has been wired up to the Meson build system.
109
102 - A hotfix to an earlier attempt to update code paths that assumed
103 - "unsigned long" was long enough for "size_t".
104 - source: <pull.2153.git.1781790619424.gitgitgadget@gmail.com>
110 + Waiting for response(s) to review comment(s).
111 + cf. <ajjuoS5Qc3K0nCRl@pks.im>
112 + source: <c4c5ade901ff95b0f95939ea818870e4f3d59da1.1781971201.git.ben.knoble+github@gmail.com>
113
114
107 -* ps/transport-helper-tsan-fix (2026-06-09) 1 commit
108 - (merged to 'next' on 2026-06-15 at 0857e6696f)
109 - + transport-helper: fix TSAN race in transfer_debug()
115 +* js/win32-localtime-r (2026-06-22) 1 commit
116 + (merged to 'next' on 2026-06-22 at 67d3fa726d)
117 + + win32: ensure that `localtime_r()` is declared even in i686 builds
118
111 - The TSAN race in transfer_debug() within transport-helper.c has been
112 - resolved by initializing the debug flag early in
113 - bidirectional_transfer_loop() before spawning worker threads, allowing
114 - the removal of a TSAN suppression.
115 - cf. <20260609002833.GE358144@coredump.intra.peff.net>
116 - cf. <20260611083320.GI2191159@coredump.intra.peff.net>
117 - source: <20260609134741.4727-2-pushkarkumarsingh1970@gmail.com>
119 + Build-fix for 32-bit Windows.
120
121 + Will merge to 'master'.
122 + source: <pull.2157.git.1782117847057.gitgitgadget@gmail.com>
123
120 -* ta/doc-config-adoc-fixes (2026-06-11) 3 commits
121 - (merged to 'next' on 2026-06-15 at 93340b5cf0)
122 - + doc: git-config: escape erroneous highlight markup
123 - + doc: config/sideband: fix description list delimiter
124 - + doc: config: terminate runaway lists
124
126 - Various AsciiDoc markup fixes in 'git config' documentation and
127 - related files to ensure lists and formatting are rendered correctly.
128 - cf. <20260612045329.GA593075@coredump.intra.peff.net>
129 - source: <20260611161946.12166-1-taahol@utu.fi>
125 +* ps/connected-generic-promisor-checks (2026-06-22) 4 commits
126 + - connected: search promisor objects generically
127 + - odb/source-packed: support flags when iterating an object prefix
128 + - odb/source-packed: extract logic to skip certain packs
129 + - Merge branch 'ps/odb-source-packed' into ps/connected-generic-promisor-checks
130 + (this branch uses ps/odb-source-packed.)
131
132 + The connectivity check has been refactored to search for promisor
133 + objects in a generic way using the object database interface,
134 + rather than iterating packfiles directly. This allows connectivity
135 + checks to work properly in repositories that do not use packfiles.
136
132 -* td/describe-tag-iteration (2026-06-10) 1 commit
133 - (merged to 'next' on 2026-06-15 at 1ae171f3b7)
134 - + describe: limit default ref iteration to tags
137 + Waiting for response(s) to review comment(s).
138 + cf. <xmqq4iiu1mrt.fsf@gitster.g>
139 + source: <20260622-pks-connected-generic-promisor-checks-v1-0-25eba2698202@pks.im>
140
136 - 'git describe' has been taught to pass the 'refs/tags/' prefix down to
137 - the ref iterator when '--all' is not requested, avoiding unnecessary
138 - iteration over non-tag refs.
139 - cf. <20260611064912.GC2191159@coredump.intra.peff.net>
140 - source: <20260610-describe-tag-ref-scope-v3-1-5aa63ab279f7@gmail.com>
141
142 +* ps/libgit-in-subdir (2026-06-22) 3 commits
143 + - Move libgit.a sources into separate "lib/" directory
144 + - t/helper: prepare "test-example-tap.c" for introduction of "lib/"
145 + - Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir
146 + (this branch uses ps/odb-source-packed.)
147
143 -* td/ls-files-pathspec-prefilter (2026-06-11) 1 commit
144 - (merged to 'next' on 2026-06-15 at 38918c4cfd)
145 - + ls-files: filter pathspec before lstat
148 + The source files for libgit.a have been moved into a new "lib/"
149 + directory to clean up the top-level directory and clearly separate
150 + library code.
151
147 - `git ls-files --modified` and `git ls-files --deleted` have been
148 - optimized to filter with pathspec before calling lstat() when there is
149 - only a single pathspec item, avoiding unnecessary filesystem access
150 - for entries that will not be shown.
151 - cf. <xmqqfr2tnfk0.fsf@gitster.g>
152 - source: <20260611-ls-files-pathspec-lstat-v3-1-f967e1a00c13@gmail.com>
152 + Needs review.
153 + source: <20260622-pks-libgit-in-subdir-v2-0-cb946c51ee7b@pks.im>
154 +
155 +
156 +* ps/odb-generalize-prepare (2026-06-22) 3 commits
157 + - odb: introduce `odb_prepare()`
158 + - odb/source: generalize `reprepare()` callback
159 + - Merge branch 'ps/odb-source-packed' into ps/odb-generalize-prepare
160 + (this branch uses ps/odb-source-packed.)
161 +
162 + The `reprepare()` callback for object database sources has been
163 + generalized into a `prepare()` callback with an optional flush cache
164 + flag, and a new `odb_prepare()` wrapper has been introduced to
165 + allow pre-opening object database sources.
166 +
167 + Needs review.
168 + source: <20260622-b4-pks-odb-generalize-prepare-v1-0-d2a5c5d13144@pks.im>
169
170 --------------------------------------------------
155 -[New Topics]
171 +[Stalled]
172 +
173 +* jt/config-lock-timeout (2026-05-17) 1 commit
174 + - config: retry acquiring config.lock, configurable via core.configLockTimeout
175 +
176 + Configuration file locking now retries for a short period, avoiding
177 + failures when multiple processes attempt to update the configuration
178 + simultaneously.
179 +
180 + Waiting for response(s) to review comment(s) for too long, stalled.
181 + cf. <agrIrGwSMFlKTx9x@pks.im>
182 + source: <20260517132111.1014901-1-joerg@thalheim.io>
183 +
184 +
185 +* js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits
186 + - SQUASH???
187 + - doc: document autocorrect API
188 + - parseopt: add tests for subcommand autocorrection
189 + - parseopt: enable subcommand autocorrection for git-remote and git-notes
190 + - parseopt: autocorrect mistyped subcommands
191 + - autocorrect: provide config resolution API
192 + - autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT
193 + - autocorrect: use mode and delay instead of magic numbers
194 + - help: move tty check for autocorrection to autocorrect.c
195 + - help: make autocorrect handling reusable
196 + - parseopt: extract subcommand handling from parse_options_step()
197 +
198 + The parse-options library learned to auto-correct misspelled
199 + subcommand names.
200 +
201 + Waiting for response(s) to review comment(s) for too long, stalled.
202 + cf. <xmqq33yzd9yf.fsf@gitster.g>
203 + cf. <SY0P300MB0801E50FCB7EB2F45CD15208CE042@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>
204 + source: <SY0P300MB0801677A2A1E0FD38D06A841CE2A2@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>
205 +
206 +
207 +* cl/conditional-config-on-worktree-path (2026-05-24) 2 commits
208 + - config: add "worktree" and "worktree/i" includeIf conditions
209 + - config: refactor include_by_gitdir() into include_by_path()
210
157 -* jc/submittingpatches-design-critiques (2026-06-19) 1 commit
211 + The [includeIf "condition"] conditional inclusion facility for
212 + configuration files has learned to use the location of worktree
213 + in its condition.
214 +
215 + Waiting for response(s) to review comment(s) for too long, stalled.
216 + cf. <xmqq8q97et9b.fsf@gitster.g>
217 + source: <20260525-includeif-worktree-v5-0-1efe525d025a@black-desk.cn>
218 +
219 +--------------------------------------------------
220 +[Cooking]
221 +
222 +* jc/submittingpatches-design-critiques (2026-06-20) 1 commit
223 - SubmittingPatches: address design critiques
224
225 The documentation in SubmittingPatches has been updated to clarify how
@@ -162,11 +227,12 @@ Release tarballs are available at:
227 and how the resolution of such critiques should be recorded in the
228 final commit messages.
229
165 - Needs review.
166 - source: <xmqqik7eld2g.fsf_-_@gitster.g>
230 + Will merge to 'next'.
231 + cf. <ajjwYGWZ6hQWr600@pks.im>
232 + source: <xmqqeci0g4mz.fsf@gitster.g>
233
234
169 -* wy/doc-clarify-review-replies (2026-06-17) 2 commits
235 +* wy/doc-clarify-review-replies (2026-06-21) 2 commits
236 - doc: advise batching patch rerolls
237 - doc: encourage review replies before rerolling
238
@@ -175,19 +241,19 @@ Release tarballs are available at:
241 a default limit of at most one reroll per day to give reviewers across
242 different time zones enough time to participate.
243
178 - Expecting a reroll.
179 - cf. <ajVCD51lLvHreyJB@wyuan.org>
180 - source: <cover.1781714757.git.wy@wyuan.org>
244 + Needs review.
245 + source: <cover.1782028813.git.wy@wyuan.org>
246
247
248 * ps/gitlab-ci-windows (2026-06-15) 1 commit
184 - - gitlab-ci: migrate Windows builds away from Chocolatey
249 + (merged to 'next' on 2026-06-22 at 6d177c61ea)
250 + + gitlab-ci: migrate Windows builds away from Chocolatey
251
252 Wean the Windows builds in GitLab CI procedure away from
253 (unfortunately unreliable) Chocolatey to install dependencies.
254
189 - Will merge to 'next'?
190 - cf. <ajL1677NQShTO6tD@denethor>
255 + Will merge to 'master'.
256 + cf. <ajP5owy3r_GyuLqk@denethor>
257 source: <20260615-b4-pks-gitlab-ci-drop-chocolatey-v1-1-51a6e7d5e388@pks.im>
258
259
@@ -199,7 +265,8 @@ Release tarballs are available at:
265 core.ignorecase configuration) has been migrated into struct
266 repo_config_values to tie it to a specific repository instance.
267
202 - Needs review.
268 + Waiting for response(s) to review comment(s).
269 + cf. <xmqqjyrr7ipf.fsf@gitster.g>
270 source: <20260619155152.642760-1-cat@malon.dev>
271
272
@@ -220,9 +287,7 @@ Release tarballs are available at:
287 source: <pull.2152.git.1781806593.gitgitgadget@gmail.com>
288
289
223 -* hn/history-squash (2026-06-18) 6 commits
224 - - SQUASH??? avoid test_grep lint triggering on uses of raw grep
225 - - SQUASH??? avoid test number clash by moving 3454-h-squash to 3455
290 +* hn/history-squash (2026-06-20) 4 commits
291 - history: re-edit a squash with every message
292 - history: add squash subcommand to fold a range
293 - history: give commit_tree_ext a message template
@@ -233,8 +298,8 @@ Release tarballs are available at:
298 replaying any descendants on top.
299
300 Waiting for response(s) to review comment(s).
236 - cf. <ajU8T2JFJTdk1hr2@pks.im>
237 - source: <pull.2337.v3.git.git.1781810226.gitgitgadget@gmail.com>
301 + cf. <ajkijomPo_kXSXul@pks.im>
302 + source: <pull.2337.v4.git.git.1782021195.gitgitgadget@gmail.com>
303
304
305 * ps/t4216-tap-fix (2026-06-19) 1 commit
@@ -244,50 +309,38 @@ Release tarballs are available at:
309
310 Waiting for response(s) to review comment(s).
311 cf. <xmqqa4sqlchz.fsf@gitster.g>
312 + cf. <ajjBmi39IFJW5p5V@pks.im>
313 source: <20260619-pks-t4216-drop-unused-prereq-v1-1-2ce0d7bea088@pks.im>
314
315
316 * hn/macos-linker-warning (2026-06-19) 1 commit
251 - - config.mak.uname: avoid macOS dup-library warning
317 + (merged to 'next' on 2026-06-22 at 0e7f024ab5)
318 + + config.mak.uname: avoid macOS dup-library warning
319
320 Xcode 15 and later has a linker set to complain when the same library
321 archive is listed twice on the command line. Squelch the annoyance.
322
256 - Will merge to 'next'?
323 + Will merge to 'master'.
324 + cf. <ajjspU7lJ01GgrBw@pks.im>
325 source: <pull.2314.v3.git.git.1781901127385.gitgitgadget@gmail.com>
326
259 ---------------------------------------------------
260 -[Stalled]
261 -
262 -* jt/config-lock-timeout (2026-05-17) 1 commit
263 - - config: retry acquiring config.lock, configurable via core.configLockTimeout
264 -
265 - Configuration file locking now retries for a short period, avoiding
266 - failures when multiple processes attempt to update the configuration
267 - simultaneously.
268 -
269 - Waiting for response(s) to review comment(s) for too long, stalled.
270 - cf. <agrIrGwSMFlKTx9x@pks.im>
271 - source: <20260517132111.1014901-1-joerg@thalheim.io>
272 -
273 ---------------------------------------------------
274 -[Cooking]
327
328 * mh/fetch-follow-remote-head-config (2026-06-19) 8 commits
277 - - fetch: fixup a misaligned comment
278 - - fetch: add configuration variable fetch.followRemoteHEAD
279 - - fetch: refactor do_fetch handling of followRemoteHEAD
280 - - fetch: return 0 on known git_fetch_config
281 - - fetch: rename function report_set_head
282 - - t5510: cleanup remote in followRemoteHEAD dangling ref test
283 - - doc: explain fetchRemoteHEADWarn advice
284 - - fetch: fixup set_head advice for warn-if-not-branch
329 + (merged to 'next' on 2026-06-22 at 423079e1c8)
330 + + fetch: fixup a misaligned comment
331 + + fetch: add configuration variable fetch.followRemoteHEAD
332 + + fetch: refactor do_fetch handling of followRemoteHEAD
333 + + fetch: return 0 on known git_fetch_config
334 + + fetch: rename function report_set_head
335 + + t5510: cleanup remote in followRemoteHEAD dangling ref test
336 + + doc: explain fetchRemoteHEADWarn advice
337 + + fetch: fixup set_head advice for warn-if-not-branch
338
339 The `fetch.followRemoteHEAD` configuration variable has been added to
340 provide a default for the per-remote `remote.<name>.followRemoteHEAD`
341 setting.
342
290 - Will merge to 'next'?
343 + Will cook in 'next'.
344 cf. <xmqqcxxp1j2t.fsf@gitster.g>
345 source: <20260619094751.2996804-1-m@lfurio.us>
346
@@ -308,46 +361,48 @@ Release tarballs are available at:
361
362
363 * po/hash-object-size-t (2026-06-16) 6 commits
311 - - hash-object: add a >4GB/LLP64 test case using filtered input
312 - - hash-object: add another >4GB/LLP64 test case
313 - - hash-object --stdin: verify that it works with >4GB/LLP64
314 - - hash algorithms: use size_t for section lengths
315 - - object-file.c: use size_t for header lengths
316 - - hash-object: demonstrate a >4GB/LLP64 problem
364 + (merged to 'next' on 2026-06-21 at b780a276b9)
365 + + hash-object: add a >4GB/LLP64 test case using filtered input
366 + + hash-object: add another >4GB/LLP64 test case
367 + + hash-object --stdin: verify that it works with >4GB/LLP64
368 + + hash algorithms: use size_t for section lengths
369 + + object-file.c: use size_t for header lengths
370 + + hash-object: demonstrate a >4GB/LLP64 problem
371
372 Support for hashing loose or packed objects larger than 4GB on Windows
373 and other LLP64 platforms has been improved by converting object header
374 buffers and data-handling functions from 'unsigned long' to 'size_t'.
375
322 - Will merge to 'next'.
376 + Will cook in 'next'.
377 cf. <ajOQthRjhD3hRM9w@pks.im>
378 source: <pull.2138.v2.git.1781621398.gitgitgadget@gmail.com>
379
380
381 * kh/submittingpatches-trailers (2026-06-18) 5 commits
328 - - SubmittingPatches: note that trailer order matters
329 - - SubmittingPatches: be consistent with trailer markup
330 - - SubmittingPatches: document Based-on-patch-by trailer
331 - - SubmittingPatches: discourage common Linux trailers
332 - - SubmittingPatches: encourage trailer use for substantial help
382 + (merged to 'next' on 2026-06-22 at 2cd4a152c9)
383 + + SubmittingPatches: note that trailer order matters
384 + + SubmittingPatches: be consistent with trailer markup
385 + + SubmittingPatches: document Based-on-patch-by trailer
386 + + SubmittingPatches: discourage common Linux trailers
387 + + SubmittingPatches: encourage trailer use for substantial help
388
389 The trailer sections in SubmittingPatches have been updated to
390 encourage use of standard trailers.
391
337 - Will merge to 'next'?
392 + Will cook in 'next'.
393 cf. <xmqq4ij0vo8f.fsf@gitster.g>
394 source: <V3_CV_SubPatches_trailers.9ec@msgid.xyz>
395
396
342 -* mv/log-follow-mergy (2026-06-14) 1 commit
397 +* mv/log-follow-mergy (2026-06-21) 1 commit
398 - log: improve --follow following renames for non-linear history
399
400 "git log --follow" has been updated to handle non-linear history, in
401 which the path being tracked gets renamed differently in multiple
402 history lines, better.
403
349 - Needs review.
350 - source: <ai-aE83w02xPRlPr@collabora.com>
404 + Will merge to 'next'.
405 + source: <ajjU4w2B0NlZffw1@collabora.com>
406
407
408 * wy/doc-myfirstcontribution-trim-quotes (2026-06-11) 1 commit
@@ -389,30 +444,6 @@ Release tarballs are available at:
444 source: <pull.2135.v2.git.1781323575.gitgitgadget@gmail.com>
445
446
392 -* js/objects-larger-than-4gb-on-windows-more (2026-06-15) 7 commits
393 - (merged to 'next' on 2026-06-18 at 2b3ac350e6)
394 - + odb: use size_t for object_info.sizep and the size APIs
395 - + packfile,delta: drop the `cast_size_t_to_ulong()` wrappers
396 - + pack-objects: use size_t for in-core object sizes
397 - + packfile: widen unpack_entry()'s size out-parameter to size_t
398 - + pack-objects(check_pack_inflate()): use size_t instead of unsigned long
399 - + patch-delta: use size_t for sizes
400 - + compat/msvc: use _chsize_s for ftruncate
401 -
402 - Will cook in 'next'.
403 - cf. <ajPhBn7n1wR-sii4@pks.im>
404 - source: <pull.2137.v2.git.1781524349.gitgitgadget@gmail.com>
405 -
406 -
407 -* kw/gitattributes-typofix (2026-06-15) 1 commit
408 - (merged to 'next' on 2026-06-17 at 14ff167ef8)
409 - + gitattributes: fix eol attribute for Perl scripts
410 -
411 - Will cook in 'next'.
412 - cf. <ai-5vfY8D84UhsB4@pks.im>
413 - source: <pull.2151.v2.git.1781510039164.gitgitgadget@gmail.com>
414 -
415 -
447 * rs/cat-file-default-format-optim (2026-06-14) 1 commit
448 (merged to 'next' on 2026-06-17 at 43ed8b3969)
449 + cat-file: speed up default format
@@ -422,28 +453,6 @@ Release tarballs are available at:
453 source: <5a7ed929-6fe0-496c-83bd-65dee57c2241@web.de>
454
455
425 -* js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits
426 - - SQUASH???
427 - - doc: document autocorrect API
428 - - parseopt: add tests for subcommand autocorrection
429 - - parseopt: enable subcommand autocorrection for git-remote and git-notes
430 - - parseopt: autocorrect mistyped subcommands
431 - - autocorrect: provide config resolution API
432 - - autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT
433 - - autocorrect: use mode and delay instead of magic numbers
434 - - help: move tty check for autocorrection to autocorrect.c
435 - - help: make autocorrect handling reusable
436 - - parseopt: extract subcommand handling from parse_options_step()
437 -
438 - The parse-options library learned to auto-correct misspelled
439 - subcommand names.
440 -
441 - Expecting a reroll.
442 - cf. <xmqq33yzd9yf.fsf@gitster.g>
443 - cf. <SY0P300MB0801E50FCB7EB2F45CD15208CE042@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>
444 - source: <SY0P300MB0801677A2A1E0FD38D06A841CE2A2@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>
445 -
446 -
456 * kk/prio-queue-get-put-fusion (2026-06-08) 2 commits
457 - prio-queue: fold lazy_queue into prio_queue for automatic get+put fusion
458 - prio-queue: rename .nr to .nr_ and add accessor helpers
@@ -472,8 +481,7 @@ Release tarballs are available at:
481 source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com>
482
483
475 -* tc/replay-linearize (2026-06-16) 4 commits
476 - - SQUASH??? prepare for mm/test-grep-lint
484 +* tc/replay-linearize (2026-06-22) 3 commits
485 - replay: offer an option to linearize the commit topology
486 - replay: add helper to put entry into mapped_commits
487 - replay: refactor enum replay_mode into a bool
@@ -482,8 +490,9 @@ Release tarballs are available at:
490 linearize the replayed history, mimicking git rebase
491 --no-rebase-merges.
492
485 - Needs review.
486 - source: <20260616-toon-git-replay-drop-merges-v3-0-153e9eb99ce1@iotcl.com>
493 + Waiting for response(s) to review comment(s).
494 + cf. <xmqq7bnq37jm.fsf@gitster.g>
495 + source: <20260622-toon-git-replay-drop-merges-v4-0-ff257f534319@iotcl.com>
496
497
498 * ps/setup-drop-global-state (2026-06-10) 8 commits
@@ -508,10 +517,11 @@ Release tarballs are available at:
517 source: <20260611-b4-pks-setup-drop-global-state-v2-0-a6f7269c841d@pks.im>
518
519
511 -* ps/refs-avoid-chdir-notify-reparent (2026-06-19) 11 commits
512 - - refs: drop local buffer in `refs_compute_filesystem_location()`
513 - - refs: fix recursing `get_main_ref_store()` with "onbranch" config
514 - - refs/reftable-backend: manually parse "core.sharedRepository"
520 +* ps/refs-avoid-chdir-notify-reparent (2026-06-22) 12 commits
521 + - refs: protect against chicken-and-egg recursion
522 + - refs/reftable: lazy-load configuration to fix chicken-and-egg
523 + - reftable: split up write options
524 + - refs/files: lazy-load configuration to fix chicken-and-egg
525 - refs: move parsing of "core.logAllRefUpdates" back into ref stores
526 - repository: free main reference database
527 - chdir-notify: drop unused `chdir_notify_reparent()`
@@ -527,7 +537,7 @@ Release tarballs are available at:
537 reference database is constructed with an "onbranch" condition.
538
539 Needs review.
530 - source: <20260619-b4-pks-refs-avoid-chdir-notify-reparent-v4-0-a6472be7acc4@pks.im>
540 + source: <20260622-b4-pks-refs-avoid-chdir-notify-reparent-v5-0-018475013dbc@pks.im>
541
542
543 * ps/odb-source-packed (2026-06-16) 18 commits
@@ -550,6 +560,7 @@ Release tarballs are available at:
560 + packfile: split out packfile list logic
561 + packfile: rename `struct packfile_store` to `odb_source_packed`
562 + Merge branch 'ps/odb-source-loose' into ps/odb-source-packed
563 + (this branch is used by ps/connected-generic-promisor-checks, ps/libgit-in-subdir and ps/odb-generalize-prepare.)
564
565 The packed object source has been refactored into a proper struct
566 odb_source.
@@ -573,7 +584,9 @@ Release tarballs are available at:
584 source: <20260612-fix-git-branch-regression-v4-1-f150038c02f4@gmail.com>
585
586
576 -* ty/move-protect-hfs-ntfs (2026-06-10) 1 commit
587 +* ty/move-protect-hfs-ntfs (2026-06-20) 2 commits
588 + (merged to 'next' on 2026-06-20 at d8ca0d5180)
589 + + environment: use 'repo->initialized' for repo_protect_hfs() and repo_protect_ntfs()
590 (merged to 'next' on 2026-06-15 at c2a30ca954)
591 + environment: move 'protect_hfs' and 'protect_ntfs' into 'repo_config_values'
592
@@ -585,6 +598,7 @@ Release tarballs are available at:
598 cf. <CAP8UFD35Tiy1_fqpjq8P-z=ZhzR3MTiThqfCs977652umRoSEQ@mail.gmail.com>
599 cf. <xmqqse6uwdnz.fsf@gitster.g>
600 source: <20260610124353.149874-2-cat@malon.dev>
601 + source: <20260620140957.667820-1-cat@malon.dev>
602
603
604 * ps/cat-file-remote-object-info (2026-06-19) 12 commits
@@ -610,7 +624,8 @@ Release tarballs are available at:
624 server-advertised capabilities and safely returns empty strings for
625 inapplicable or unsupported fields.
626
613 - Needs review.
627 + Waiting for response(s) to review comment(s).
628 + cf. <CAOLa=ZSvxXuf_bSzKMvViNQ5MuDAqxnQdo4asF9vfMhJaDQcVw@mail.gmail.com>
629 source: <20260619-ps-eric-work-rebase-v13-0-3d4c7315d2f8@gmail.com>
630
631
@@ -676,8 +691,7 @@ Release tarballs are available at:
691 source: <pull.2120.v4.git.1781463564.gitgitgadget@gmail.com>
692
693
679 -* tb/pack-path-walk-bitmap-delta-islands (2026-06-15) 6 commits
680 - - SQUASH???
694 +* tb/pack-path-walk-bitmap-delta-islands (2026-06-21) 5 commits
695 - pack-objects: support `--delta-islands` with `--path-walk`
696 - pack-objects: extract `record_tree_depth()` helper
697 - pack-objects: support reachability bitmaps with `--path-walk`
@@ -689,11 +703,9 @@ Release tarballs are available at:
703 faster packaging by falling back to path-walk when bitmaps cannot
704 fully satisfy the request.
705
692 - Waiting for response(s) to review comment(s).
693 - cf. <849c659f-efa8-430a-bfac-0c26a3ed1aaa@gmail.com>
694 - cf. <xmqqjyrzbjyf.fsf@gitster.g>
695 - cf. <7afdaf77-07f5-4d48-955d-e153d148f647@gmail.com>
696 - source: <cover.1780438896.git.me@ttaylorr.com>
706 + Will merge to 'next'.
707 + cf. <xmqqwlvq1qyy.fsf@gitster.g>
708 + source: <cover.1782082975.git.me@ttaylorr.com>
709
710
711 * ty/migrate-trust-executable-bit (2026-06-19) 3 commits
@@ -723,19 +735,18 @@ Release tarballs are available at:
735 source: <pull.2132.v2.git.1780301856444.gitgitgadget@gmail.com>
736
737
726 -* jk/repo-info-path-keys (2026-06-15) 4 commits
738 +* jk/repo-info-path-keys (2026-06-20) 3 commits
739 - repo: add path.gitdir with absolute and relative suffix formatting
740 - repo: add path.commondir with absolute and relative suffix formatting
729 - - rev-parse: use append_formatted_path() for path formatting
730 - - path: introduce append_formatted_path() for shared path formatting
741 + - path: extract append_formatted_path() and use in rev-parse
742
743 The "git repo info" command has been taught new keys to output both
744 absolute and relative paths for "gitdir" and "commondir", supported by
745 a new path-formatting helper extracted from "git rev-parse".
746
747 Expecting a reroll.
737 - cf. <CA+rGoLfhhRNrSReeJ1grhy+2K3BSrikTCNgGpCaGqc4fFp3Lfg@mail.gmail.com>
738 - source: <20260616044953.184806-1-jayatheerthkulkarni2005@gmail.com>
748 + cf. <CA+rGoLcahV9pPqkSAKvz9o3g2cw2PsYXxzzwAC8XoseFzMB5rA@mail.gmail.com>
749 + source: <20260621055534.46798-1-jayatheerthkulkarni2005@gmail.com>
750
751
752 * ps/history-drop (2026-06-15) 10 commits
@@ -790,7 +801,8 @@ Release tarballs are available at:
801 source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
802
803
793 -* za/completion-hide-dotfiles (2026-05-26) 1 commit
804 +* za/completion-hide-dotfiles (2026-06-20) 2 commits
805 + - completion: hide dotfiles by default for path completion
806 - completion: hide dotfiles for selected path completion
807
808 The path completion for commands like `git rm` and `git mv`, is being
@@ -798,8 +810,8 @@ Release tarballs are available at:
810 the path with a dot, matching standard shell-completion behavior.
811
812 Waiting for response(s) to review comment(s).
801 - cf. <xmqqik7qusuc.fsf@gitster.g>
802 - source: <pull.2311.v2.git.git.1779808987825.gitgitgadget@gmail.com>
813 + cf. <xmqq1pe0g08t.fsf@gitster.g>
814 + source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
815
816
817 * ec/commit-fixup-options (2026-05-26) 2 commits
@@ -839,7 +851,7 @@ Release tarballs are available at:
851 source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com>
852
853
842 -* hn/branch-delete-merged (2026-06-18) 7 commits
854 +* hn/branch-delete-merged (2026-06-22) 7 commits
855 - branch: add --dry-run for --delete-merged
856 - branch: add branch.<name>.deleteMerged opt-out
857 - branch: add --delete-merged <branch>
@@ -853,11 +865,8 @@ Release tarballs are available at:
865 branches they track.
866
867 Waiting for response(s) to review comment(s).
856 - cf. <78b6dfdd-df61-4c44-96eb-b527cb26243c@gmail.com>
857 - cf. <f68e2a11-02a5-47b9-a01a-458eba821c37@gmail.com>
858 - cf. <37f2a483-c8bf-4c24-84de-c6233cc20b25@gmail.com>
859 - cf. <xmqq33yimsdp.fsf@gitster.g>
860 - source: <pull.2285.v16.git.git.1781810729.gitgitgadget@gmail.com>
868 + cf. <cb6fcdfb-67b4-429d-b820-c4e623f28cfa@gmail.com>
869 + source: <pull.2285.v17.git.git.1782113388.gitgitgadget@gmail.com>
870
871
872 * cc/promisor-auto-config-url-more (2026-05-27) 8 commits
@@ -909,7 +918,7 @@ Release tarballs are available at:
918 source: <pull.2096.v2.git.1781419047.gitgitgadget@gmail.com>
919
920
912 -* pw/status-rebase-todo (2026-05-01) 2 commits
921 +* pw/status-rebase-todo (2026-06-22) 2 commits
922 - status: improve rebase todo list parsing
923 - sequencer: factor out parsing of todo commands
924
@@ -917,26 +926,14 @@ Release tarballs are available at:
926 improved to correctly abbreviate object IDs for more commands and
927 avoid misinterpreting refs as object IDs.
928
920 - Waiting for response(s) to review comment(s).
921 - cf. <xmqqqzmdoya9.fsf@gitster.g>
922 - source: <cover.1777648598.git.phillip.wood@dunelm.org.uk>
923 -
924 -
925 -* cl/conditional-config-on-worktree-path (2026-05-24) 2 commits
926 - - config: add "worktree" and "worktree/i" includeIf conditions
927 - - config: refactor include_by_gitdir() into include_by_path()
928 -
929 - The [includeIf "condition"] conditional inclusion facility for
930 - configuration files has learned to use the location of worktree
931 - in its condition.
932 -
933 - Waiting for response(s) to review comment(s).
934 - cf. <xmqq8q97et9b.fsf@gitster.g>
935 - source: <20260525-includeif-worktree-v5-0-1efe525d025a@black-desk.cn>
929 + Will merge to 'next'.
930 + cf. <xmqqechy1o7p.fsf@gitster.g>
931 + source: <cover.1782117361.git.phillip.wood@dunelm.org.uk>
932
933
938 -* ps/shift-root-in-graph (2026-06-13) 2 commits
934 +* ps/shift-root-in-graph (2026-06-20) 3 commits
935 - graph: indent visual root in graph
936 + - revision: add peek functions for lookahead
937 - lib-log-graph: move check_graph function
938
939 "git log --graph" has been modified to visually distinguish
@@ -946,86 +943,7 @@ Release tarballs are available at:
943 above them.
944
945 Waiting for response(s) to review comment(s).
949 - cf. <20260617202744.GA3465855@coredump.intra.peff.net>
950 - source: <20260613-ps-pre-commit-indent-v5-0-8d308efea63d@gmail.com>
951 -
952 ---------------------------------------------------
953 -[Discarded]
954 -
955 -* kk/fetch-store-ref-optimization (2026-05-24) 1 commit
956 - . fetch: pass transport to post-fetch connectivity check
957 -
958 - When fetching from a transport that provides a self-contained pack,
959 - pass the transport pointer to the post-fetch `check_connected()` call
960 - to optimize connectivity check.
961 -
962 - Retracted.
963 - cf. <CAL71e4MrVqC1=AR6x0_8S=8kVqPdDkhgCZRb4etFsxTzd6s_8Q@mail.gmail.com>
964 - source: <pull.2123.git.1779625693328.gitgitgadget@gmail.com>
965 -
966 -
967 -* lp/repack-propagate-promisor-debugging-info (2026-04-18) 6 commits
968 - . repack-promisor: add missing headers
969 - . t7703: test for promisor file content after geometric repack
970 - . t7700: test for promisor file content after repack
971 - . repack-promisor: preserve content of promisor files after repack
972 - . repack-promisor add helper to fill promisor file after repack
973 - . pack-write: add explanation to promisor file content
974 -
975 - When fetching objects into a lazily cloned repository, .promisor
976 - files are created with information meant to help debugging. "git
977 - repack" has been taught to carry this information forward to
978 - packfiles that are newly created.
979 -
980 - Retracted.
981 - cf. <agx_GPfBKpkSc3Gx@lorenzo-VM>
982 - source: <cover.1776384902.git.lorenzo.pegorari2002@gmail.com>
983 -
984 -
985 -* cs/subtree-split-recursion (2026-03-05) 3 commits
986 - . contrib/subtree: reduce recursion during split
987 - . contrib/subtree: functionalize split traversal
988 - . contrib/subtree: reduce function side-effects
989 -
990 - When processing large history graphs on Debian or Ubuntu, "git
991 - subtree" can die with a "recursion depth reached" error.
992 -
993 - Retracted.
994 - cf. <0915b5cc-5cbb-4cce-a832-147f85d4ff1f@howdoi.land>
995 - source: <20260305-cs-subtree-split-recursion-v2-0-7266be870ba9@howdoi.land>
996 -
997 -
998 -* jc/neuter-sideband-post-3.0 (2026-03-05) 2 commits
999 - . sideband: delay sanitizing by default to Git v3.0
1000 - . Merge branch 'jc/neuter-sideband-fixup' into jc/neuter-sideband-post-3.0
1001 -
1002 - The final step, split from earlier attempt by Dscho, to loosen the
1003 - sideband restriction for now and tighten later at Git v3.0 boundary.
1004 -
1005 - Retracted.
1006 - cf. <xmqqzf11oz7a.fsf@gitster.g>
1007 - source: <20260305233452.3727126-8-gitster@pobox.com>
1008 -
1009 -
1010 -* kk/remove-get-reachable-subset (2026-06-11) 1 commit
1011 - . commit-reach: remove get_reachable_subset()
1012 -
1013 - API clean-up.
1014 -
1015 - Retracted.
1016 - cf. <CAL71e4P3Oq08xVPZ+dxQ8L5PKekPJN0RsL4pTicom1og7-1D=A@mail.gmail.com>
1017 - source: <pull.2144.v2.git.1781178567862.gitgitgadget@gmail.com>
1018 -
1019 -
1020 -* ds/config-no-includes (2026-06-08) 3 commits
1021 - . git: add --no-includes top-level option
1022 - . config: add GIT_CONFIG_INCLUDES
1023 - . git-config.adoc: fix paragraph break
1024 -
1025 - Two new mechanisms, the GIT_CONFIG_INCLUDES environment variable and
1026 - the top-level --no-includes command-line option, have been introduced
1027 - to ignore configuration include directives.
1028 -
1029 - Retracted.
1030 - cf. <539713c4-b291-42e6-8541-a16a454518f5@gmail.com>
1031 - source: <pull.2139.git.1780927027.gitgitgadget@gmail.com>
946 + The peek-ahead approach may need to be scratched.
947 + cf. <CAN5EUNSj-2hkEBF7N_M6RLsuujDNFNUF3w53zR7SN1_5i2BRyg@mail.gmail.com>
948 + cf. <CAL71e4OQ_kGb+UwHgikHG236-8BVtc7P9OdpV4i4UzYRCoPczw@mail.gmail.com>
949 + source: <20260620-ps-pre-commit-indent-v6-0-cdc6d8fd5fbc@gmail.com>