What's cooking (2025/09 #07)

Junio C Hamano committed Sep 17, 2025 at 09:45 UTC 755ca357183a3bf7663f88d3c1a436060ed6d166
1 file changed +153 -145
whats-cooking.txt
+153 -145
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Sep 2025, #06; Mon, 15)
3 -X-master-at: a483264b01b977f3e65a4419103c21e6af7412a2
4 -X-next-at: c79095c0ca8344f5e5888328570552df95da1849
2 +Subject: What's cooking in git.git (Sep 2025, #07; Wed, 17)
3 +X-master-at: 215033b3ac599432a17d58f18a92b356d98354a9
4 +X-next-at: 15c5d4f767f655d8c09d24948ad0ab2a5e304793
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Sep 2025, #06; Mon, 15)
7 +What's cooking in git.git (Sep 2025, #07; Wed, 17)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -51,92 +51,100 @@ Release tarballs are available at:
51 https://www.kernel.org/pub/software/scm/git/
52
53 --------------------------------------------------
54 -[Graduated to 'master']
55 -
56 -* ds/midx-write-fixes (2025-09-05) 6 commits
57 - (merged to 'next' on 2025-09-08 at 74b87ce5ba)
58 - + midx-write: simplify error cases
59 - + midx-write: reenable signed comparison errors
60 - + midx-write: use uint32_t for preferred_pack_idx
61 - + midx-write: use cleanup when incremental midx fails
62 - + midx-write: put failing response value back
63 - + midx-write: only load initialized packs
64 -
65 - Fixes multiple crashes around midx write-out codepaths.
66 -
67 - source: <pull.1965.v3.git.1757100378.gitgitgadget@gmail.com>
68 -
69 -
70 -* jt/de-global-bulk-checkin (2025-08-22) 4 commits
71 - (merged to 'next' on 2025-09-08 at f544afcab3)
72 - + bulk-checkin: use repository variable from transaction
73 - + bulk-checkin: require transaction for index_blob_bulk_checkin()
74 - + bulk-checkin: remove global transaction state
75 - + bulk-checkin: introduce object database transaction structure
76 - (this branch is used by jt/odb-transaction.)
77 -
78 - The bulk-checkin code used to depend on a file-scope static
79 - singleton variable, which has been updated to pass an instance
80 - throughout the callchain.
81 - cf. <aLmhjw2xAbUogL1L@pks.im>
82 - source: <20250822213500.1488064-1-jltobler@gmail.com>
54 +[New Topics]
55
56 +* pw/add-p-hunk-splitting-fix (2025-09-15) 2 commits
57 + - add-patch: update hunk splitability after editing
58 + - add -p: mark split hunks as undecided
59
85 -* lo/repo-info-step-2 (2025-09-04) 3 commits
86 - (merged to 'next' on 2025-09-08 at 1a58ac3835)
87 - + repo: add the field objects.format
88 - + repo: add the flag -z as an alias for --format=nul
89 - + Merge branch 'lo/repo-info' into lo/repo-info-step-2
60 + Marking a hunk 'selected' in "git add -p" and then splitting made
61 + all the split pieces 'selected'; this has been changed to make them
62 + all 'undecided'.
63
91 - "repo info" learns a short-hand option "-z" that is the same as
92 - "--format=nul", and learns to report the objects format used in the
93 - repository.
94 -
95 - source: <20250904134017.47364-1-lucasseikioshiro@gmail.com>
64 + Comments?
65 + source: <pull.1863.v2.git.1757950144.gitgitgadget@gmail.com>
66 +
67 +
68 +* dk/stash-apply-index (2025-09-15) 4 commits
69 + - stash: honor stash.index in apply, pop modes
70 + - stash: refactor private config globals
71 + - t3905: remove unneeded blank line
72 + - t3903: reduce dependencies on previous tests
73 +
74 + The stash.index configuration variable canbe set to make "git stash
75 + pop/apply" pretend that it was invoked with "--index".
76 +
77 + Expecting a (hopefully small and final) reroll.
78 + cf. <CALnO6CByUNHWFRYBSOpP-uD8moBrm48UW7k0MaGTUtL=bDL6GQ@mail.gmail.com>
79 + source: <cover.1757982870.git.ben.knoble+github@gmail.com>
80 +
81 +
82 +* jk/color-variable-fixes (2025-09-16) 13 commits
83 + - config: store want_color() result in a separate bool
84 + - add-interactive: retain colorbool values longer
85 + - color: return bool from want_color()
86 + - color: use git_colorbool enum type to store colorbools
87 + - pretty: use format_commit_context.auto_color as colorbool
88 + - diff: stop passing ecbdata->use_color as boolean
89 + - diff: pass o->use_color directly to fill_metainfo()
90 + - diff: don't use diff_options.use_color as a strict bool
91 + - diff: simplify color_moved check when flushing
92 + - grep: don't treat grep_opt.color as a strict bool
93 + - color: return enum from git_config_colorbool()
94 + - color: use GIT_COLOR_* instead of numeric constants
95 + - Merge branch 'jk/add-i-color' into jk/color-variable-fixes
96 + (this branch uses jk/add-i-color.)
97 +
98 + Some places in the code confused a variable that is *not* a boolean
99 + to enable color but is an enum that records what the user requested
100 + to do about color. A couple of bugs of this sort have been fixed,
101 + while the code has been cleaned up to prevent similar bugs in the
102 + future.
103
104 + Will merge to 'next'?
105 + source: <20250916201036.GA612463@coredump.intra.peff.net>
106
98 -* mm/worktree-doc-typofix (2025-09-03) 1 commit
99 - (merged to 'next' on 2025-09-09 at afdaf0ed07)
100 - + docs: fix typo in worktree.adoc 'extension'
107
102 - Docfix.
103 -
104 - source: <pull.1967.git.1756911040439.gitgitgadget@gmail.com>
108 +* en/xdiff-cleanup (2025-09-07) 9 commits
109 + - xdiff: treat xdfile_t.rchg like an enum
110 + - xdiff: delete chastore from xdfile_t, view with --color-words
111 + - xdiff: delete fields ha, line, size in xdlclass_t in favor of an xrecord_t
112 + - xdiff: delete redundant array xdfile_t.ha
113 + - xdiff: delete struct diffdata_t
114 + - xdiff: delete xdl_get_rec() in xemit
115 + - xdiff: delete unnecessary fields from xrecord_t and xdfile_t
116 + - xdiff: delete local variables and initialize/free xdfile_t directly
117 + - xdiff: delete static forward declarations in xprepare
118 + (this branch is used by en/rust-xdiff.)
119
120 + A lot of code clean-up of xdiff.
121 + Split out of a larger topic.
122
107 -* ps/upload-pack-oom-protection (2025-09-04) 2 commits
108 - (merged to 'next' on 2025-09-08 at 2b543d9b53)
109 - + upload-pack: don't ACK non-commits repeatedly in protocol v2
110 - + t5530: modernize tests
123 + Expecting a (hopefully small and final) reroll.
124 + cf. <CABPp-BH-oaV+fJ4u50oofy54ycE5oKoYJ6O1XgEt_JfDSgXvxg@mail.gmail.com>
125 + source: <pull.2048.git.git.1757274320.gitgitgadget@gmail.com>
126
112 - A broken or malicious "git fetch" can say that it has the same
113 - object for many many times, and the upload-pack serving it can
114 - exhaust memory storing them redundantly, which has been corrected.
115 -
116 - source: <20250905-b4-pks-upload-pack-repeated-non-commit-acks-v2-0-d2e67f3cb94c@pks.im>
127
128 +* jc/3.0-default-initial-branch-to-main-addendum (2025-09-17) 1 commit
129 + - initial branch: give hints after switching the default name
130 + (this branch uses pw/3.0-default-initial-branch-to-main.)
131
119 -* rs/object-name-extend-abbrev-len-update (2025-09-04) 1 commit
120 - (merged to 'next' on 2025-09-08 at 469498c610)
121 - + object-name: declare pointer type of extend_abbrev_len()'s 2nd parameter
132 + Keep giving hint about the default initial branch name for users
133 + who may be surprised after Git 3.0 switchover.
134
123 - Code clean-up.
124 -
125 - source: <e0bc9a67-faa9-4218-a55a-c7d53c15cfce@web.de>
135 + Will merge to 'next'?
136 + source: <cover.1757518141.git.phillip.wood@dunelm.org.uk>
137
127 ---------------------------------------------------
128 -[New Topics]
138
130 -* je/doc-push (2025-09-12) 4 commits
131 - - doc: git-push: clarify "what to push"
132 - - doc: git-push: clarify "where to push"
133 - - doc: add an UPSTREAM BRANCHES section to pull/push/fetch
134 - - doc: git-push: clarify intro
139 +* nb/send-email-no-dup-reply-to (2025-09-16) 1 commit
140 + - send-email: don't duplicate Reply-to: in intro message
141
136 - Doc updates.
142 + "git send-email --compose --reply-to=<address>" used to add
143 + duplicated Reply-To: header, which made mailservers unhappy. This
144 + has been corrected.
145
138 - Comments?
139 - source: <pull.1964.v2.git.1757703309.gitgitgadget@gmail.com>
146 + Will merge to 'next'.
147 + source: <175809074627.1696783.67425889158412786@noble.neil.brown.name>
148
149 --------------------------------------------------
150 [Stalled]
@@ -172,19 +180,27 @@ well with other topics in 'seen' (and of course 'next' and
180 Ejected out of 'seen' for now.
181 source: <cover.1752882401.git.ayu.chandekar@gmail.com>
182
183 +--------------------------------------------------
184 +[Cooking]
185
176 -* tb/prepare-midx-pack-cleanup (2025-05-28) 5 commits
177 - . midx: return a `packed_git` pointer from `prepare_midx_pack()`
178 - . midx-write.c: extract inner loop from fill_packs_from_midx()
179 - . midx-write.c: guard against incremental MIDXs in want_included_pack()
180 - . midx: access pack names through `nth_midxed_pack_name()`
181 - . Merge branch 'ps/midx-negative-packfile-cache' into tb/prepare-midx-pack-cleanup
186 +* ar/submodule-gitdir-tweak (2025-09-08) 10 commits
187 + - t7425: add gitdir encoding tests
188 + - t7450: move nested gitdir tests to t7425
189 + - submodule: remove validate_submodule_git_dir()
190 + - submodule: error out if gitdir name is too long
191 + - submodule: encode gitdir paths to avoid conflicts
192 + - strbuf: bring back is_rfc3986_unreserved
193 + - t7425: add basic mixed submodule gitdir path tests
194 + - submodule: add gitdir path config override
195 + - submodule: create new gitdirs under submodules path
196 + - submodule--helper: use submodule_name_to_gitdir in add_submodule
197
183 - Improvement on Multi-pack-index API.
198 + Avoid local submodule repository directory paths overlapping with
199 + each other by encoding submodule names before using them as path
200 + components.
201
185 - Expecting a reroll.
186 - cf. <20250530065034.GC1321283@coredump.intra.peff.net>
187 - source: <cover.1748473122.git.me@ttaylorr.com>
202 + Comments?
203 + source: <20250908140117.262205-1-adrian.ratiu@collabora.com>
204
205
206 * cc/promisor-remote-capability (2025-09-07) 7 commits
@@ -205,25 +221,19 @@ well with other topics in 'seen' (and of course 'next' and
221 source: <20250908053056.956907-1-christian.couder@gmail.com>
222
223
208 -* ar/submodule-gitdir-tweak (2025-09-08) 10 commits
209 - - t7425: add gitdir encoding tests
210 - - t7450: move nested gitdir tests to t7425
211 - - submodule: remove validate_submodule_git_dir()
212 - - submodule: error out if gitdir name is too long
213 - - submodule: encode gitdir paths to avoid conflicts
214 - - strbuf: bring back is_rfc3986_unreserved
215 - - t7425: add basic mixed submodule gitdir path tests
216 - - submodule: add gitdir path config override
217 - - submodule: create new gitdirs under submodules path
218 - - submodule--helper: use submodule_name_to_gitdir in add_submodule
224 +* je/doc-push (2025-09-15) 5 commits
225 + - fixup! doc: add an UPSTREAM BRANCHES section to pull/push/fetch
226 + - doc: git-push: clarify "what to push"
227 + - doc: git-push: clarify "where to push"
228 + - doc: add an UPSTREAM BRANCHES section to pull/push/fetch
229 + - doc: git-push: clarify intro
230
220 - Avoid local submodule repository directory paths overlapping with
221 - each other by encoding submodule names before using them as path
222 - components.
223 - source: <20250908140117.262205-1-adrian.ratiu@collabora.com>
231 + Doc updates.
232 +
233 + Expecting a reroll.
234 + cf. <70034c35-8f08-4ee0-9017-7faf6f55ae14@app.fastmail.com>
235 + source: <pull.1964.v2.git.1757703309.gitgitgadget@gmail.com>
236
225 ---------------------------------------------------
226 -[Cooking]
237
238 * rs/get-oid-with-flags-cleanup (2025-09-10) 1 commit
239 (merged to 'next' on 2025-09-15 at ff8d1faae9)
@@ -256,7 +266,7 @@ well with other topics in 'seen' (and of course 'next' and
266 source: <20250910-b4-pks-clar-update-v1-1-26a196237e0a@pks.im>
267
268
259 -* ps/config-get-color-fixes (2025-09-11) 5 commits
269 +* ps/config-get-color-fixes (2025-09-15) 5 commits
270 - builtin/config: do not spawn pager when printing color codes
271 - builtin/config: special-case retrieving colors without a key
272 - builtin/config: do not die in `get_color()`
@@ -267,8 +277,8 @@ well with other topics in 'seen' (and of course 'next' and
277 sequence is for a particular type, e.g., "git config get
278 --type=color --default=reset no.such.thing", isn't very ergonomic.
279
270 - Comments?
271 - source: <20250911-pks-config-color-v1-0-3a7c79df65b1@pks.im>
280 + Will merge to 'next'?
281 + source: <20250915-pks-config-color-v2-0-e4290bd8d13c@pks.im>
282
283
284 * ps/meson-build-docs (2025-09-11) 3 commits
@@ -283,8 +293,7 @@ well with other topics in 'seen' (and of course 'next' and
293 source: <20250911-b4-pks-meson-docs-target-v1-0-a92c666ecef9@pks.im>
294
295
286 -* ps/odb-clean-stale-wrappers (2025-09-12) 2 commits
287 - - fixup! odb: drop deprecated wrapper functions
296 +* ps/odb-clean-stale-wrappers (2025-09-10) 1 commit
297 - odb: drop deprecated wrapper functions
298
299 Code clean-up.
@@ -294,7 +303,7 @@ well with other topics in 'seen' (and of course 'next' and
303 source: <20250910-b4-pks-odb-drop-wrappers-v1-1-6ed660cb1eec@pks.im>
304
305
297 -* jt/odb-transaction (2025-09-09) 7 commits
306 +* jt/odb-transaction (2025-09-16) 7 commits
307 - odb: add transaction interface
308 - object-file: update naming from bulk-checkin
309 - object-file: relocate ODB transaction code
@@ -307,8 +316,8 @@ well with other topics in 'seen' (and of course 'next' and
316 create many objects at once in a transaction and abstract it into
317 the generic object layer.
318
310 - Comments?
311 - source: <20250909191134.555689-1-jltobler@gmail.com>
319 + Will merge to 'next'?
320 + source: <20250916182938.2193476-1-jltobler@gmail.com>
321
322
323 * cc/fast-import-strip-signed-commits (2025-09-12) 2 commits
@@ -318,7 +327,8 @@ well with other topics in 'seen' (and of course 'next' and
327 "git fast-import" learned that "--signed-commits=<how>" option that
328 corresponds to that of "git fast-export".
329
321 - Comments?
330 + Expecting a (hopefully small and final) reroll.
331 + cf. <CAP8UFD3-3zjBBHP-Y9nLO-qEyhkWhD_pxFZhk6rzrC31LanDMQ@mail.gmail.com>
332 source: <20250912124042.2523683-1-christian.couder@gmail.com>
333
334
@@ -327,11 +337,12 @@ well with other topics in 'seen' (and of course 'next' and
337 - t9902: switch default branch name to main
338 - t4013: switch default branch name to main
339 - breaking-changes: switch default branch to main
340 + (this branch is used by jc/3.0-default-initial-branch-to-main-addendum.)
341
342 Declare that "git init" that is not otherwise configured uses
343 'main' as the initial branch, not 'master', starting Git 3.0.
344
334 - Comments?
345 + Will merge to 'next'?
346 source: <cover.1757518141.git.phillip.wood@dunelm.org.uk>
347
348
@@ -349,7 +360,7 @@ well with other topics in 'seen' (and of course 'next' and
360 source: <20250904-b4-pks-commit-graph-via-source-v1-0-d932c2481e1a@pks.im>
361
362
352 -* ps/rust-balloon (2025-09-10) 9 commits
363 +* ps/rust-balloon (2025-09-15) 9 commits
364 - ci: enable Rust for breaking-changes jobs
365 - ci: convert "pedantic" job into full build with breaking changes
366 - BreakingChanges: announce Rust becoming mandatory
@@ -363,8 +374,8 @@ well with other topics in 'seen' (and of course 'next' and
374 Dip our toes a bit to (optionally) use Rust implemented helper
375 called from our C code.
376
366 - Comments?
367 - source: <20250910-b4-pks-rust-breaking-change-v4-0-4a63fc69278d@pks.im>
377 + Will merge to 'next'?
378 + source: <20250915-b4-pks-rust-breaking-change-v5-0-dc3a32fbb216@pks.im>
379
380
381 * kh/doc-fast-import-markup-fix (2025-09-08) 1 commit
@@ -391,25 +402,25 @@ well with other topics in 'seen' (and of course 'next' and
402 source: <20250906075147.1076656-1-meetsoni3017@gmail.com>
403
404
394 -* sj/string-list (2025-09-07) 4 commits
405 +* sj/string-list (2025-09-17) 4 commits
406 - refs: enable sign compare warnings check
407 - string-list: change "string_list_find_insert_index" return type to "size_t"
408 - string-list: replace negative index encoding with "exact_match" parameter
398 - - string-list: allow passing NULL for `get_entry_index`
409 + - string-list: use bool instead of int for "exact_match"
410
411 The "string-list" API function to find where a given string would
412 be inserted got updated so that it can use unrealistically huge
413 array index that would only fit in size_t but not int or ssize_t
414 to achieve unstated goal.
415
405 - Expecting a reroll.
406 - source: <aL21kDwK-zGZyJ9q@ArchLinux>
416 + Will merge to 'next'?
417 + source: <aMp8yNFiXDyk2hP4@ArchLinux>
418
419
409 -* ps/packfile-store (2025-09-09) 16 commits
420 +* ps/packfile-store (2025-09-15) 16 commits
421 - packfile: refactor `get_packed_git_mru()` to work on packfile store
422 - packfile: refactor `get_all_packs()` to work on packfile store
412 - - packfile: remove `get_packed_git()`
423 + - packfile: refactor `get_packed_git()` to work on packfile store
424 - packfile: move `get_multi_pack_index()` into "midx.c"
425 - packfile: introduce function to load and add packfiles
426 - packfile: refactor `install_packed_git()` to work on packfile store
@@ -428,10 +439,11 @@ well with other topics in 'seen' (and of course 'next' and
439 object database(s).
440
441 Comments?
431 - source: <20250909-b4-pks-packfiles-store-v4-0-151c4ba3619f@pks.im>
442 + cf. <aMe_Zu1osrfDnSYL@pks.im>
443 + source: <20250915-b4-pks-packfiles-store-v5-0-d6340350934f@pks.im>
444
445
434 -* kn/refs-files-case-insensitive (2025-09-13) 4 commits
446 +* kn/refs-files-case-insensitive (2025-09-17) 4 commits
447 - refs/files: handle D/F conflicts during locking
448 - refs/files: handle F/D conflicts in case-insensitive FS
449 - refs/files: use correct error type when lock exists
@@ -441,8 +453,8 @@ well with other topics in 'seen' (and of course 'next' and
453 backend is used for ref storage, by failing only the ones that are
454 involved in the conflict while allowing others.
455
444 - Comments?
445 - source: <20250913-587-git-fetch-1-fails-fetches-on-case-insensitive-repositories-v3-0-195569740b57@gmail.com>
456 + Will merge to 'next'?
457 + source: <20250917-587-git-fetch-1-fails-fetches-on-case-insensitive-repositories-v4-0-da3c74a08ed0@gmail.com>
458
459
460 * ag/doc-sendmail-gmail-example-update (2025-08-26) 1 commit
@@ -455,7 +467,7 @@ well with other topics in 'seen' (and of course 'next' and
467 source: <20250826150919.5239-1-gargaditya08@live.com>
468
469
458 -* en/rust-xdiff (2025-09-07) 17 commits
470 +* en/rust-xdiff (2025-09-07) 9 commits
471 - xdiff: change the types of dstart, dend, rchg, and rindex in xdfile_t
472 - xdiff: make xdfile_t.nreff a usize instead of long
473 - xdiff: make xdfile_t.nrec a usize instead of long
@@ -464,17 +476,10 @@ well with other topics in 'seen' (and of course 'next' and
476 - xdiff: make xrecord_t.ptr a u8 instead of char
477 - xdiff: include compat/rust_types.h
478 - compat/rust_types.h: define rust primitive types
467 - - xdiff: treat xdfile_t.rchg like an enum
468 - - xdiff: delete chastore from xdfile_t, view with --color-words
469 - - xdiff: delete fields ha, line, size in xdlclass_t in favor of an xrecord_t
470 - - xdiff: delete redundant array xdfile_t.ha
471 - - xdiff: delete struct diffdata_t
472 - - xdiff: delete xdl_get_rec() in xemit
473 - - xdiff: delete unnecessary fields from xrecord_t and xdfile_t
474 - - xdiff: delete local variables and initialize/free xdfile_t directly
475 - - xdiff: delete static forward declarations in xprepare
479 + - Merge branch 'en/xdiff-cleanup' into en/rust-xdiff
480 + (this branch uses en/xdiff-cleanup.)
481
477 - Rust! Not Rust, though ;-)
482 + Use Rust-friendly types in xdiff code.
483
484 Comments?
485 source: <pull.2048.git.git.1757274320.gitgitgadget@gmail.com>
@@ -491,7 +496,8 @@ well with other topics in 'seen' (and of course 'next' and
496
497 Doc updates.
498
494 - Comments?
499 + Will merge to 'next'?
500 + cf. <236a79f4-e9a2-4335-bbff-79ae0cc67e9b@app.fastmail.com>
501 source: <pull.1962.v4.git.1757531669.gitgitgadget@gmail.com>
502
503
@@ -517,19 +523,20 @@ well with other topics in 'seen' (and of course 'next' and
523
524
525 * kh/you-still-use-whatchanged-fix (2025-09-14) 8 commits
520 - - BreakingChanges: remove claim about whatchanged reports
521 - - whatchanged: remove not-even-shorter clause
522 - - whatchanged: hint about git-log(1) and aliasing
523 - - you-still-use-that??: help the user help themselves
524 - - t0014: test shadowing of aliases for a sample of builtins
525 - - git: allow alias-shadowing deprecated builtins
526 - - git: move seen-alias bookkeeping into handle_alias(...)
527 - - git: add `deprecated` category to --list-cmds
526 + . BreakingChanges: remove claim about whatchanged reports
527 + . whatchanged: remove not-even-shorter clause
528 + . whatchanged: hint about git-log(1) and aliasing
529 + . you-still-use-that??: help the user help themselves
530 + . t0014: test shadowing of aliases for a sample of builtins
531 + . git: allow alias-shadowing deprecated builtins
532 + . git: move seen-alias bookkeeping into handle_alias(...)
533 + . git: add `deprecated` category to --list-cmds
534
535 Update "do you still use it?" message given by a command that is
536 deeply deprecated and allow us to suggest alternatives.
537
532 - Ready?
538 + Breaks 'seen' built with WITH_BREAKING_CHANGES.
539 + cf. <xmqqy0qffrri.fsf@gitster.g>
540 source: <cover.1757879060.git.code@khaugsbakk.name>
541
542
@@ -572,6 +579,7 @@ well with other topics in 'seen' (and of course 'next' and
579 + add-interactive: manually fall back color config to color.ui
580 + add-interactive: respect color.diff for diff coloring
581 + stash: pass --no-color to diff plumbing child processes
582 + (this branch is used by jk/color-variable-fixes.)
583
584 Some among "git add -p" and friends ignored color.diff and/or
585 color.ui configuration variables, which is an old regression, which