What's cooking (2025/10 #07)

Junio C Hamano committed Oct 21, 2025 at 16:09 UTC c7de6ab4c919f0cacaedb16b4d6956ba6452d9fb
1 file changed +186 -147
whats-cooking.txt
+186 -147
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Oct 2025, #06; Fri, 17)
3 -X-master-at: f229982df19c327876ce7ded40f6efefe20da5d4
4 -X-next-at: 3bde8961571d1368c1015e64b907e8f87cf1a2aa
2 +Subject: What's cooking in git.git (Oct 2025, #07; Tue, 21)
3 +X-master-at: 133d151831d32bdcc02422599a3f26cef44f929b
4 +X-next-at: 4ebd6896fd8600877adbfde68a5d313d77bc0f18
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Oct 2025, #06; Fri, 17)
7 +What's cooking in git.git (Oct 2025, #07; Tue, 21)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -48,58 +48,160 @@ Release tarballs are available at:
48 --------------------------------------------------
49 [Graduated to 'master']
50
51 -* en/make-libgit-a (2025-10-02) 2 commits
52 - (merged to 'next' on 2025-10-10 at 913fc0337a)
53 - + make: delete REFTABLE_LIB, add reftable to LIB_OBJS
54 - + make: delete XDIFF_LIB, add xdiff to LIB_OBJS
51 +* dk/stash-apply-index (2025-10-06) 1 commit
52 + (merged to 'next' on 2025-10-13 at 2187046f6c)
53 + + doc: explain the impact of stash.index on --autostash options
54
56 - Instead of three library archives (one for git, one for reftable,
57 - and one for xdiff), roll everything into a single libgit.a archive.
58 - This would help later effort to FFI into Rust.
59 -
60 - source: <pull.2065.v2.git.git.1759447647.gitgitgadget@gmail.com>
55 + Doc update.
56 + source: <d4a277b6b0695d86636562f4c07efae17f9249f9.1759755379.git.ben.knoble+github@gmail.com>
57
58
63 -* jk/diff-no-index-with-pathspec-fix (2025-09-24) 1 commit
64 - (merged to 'next' on 2025-10-10 at 75721dbc16)
65 - + diff --no-index: fix logic for paths ending in '/'
59 +* js/mingw-includes-cleanup (2025-10-09) 2 commits
60 + (merged to 'next' on 2025-10-13 at b7144c1feb)
61 + + mingw: order `#include`s alphabetically
62 + + mingw: avoid relative `#include`s
63
67 - An earlier addition to "git diff --no-index A B" to limit the
68 - output with pathspec after the two directories misbehaved when
69 - these directories were given with a trailing slash, which has been
70 - corrected.
71 -
72 - source: <20250924-jk-fix-no-index-path-with-slash-v1-1-6b2028c0de92@intel.com>
64 + Code clean-up.
65 + source: <pull.1985.git.1759995961.gitgitgadget@gmail.com>
66 +
67 +
68 +* js/unreachable-workaround-for-no-symlink-head (2025-10-09) 1 commit
69 + (merged to 'next' on 2025-10-13 at 0e970d5e4e)
70 + + refs: forbid clang to complain about unreachable code
71 +
72 + Code clean-up.
73 + source: <pull.1984.git.1759995982220.gitgitgadget@gmail.com>
74
75
75 -* rs/add-patch-options-fix (2025-10-06) 6 commits
76 - (merged to 'next' on 2025-10-10 at ef52e0377e)
77 - + add-patch: reset "permitted" at loop start
78 - + add-patch: let options a and d roll over like y and n
79 - + add-patch: let options k and K roll over like j and J
80 - + add-patch: let options y, n, j, and e roll over to next undecided
81 - + add-patch: document that option J rolls over
82 - + add-patch: improve help for options j, J, k, and K
76 +* kh/doc-continued-paragraph-fix (2025-10-08) 1 commit
77 + (merged to 'next' on 2025-10-13 at e66316f041)
78 + + doc: fix accidental literal blocks
79
84 - The code in "git add -p" and friends to iterate over hunks was
85 - riddled with bugs, which has been corrected.
86 -
87 - source: <fe8e8097-2b05-4dd2-a754-f59e4ba5f95a@web.de>
80 + Doc mark-up fixes.
81 + source: <7a955ecb1b5.1759923933.git.code@khaugsbakk.name>
82
83
90 -* tb/doc-submitting-patches (2025-10-07) 2 commits
91 - (merged to 'next' on 2025-10-10 at b63283990d)
92 - + SubmittingPatches: guidance for multi-series efforts
93 - + SubmittingPatches: extend release-notes experiment to topic names
84 +* tb/cat-file-objectmode-update (2025-10-13) 1 commit
85 + (merged to 'next' on 2025-10-13 at 4fd0f1b5b5)
86 + + builtin/cat-file.c: simplify calling `report_object_status()`
87
95 - A few more things that patch authors can do to help maintainer to
96 - keep track of their topics better.
97 -
98 - source: <cover.1759873165.git.me@ttaylorr.com>
88 + Code clean-up.
89 + source: <9236fa6e654a59337266430a2a8807da21210cd4.1760392502.git.me@ttaylorr.com>
90
91 --------------------------------------------------
92 [New Topics]
93
94 +* js/t7500-pwd-windows-fix (2025-10-20) 1 commit
95 + (merged to 'next' on 2025-10-20 at d3996041e8)
96 + + t7500: fix tests with absolute path following ":(optional)" on Windows
97 +
98 + Test fix.
99 +
100 + Will merge to 'master'.
101 + source: <6a83c7d1-7cd4-432e-a0ab-7b18ce3af08d@kdbg.org>
102 +
103 +
104 +* kf/log-shortlog-completion-fix (2025-10-20) 1 commit
105 + - completion: complete some 'git log' options
106 +
107 + "git shortlog" knows "--committer" and "--author" options, which
108 + the command line completion (in contrib/) did not handle well,
109 + which has been corrected.
110 +
111 + Will merge to 'next'?
112 + source: <pull.2073.v2.git.git.1760981577441.gitgitgadget@gmail.com>
113 +
114 +
115 +* kn/refs-optim-cleanup (2025-10-20) 4 commits
116 + . t/pack-refs-tests: move the 'test_done' to callees
117 + . refs: rename 'pack_refs_opts' to 'refs_optimize_opts'
118 + . refs: move to using the '.optimize' functions
119 + . Merge branch 'ps/ref-peeled-tags' into kn/refs-optim-cleanup
120 + (this branch uses ps/ref-peeled-tags.)
121 +
122 + Code clean-up.
123 +
124 + Comments?
125 + source: <20251020-refs-code-cleanup-v2-0-f5349ed0f6a5@gmail.com>
126 +
127 +
128 +* lo/repo-info-all (2025-10-20) 2 commits
129 + - repo: add --all to git-repo-info
130 + - repo: factor out field printing to dedicated function
131 +
132 + "git repo info" learned "--all" option.
133 +
134 + Comments?
135 + cf. <aPcduvnjD0yphja2@pks.im>
136 + source: <20251020181943.6314-1-lucasseikioshiro@gmail.com>
137 +
138 +
139 +* ly/diff-name-only-with-diff-from-content (2025-10-19) 1 commit
140 + (merged to 'next' on 2025-10-20 at 8a271653ce)
141 + + diff: stop output garbled message in dry run mode
142 +
143 + Regression fixes for a topic that has already been merged.
144 +
145 + Will merge to 'master'.
146 + source: <20251019163024.18939-1-yldhome2d2@gmail.com>
147 +
148 +
149 +* jt/repo-structure (2025-10-21) 7 commits
150 + - builtin/repo: add progress meter for structure stats
151 + - builtin/repo: add keyvalue and nul format for structure stats
152 + - builtin/repo: add object counts in structure output
153 + - builtin/repo: introduce structure subcommand
154 + - ref-filter: export ref_kind_from_refname()
155 + - ref-filter: allow NULL filter pattern
156 + - builtin/repo: rename repo_info() to cmd_repo_info()
157 +
158 + "git repo structure", a new command.
159 +
160 + Comments?
161 + source: <20251021182601.2687284-1-jltobler@gmail.com>
162 +
163 +
164 +* ps/maintenance-geometric (2025-10-21) 10 commits
165 + - builtin/maintenance: introduce "geometric" strategy
166 + - builtin/maintenance: make "gc" strategy accessible
167 + - builtin/maintenance: extend "maintenance.strategy" to manual maintenance
168 + - builtin/maintenance: run maintenance tasks depending on type
169 + - builtin/maintenance: don't silently ignore invalid strategy
170 + - builtin/maintenance: make the geometric factor configurable
171 + - builtin/maintenance: introduce "geometric-repack" task
172 + - builtin/gc: make `too_many_loose_objects()` reusable without GC config
173 + - builtin/gc: remove global `repack` variable
174 + - Merge branch 'tb/incremental-midx-part-3.1' into ps/maintenance-geometric
175 + (this branch uses tb/incremental-midx-part-3.1.)
176 +
177 + "git maintenance" command learns the "geometric" strategy where it
178 + avoids doing maintenance tasks that rebuilds everything from
179 + scratch.
180 +
181 + Comments?
182 + source: <20251021-pks-maintenance-geometric-strategy-v2-0-f0d727832b80@pks.im>
183 +
184 +
185 +* rs/add-patch-document-p-for-pager (2025-10-21) 1 commit
186 + - add-patch: fully document option P
187 +
188 + Show 'P'ipe command in "git add -p".
189 +
190 + Will merge to 'next'.
191 + source: <0188c766-d788-476d-a4d4-f95a6f59b31b@web.de>
192 +
193 +
194 +* tb/unicode-width-table-17 (2025-10-21) 1 commit
195 + - unicode: update the width tables to Unicode 17
196 +
197 + Unicode width table update.
198 +
199 + Will merge to 'next'.
200 + source: <20251021094849.93284-1-tboegi@web.de>
201 +
202 +--------------------------------------------------
203 +[Cooking]
204 +
205 * so/t2401-use-test-path-helpers (2025-10-15) 1 commit
206 (merged to 'next' on 2025-10-16 at b6fe4d2222)
207 + t2401: update path checks using test_path helpers
@@ -172,50 +274,40 @@ Release tarballs are available at:
274
275
276 * jk/diff-from-contents-fix (2025-10-17) 2 commits
175 - - diff: restore redirection to /dev/null for diff_from_contents
176 - - Merge branch 'ly/diff-name-only-with-diff-from-content' into jk/diff-from-contents-fix
277 + (merged to 'next' on 2025-10-20 at 19442a804e)
278 + + diff: restore redirection to /dev/null for diff_from_contents
279 + + Merge branch 'ly/diff-name-only-with-diff-from-content' into jk/diff-from-contents-fix
280
281 Recently we attempted to improve "git diff -w" and friends to
282 handle cases where patch output would be suppressed, but it
283 introduced a bug that emits unnecessary output, which has been
284 corrected.
285
183 - Will merge to 'next' and then to 'master' and then to 'maint'.
286 + Will merge to 'master' and then to 'maint'.
287 source: <20251017083641.GB4073661@coredump.intra.peff.net>
288
289
290 * jk/status-z-short-fix (2025-10-17) 1 commit
188 - - status: make coloring of "-z --short" consistent
291 + (merged to 'next' on 2025-10-20 at 0d649c97b7)
292 + + status: make coloring of "-z --short" consistent
293
294 The "--short" option of "git status" that meant output for humans
295 and "-z" option to show NUL delimited output format did not mix
296 well, and colored some but not all things. The command has been
297 updated to color all elements consistently in such a case.
298
195 - Will merge to 'next'.
299 + Will merge to 'master'.
300 source: <20251017084455.GA4096702@coredump.intra.peff.net>
301
198 ---------------------------------------------------
199 -[Cooking]
302
201 -* tu/credential-makefile-updates (2025-10-10) 1 commit
202 - - contrib/credential: Amend and harmonize Makefiles
303 +* tu/credential-makefile-updates (2025-10-20) 1 commit
304 + - contrib/credential: harmonize Makefiles
305
306 Build procedure for a few credential helpers (in contrib/) have
307 been updated.
308
207 - Expecting a reroll.
208 - source: <48d92664-41af-bb59-1844-7bb57f21924f@mailbox.tu-dresden.de>
209 -
210 -
211 -* tb/cat-file-objectmode-update (2025-10-13) 1 commit
212 - (merged to 'next' on 2025-10-13 at 4fd0f1b5b5)
213 - + builtin/cat-file.c: simplify calling `report_object_status()`
214 -
215 - Code clean-up.
216 -
217 - Will merge to 'master'.
218 - source: <9236fa6e654a59337266430a2a8807da21210cd4.1760392502.git.me@ttaylorr.com>
309 + Will merge to 'next'.
310 + source: <0a61b0b3-365b-c198-6afd-f26fcd5a9c20@mailbox.tu-dresden.de>
311
312
313 * ps/symlink-symref-deprecation (2025-10-14) 1 commit
@@ -228,37 +320,6 @@ Release tarballs are available at:
320 source: <20251014-pks-ref-files-deprecate-symbolic-links-v1-1-4bcd6a4ef6f5@pks.im>
321
322
231 -* dk/stash-apply-index (2025-10-06) 1 commit
232 - (merged to 'next' on 2025-10-13 at 2187046f6c)
233 - + doc: explain the impact of stash.index on --autostash options
234 -
235 - Doc update.
236 -
237 - Will merge to 'master'.
238 - source: <d4a277b6b0695d86636562f4c07efae17f9249f9.1759755379.git.ben.knoble+github@gmail.com>
239 -
240 -
241 -* js/mingw-includes-cleanup (2025-10-09) 2 commits
242 - (merged to 'next' on 2025-10-13 at b7144c1feb)
243 - + mingw: order `#include`s alphabetically
244 - + mingw: avoid relative `#include`s
245 -
246 - Code clean-up.
247 -
248 - Will merge to 'master'.
249 - source: <pull.1985.git.1759995961.gitgitgadget@gmail.com>
250 -
251 -
252 -* js/unreachable-workaround-for-no-symlink-head (2025-10-09) 1 commit
253 - (merged to 'next' on 2025-10-13 at 0e970d5e4e)
254 - + refs: forbid clang to complain about unreachable code
255 -
256 - Code clean-up.
257 -
258 - Will merge to 'master'.
259 - source: <pull.1984.git.1759995982220.gitgitgadget@gmail.com>
260 -
261 -
323 * kh/doc-patch-id-1 (2025-10-13) 2 commits
324 - doc: patch-id: convert to the modern synopsis style
325 - Merge branch 'kh/doc-patch-id-markup-fix' into kh/doc-patch-id-1
@@ -290,16 +351,6 @@ Release tarballs are available at:
351 source: <xmqqsefq7947.fsf@gitster.g>
352
353
293 -* kh/doc-continued-paragraph-fix (2025-10-08) 1 commit
294 - (merged to 'next' on 2025-10-13 at e66316f041)
295 - + doc: fix accidental literal blocks
296 -
297 - Doc mark-up fixes.
298 -
299 - Will merge to 'master'.
300 - source: <7a955ecb1b5.1759923933.git.code@khaugsbakk.name>
301 -
302 -
354 * cc/fast-import-strip-signed-tags (2025-10-13) 5 commits
355 - fast-import: add '--signed-tags=<mode>' option
356 - fast-export: handle all kinds of tag signatures
@@ -310,7 +361,7 @@ Release tarballs are available at:
361 "git fast-import" is taught to handle signed tags, just like it
362 recently learned to handle signed commits, in different ways.
363
313 - Will merge to 'next'?
364 + Will merge to 'next'.
365 source: <20251013084857.1646783-1-christian.couder@gmail.com>
366
367
@@ -326,29 +377,33 @@ Release tarballs are available at:
377
378 CI improvements to handle the recent Rust integration better.
379
329 - Will merge to 'next'?
380 + Will merge to 'next'.
381 source: <20251015-b4-pks-ci-rust-v3-0-13810af33bd5@pks.im>
382
383
384 * ps/ref-peeled-tags (2025-10-08) 14 commits
334 - - ref-filter: parse objects on demand
335 - - ref-filter: detect broken tags when dereferencing them
336 - - refs: don't store peeled object IDs for invalid tags
337 - - object: add flag to `peel_object()` to verify object type
338 - - refs: drop infrastructure to peel via iterators
339 - - refs: drop `current_ref_iter` hack
340 - - builtin/show-ref: convert to use `reference_get_peeled_oid()`
341 - - ref-filter: propagate peeled object ID
342 - - upload-pack: convert to use `reference_get_peeled_oid()`
343 - - refs: expose peeled object ID via the iterator
344 - - refs: refactor reference status flags
345 - - refs: fully reset `struct ref_iterator::ref` on iteration
346 - - refs: introduce `.ref` field for the base iterator
347 - - refs: introduce wrapper struct for `each_ref_fn`
385 + . ref-filter: parse objects on demand
386 + . ref-filter: detect broken tags when dereferencing them
387 + . refs: don't store peeled object IDs for invalid tags
388 + . object: add flag to `peel_object()` to verify object type
389 + . refs: drop infrastructure to peel via iterators
390 + . refs: drop `current_ref_iter` hack
391 + . builtin/show-ref: convert to use `reference_get_peeled_oid()`
392 + . ref-filter: propagate peeled object ID
393 + . upload-pack: convert to use `reference_get_peeled_oid()`
394 + . refs: expose peeled object ID via the iterator
395 + . refs: refactor reference status flags
396 + . refs: fully reset `struct ref_iterator::ref` on iteration
397 + . refs: introduce `.ref` field for the base iterator
398 + . refs: introduce wrapper struct for `each_ref_fn`
399 + (this branch is used by kn/refs-optim-cleanup.)
400
401 Some ref backend storage can hold not just the object name of an
402 annotated tag, but the object name of the object the tag points at.
403 The code to handle this information has been streamlined.
404 +
405 + Tentatively kicked out of 'seen'.
406 + Needs larger merge-fix to adjust other topics to "struct reference".
407 source: <20251008-b4-pks-ref-filter-skip-parsing-objects-v2-0-76e30d5c9542@pks.im>
408
409
@@ -365,11 +420,12 @@ Release tarballs are available at:
420 Two slightly different ways to get at "all the packfiles" in API
421 has been cleaned up.
422
368 - Comments?
423 + Will merge to 'next' after tb/incremental-midx-part-3.1 settles.
424 source: <20251009-pks-packfiles-convert-get-all-v2-0-0d73b87ce711@pks.im>
425
426
372 -* je/doc-data-model (2025-10-14) 1 commit
427 +* je/doc-data-model (2025-10-20) 2 commits
428 + - SQUASH??? work around AsciiDoc xml that does not validate
429 - doc: add a explanation of Git's data model
430
431 Add a new manual that describes the data model.
@@ -429,12 +485,12 @@ Release tarballs are available at:
485 - builtin/repack.c: avoid "the_repository" in existing packs API
486 - builtin/repack.c: avoid "the_repository" in `cmd_repack()`
487 - Merge branch 'ps/packfile-store' into tb/incremental-midx-part-3.1
432 - (this branch is used by ps/remove-packfile-store-get-packs.)
488 + (this branch is used by ps/maintenance-geometric and ps/remove-packfile-store-get-packs.)
489
490 Clean-up "git repack" machinery to prepare for incremental update
491 of midx files.
492
437 - Will merge to 'next'?
493 + Will merge to 'next'.
494 source: <cover.1760567210.git.me@ttaylorr.com>
495
496
@@ -448,7 +504,7 @@ Release tarballs are available at:
504 source: <20251001140310.527097-1-christian.couder@gmail.com>
505
506
451 -* ps/history (2025-10-01) 13 commits
507 +* ps/history (2025-10-21) 13 commits
508 - builtin/history: implement "split" subcommand
509 - cache-tree: allow writing in-memory index as tree
510 - add-patch: add support for in-memory index patching
@@ -465,9 +521,7 @@ Release tarballs are available at:
521 (this branch uses sa/replay-atomic-ref-updates.)
522
523 "git history" history rewriting UI.
468 -
469 - Stomps on each others toes with sa/replay-atomic-ref-updates topic.
470 - source: <20251001-b4-pks-history-builtin-v4-0-8e61ddb86317@pks.im>
524 + source: <20251021-b4-pks-history-builtin-v5-0-78d23f578fe6@pks.im>
525
526
527 * ms/doc-worktree-side-by-side (2025-10-10) 2 commits
@@ -522,21 +576,6 @@ Release tarballs are available at:
576 source: <pull.1976.v3.git.1760534011.gitgitgadget@gmail.com>
577
578
525 -* jt/repo-stats (2025-10-15) 6 commits
526 - - builtin/repo: add progress meter for structure stats
527 - - builtin/repo: add keyvalue and nul format for structure stats
528 - - builtin/repo: add object counts in structure output
529 - - builtin/repo: introduce structure subcommand
530 - - ref-filter: allow NULL filter pattern
531 - - builtin/repo: rename repo_info() to cmd_repo_info()
532 -
533 - "git repo stats", a new command.
534 -
535 - Expecting a (hopefully small and final) reroll.
536 - cf. <aPDPyEVOTSU6NuOH@pks.im>
537 - source: <20251015211213.361797-1-jltobler@gmail.com>
538 -
539 -
579 * bc/sha1-256-interop-01 (2025-10-09) 9 commits
580 (merged to 'next' on 2025-10-14 at c571bab975)
581 + t1010: use BROKEN_OBJECTS prerequisite
@@ -571,7 +610,9 @@ Release tarballs are available at:
610 source: <20251006112518.3764240-1-adrian.ratiu@collabora.com>
611
612
574 -* ds/sparse-checkout-clean (2025-09-12) 7 commits
613 +* ds/sparse-checkout-clean (2025-10-20) 8 commits
614 + (merged to 'next' on 2025-10-20 at afc50f3401)
615 + + sparse-index: improve advice message instructions
616 (merged to 'next' on 2025-09-25 at 00b296f153)
617 + t: expand tests around sparse merges and clean
618 + sparse-index: point users to new 'clean' action
@@ -585,9 +626,7 @@ Release tarballs are available at:
626 prune otherwise unused working-tree files that are outside the
627 areas of interest.
628
588 - Expecting a (hopefully small) incremental update.
589 - cf. <3537e220-44b6-4e37-a568-cef34a2fddfd@gmail.com>
590 - cf. <xmqq5xcpgy9t.fsf@gitster.g>
629 + Will merge to 'master'.
630 source: <pull.1941.v3.git.1757673011.gitgitgadget@gmail.com>
631
632 --------------------------------------------------