What's cooking (2025/09 #10)

Junio C Hamano committed Sep 25, 2025 at 13:56 UTC ff31f76f6cbaf0fcaf95cd0651004ac9ff83be6d
1 file changed +297 -232
whats-cooking.txt
+297 -232
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Sep 2025, #09; Mon, 22)
3 -X-master-at: ca2559c1d630eb4f04cdee2328aaf1c768907a9e
4 -X-next-at: b178f27e6ddfa8d515dcd445b6bf17119f962c44
2 +Subject: What's cooking in git.git (Sep 2025, #10; Thu, 25)
3 +X-master-at: bb69721404348ea2db0a081c41ab6ebfe75bdec8
4 +X-next-at: de9c8c526cb441e136815397089584f539713c71
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Sep 2025, #09; Mon, 22)
7 +What's cooking in git.git (Sep 2025, #10; Thu, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -45,39 +45,113 @@ Release tarballs are available at:
45
46 https://www.kernel.org/pub/software/scm/git/
47
48 +--------------------------------------------------
49 +[Graduated to 'master']
50 +
51 +* cc/promisor-remote-capability (2025-09-07) 7 commits
52 + (merged to 'next' on 2025-09-15 at 367d83c08c)
53 + + promisor-remote: use string_list_split() in mark_remotes_as_accepted()
54 + + promisor-remote: allow a client to check fields
55 + + promisor-remote: use string_list_split() in filter_promisor_remote()
56 + + promisor-remote: refactor how we parse advertised fields
57 + + promisor-remote: use string constants for 'name' and 'url' too
58 + + promisor-remote: allow a server to advertise more fields
59 + + promisor-remote: refactor to get rid of 'struct strvec'
60 +
61 + The "promisor-remote" capability mechanism has been updated to
62 + allow the "partialCloneFilter" settings and the "token" value to be
63 + communicated from the server side.
64 + source: <20250908053056.956907-1-christian.couder@gmail.com>
65 +
66 +
67 +* cs/subtree-squash-split-fix (2025-09-09) 1 commit
68 + (merged to 'next' on 2025-09-15 at 4206316342)
69 + + contrib/subtree: fix split with squashed subtrees
70 +
71 + "git subtree" (in contrib/) did not work correctly when splitting
72 + squashed subtrees, which has been improved.
73 + source: <20250910031124.1807856-1-ask+git@howdoi.land>
74 +
75 +
76 +* jk/add-i-color (2025-09-08) 4 commits
77 + (merged to 'next' on 2025-09-15 at 48aae5184a)
78 + + contrib/diff-highlight: mention interactive.diffFilter
79 + + add-interactive: manually fall back color config to color.ui
80 + + add-interactive: respect color.diff for diff coloring
81 + + stash: pass --no-color to diff plumbing child processes
82 + (this branch is used by jk/color-variable-fixes.)
83 +
84 + Some among "git add -p" and friends ignored color.diff and/or
85 + color.ui configuration variables, which is an old regression, which
86 + has been corrected.
87 + source: <20250908164157.GA1323487@coredump.intra.peff.net>
88 +
89 +
90 +* rs/get-oid-with-flags-cleanup (2025-09-10) 1 commit
91 + (merged to 'next' on 2025-09-15 at ff8d1faae9)
92 + + use repo_get_oid_with_flags()
93 +
94 + Code clean-up.
95 + source: <906196ac-2fd7-4c07-9e8f-22d67b0b64f9@web.de>
96 +
97 --------------------------------------------------
98 [New Topics]
99
51 -* jk/setup-revisions-freefix (2025-09-19) 6 commits
52 - (merged to 'next' on 2025-09-22 at b178f27e6d)
53 - + revision: retain argv NULL invariant in setup_revisions()
54 - + treewide: pass strvecs around for setup_revisions_from_strvec()
55 - + treewide: use setup_revisions_from_strvec() when we have a strvec
56 - + revision: add wrapper to setup_revisions() from a strvec
57 - + revision: manage memory ownership of argv in setup_revisions()
58 - + stash: tell setup_revisions() to free our allocated strings
100 +* kh/format-patch-range-diff-notes (2025-09-25) 3 commits
101 + - format-patch: handle range-diff on notes correctly for single patches
102 + - revision: add rdiff_log_arg to rev_info
103 + - range-diff: rename other_arg to log_arg
104
60 - There are double frees and leaks around setup_revisions() API used
61 - in "git stash show", which has been fixed, and setup_revisions()
62 - API gained a wrapper to make it more ergonomic when using it with
63 - strvec-manged argc/argv pairs.
105 + "git format-patch --range-diff=... --notes=..." did not drive the
106 + underlying range-diff with correct --notes parameter, ending up
107 + comparing with different set of notes from its main patch output
108 + you would get from "git format-patch --notes=..." for a singleton
109 + patch.
110
65 - Expecting a reroll to fix t3903
66 - cf. <xmqq1pnywkwv.fsf@gitster.g>
67 - source: <20250919223351.GA3906184@coredump.intra.peff.net>
111 + Will merge to 'next'?
112 + source: <v2-cover.1758819879.git.code@khaugsbakk.name>
113
114
70 -* js/curl-off-t-fixes (2025-09-21) 3 commits
71 - - http-push: avoid new compile error
72 - - imap-send: be more careful when casting to `curl_off_t`
73 - - http: offer to cast `size_t` to `curl_off_t` safely
115 +* je/doc-pull (2025-09-23) 4 commits
116 + - doc: git-pull: clarify how to exit a conflicted merge
117 + - doc: git-pull: delete the example
118 + - doc: git-pull: clarify options for integrating remote branch
119 + - doc: git-pull: move <repository> and <refspec> params
120
75 - A few places where an size_t value was cast to curl_off_t without
76 - checking has been updated to use the existing helper function.
121 + Documentation updates.
122 + source: <pull.1976.git.1758656702.gitgitgadget@gmail.com>
123
78 - Expecting a (hopefully small) reroll to clarify log message.
79 - cf. <pull.1974.git.1758457356.gitgitgadget@gmail.com>
80 - source: <pull.1974.git.1758457356.gitgitgadget@gmail.com>
124 +
125 +* je/doc-push-upstream (2025-09-23) 4 commits
126 + - doc: git-push: clarify "what to push"
127 + - doc: git-push: clarify "where to push"
128 + - doc: add an UPSTREAM BRANCHES section to pull/push/fetch
129 + - doc: git-push: clarify intro
130 +
131 + Documentation updates.
132 + source: <pull.1964.v3.git.1758649472.gitgitgadget@gmail.com>
133 +
134 +
135 +* jk/diff-no-index-with-pathspec-fix (2025-09-24) 1 commit
136 + - diff --no-index: fix logic for paths ending in '/'
137 +
138 + An earlier addition to "git diff --no-index A B" to limit the
139 + output with pathspec after the two directories misbehaved when
140 + these directories were given with a trailing slash, which has been
141 + corrected.
142 + source: <20250924-jk-fix-no-index-path-with-slash-v1-1-6b2028c0de92@intel.com>
143 +
144 +
145 +* jt/repo-stats (2025-09-24) 6 commits
146 + - builtin/repo: add progress meter for stats
147 + - builtin/repo: add keyvalue and nul format for stats
148 + - builtin/repo: add object counts in stats output
149 + - builtin/repo: introduce stats subcommand
150 + - ref-filter: allow NULL filter pattern
151 + - builtin/repo: rename repo_info() to cmd_repo_info()
152 +
153 + "git repo stats", a new command.
154 + source: <20250924212426.2930029-1-jltobler@gmail.com>
155
156 --------------------------------------------------
157 [Stalled]
@@ -116,6 +190,37 @@ well with other topics in 'seen' (and of course 'next' and
190 --------------------------------------------------
191 [Cooking]
192
193 +* jk/setup-revisions-freefix (2025-09-19) 6 commits
194 + (merged to 'next' on 2025-09-23 at e30036fad0)
195 + + revision: retain argv NULL invariant in setup_revisions()
196 + + treewide: pass strvecs around for setup_revisions_from_strvec()
197 + + treewide: use setup_revisions_from_strvec() when we have a strvec
198 + + revision: add wrapper to setup_revisions() from a strvec
199 + + revision: manage memory ownership of argv in setup_revisions()
200 + + stash: tell setup_revisions() to free our allocated strings
201 +
202 + There are double frees and leaks around setup_revisions() API used
203 + in "git stash show", which has been fixed, and setup_revisions()
204 + API gained a wrapper to make it more ergonomic when using it with
205 + strvec-manged argc/argv pairs.
206 +
207 + Will merge to 'master'.
208 + source: <20250919223351.GA3906184@coredump.intra.peff.net>
209 +
210 +
211 +* js/curl-off-t-fixes (2025-09-21) 3 commits
212 + - http-push: avoid new compile error
213 + - imap-send: be more careful when casting to `curl_off_t`
214 + - http: offer to cast `size_t` to `curl_off_t` safely
215 +
216 + A few places where an size_t value was cast to curl_off_t without
217 + checking has been updated to use the existing helper function.
218 +
219 + Expecting a (hopefully small) reroll to clarify log message.
220 + cf. <pull.1974.git.1758457356.gitgitgadget@gmail.com>
221 + source: <pull.1974.git.1758457356.gitgitgadget@gmail.com>
222 +
223 +
224 * kn/reftable-consistency-checks (2025-09-18) 9 commits
225 - fixup! reftable: check for trailing newline in 'tables.list'
226 - refs/reftable: add fsck check for checking the table name
@@ -130,7 +235,8 @@ well with other topics in 'seen' (and of course 'next' and
235 The reftable backend learned to sanity check its on-disk data more
236 carefully.
237
133 - Comments?
238 + Expecting a reroll.
239 + cf. <CAOLa=ZQMDjpMLeyHxeePY3VQjD1GhotXA6-GDhTNY_BDu4zSVQ@mail.gmail.com>
240 source: <20250918-228-reftable-introduce-consistency-checks-v3-0-271af03eb34d@gmail.com>
241
242
@@ -148,36 +254,37 @@ well with other topics in 'seen' (and of course 'next' and
254
255
256 * tc/last-modified-recursive-fix (2025-09-18) 1 commit
151 - - last-modified: fix bug when some paths remain unhandled
257 + (merged to 'next' on 2025-09-23 at 3be2b08060)
258 + + last-modified: fix bug when some paths remain unhandled
259
260 "git last-modified" operating in non-recursive mode used to trigger
261 a BUG(), which has been corrected.
262
156 - Will merge to 'next'.
263 + Will merge to 'master'.
264 source: <20250918-toon-fix-last-modified-v3-1-0c3910e224f6@iotcl.com>
265
266
267 * en/rust-wip (2025-09-16) 18 commits
161 - - misc::varint: reimplement as test balloon for Rust
162 - - misc: use BuildHelper
163 - - build: new crate, misc
164 - - varint: use explicit width for integers
165 - - build-helper: cbindgen, let crates generate a header file
166 - - build-helper: link against libgit.a and any other required C libraries
167 - - build: new crate, build-helper
168 - - github workflows: upload Cargo.lock
169 - - win+Meson: do allow linking with the Rust-built xdiff
170 - - github workflows: install rust
171 - - help: report on whether or not Rust is enabled
172 - - build: introduce rust
173 - - BreakingChanges: announce Rust becoming mandatory
174 - - doc: add a policy for using Rust
175 - - make: merge reftable lib into libgit.a
176 - - make: merge xdiff lib into libgit.a
177 - - make: add -fPIE flag
178 - - cleanup: rename variables that collide with Rust primitive type names
268 + . misc::varint: reimplement as test balloon for Rust
269 + . misc: use BuildHelper
270 + . build: new crate, misc
271 + . varint: use explicit width for integers
272 + . build-helper: cbindgen, let crates generate a header file
273 + . build-helper: link against libgit.a and any other required C libraries
274 + . build: new crate, build-helper
275 + . github workflows: upload Cargo.lock
276 + . win+Meson: do allow linking with the Rust-built xdiff
277 + . github workflows: install rust
278 + . help: report on whether or not Rust is enabled
279 + . build: introduce rust
280 + . BreakingChanges: announce Rust becoming mandatory
281 + . doc: add a policy for using Rust
282 + . make: merge reftable lib into libgit.a
283 + . make: merge xdiff lib into libgit.a
284 + . make: add -fPIE flag
285 + . cleanup: rename variables that collide with Rust primitive type names
286
180 - Expecting a reroll.
287 + Expecting a reroll, but probably xdiff stuff comes first?
288 source: <pull.2043.v2.git.git.1758071798.gitgitgadget@gmail.com>
289
290
@@ -195,51 +302,52 @@ well with other topics in 'seen' (and of course 'next' and
302
303 The beginning of SHA1-SHA256 interoperability work.
304
198 - Comments?
305 + Expecting a reroll.
306 + cf. <aNHB4V7figj9lmfk@fruit.crustytoothpaste.net>
307 source: <20250919010911.649831-1-sandals@crustytoothpaste.net>
308
309
202 -* pw/add-p-hunk-splitting-fix (2025-09-15) 2 commits
310 +* pw/add-p-hunk-splitting-fix (2025-09-25) 2 commits
311 - add-patch: update hunk splitability after editing
312 - add -p: mark split hunks as undecided
313
314 Marking a hunk 'selected' in "git add -p" and then splitting made
315 all the split pieces 'selected'; this has been changed to make them
208 - all 'undecided'.
316 + all 'undecided', which gives better end-user experience.
317
210 - Anybody wants to weign in to tiebreak on the BreakingChanges issue?
211 - cf. <xmqq4it2pep0.fsf@gitster.g>
212 - source: <pull.1863.v2.git.1757950144.gitgitgadget@gmail.com>
318 + Will merge to 'next'?
319 + source: <pull.1863.v3.git.1758813038.gitgitgadget@gmail.com>
320
321
322 * dk/stash-apply-index (2025-09-21) 4 commits
216 - - stash: honor stash.index in apply, pop modes
217 - - stash: refactor private config globals
218 - - t3905: remove unneeded blank line
219 - - t3903: reduce dependencies on previous tests
323 + (merged to 'next' on 2025-09-23 at 04e76cf5be)
324 + + stash: honor stash.index in apply, pop modes
325 + + stash: refactor private config globals
326 + + t3905: remove unneeded blank line
327 + + t3903: reduce dependencies on previous tests
328
329 The stash.index configuration variable can be set to make "git stash
330 pop/apply" pretend that it was invoked with "--index".
331
224 - Will merge to 'next'.
332 + Will merge to 'master'.
333 source: <cover.1758505011.git.ben.knoble+github@gmail.com>
334
335
336 * jk/color-variable-fixes (2025-09-16) 13 commits
229 - - config: store want_color() result in a separate bool
230 - - add-interactive: retain colorbool values longer
231 - - color: return bool from want_color()
232 - - color: use git_colorbool enum type to store colorbools
233 - - pretty: use format_commit_context.auto_color as colorbool
234 - - diff: stop passing ecbdata->use_color as boolean
235 - - diff: pass o->use_color directly to fill_metainfo()
236 - - diff: don't use diff_options.use_color as a strict bool
237 - - diff: simplify color_moved check when flushing
238 - - grep: don't treat grep_opt.color as a strict bool
239 - - color: return enum from git_config_colorbool()
240 - - color: use GIT_COLOR_* instead of numeric constants
241 - - Merge branch 'jk/add-i-color' into jk/color-variable-fixes
242 - (this branch uses jk/add-i-color.)
337 + (merged to 'next' on 2025-09-23 at 8aa3006a1e)
338 + + config: store want_color() result in a separate bool
339 + + add-interactive: retain colorbool values longer
340 + + color: return bool from want_color()
341 + + color: use git_colorbool enum type to store colorbools
342 + + pretty: use format_commit_context.auto_color as colorbool
343 + + diff: stop passing ecbdata->use_color as boolean
344 + + diff: pass o->use_color directly to fill_metainfo()
345 + + diff: don't use diff_options.use_color as a strict bool
346 + + diff: simplify color_moved check when flushing
347 + + grep: don't treat grep_opt.color as a strict bool
348 + + color: return enum from git_config_colorbool()
349 + + color: use GIT_COLOR_* instead of numeric constants
350 + + Merge branch 'jk/add-i-color' into jk/color-variable-fixes
351
352 Some places in the code confused a variable that is *not* a boolean
353 to enable color but is an enum that records what the user requested
@@ -247,29 +355,32 @@ well with other topics in 'seen' (and of course 'next' and
355 while the code has been cleaned up to prevent similar bugs in the
356 future.
357
250 - Will merge to 'next'.
358 + Will merge to 'master'.
359 source: <20250916201036.GA612463@coredump.intra.peff.net>
360 source: <20250916202408.GI612873@coredump.intra.peff.net>
361
362
255 -* en/xdiff-cleanup (2025-09-19) 10 commits
256 - - xdiff: treat xdfile_t.rchg like an enum
363 +* en/xdiff-cleanup (2025-09-23) 13 commits
364 + - xdiff: change type of xdfile_t.changed from char to bool
365 + - xdiff: use enum macros NONE(0), SOME(1), TOO_MANY(2) in xprepare.c
366 + - xdiff: rename rchg -> changed in xdfile_t
367 - xdiff: delete rchg aliasing
368 - xdiff: delete chastore from xdfile_t
369 - xdiff: delete fields ha, line, size in xdlclass_t in favor of an xrecord_t
370 - xdiff: delete redundant array xdfile_t.ha
371 - xdiff: delete struct diffdata_t
262 - - xdiff: delete xdl_get_rec() in xemit
372 + - xdiff: delete superfluous local variables that alias fields in xrecord_t
373 + - xdiff: delete superfluous function xdl_get_rec() in xemit
374 - xdiff: delete unnecessary fields from xrecord_t and xdfile_t
375 - xdiff: delete local variables and initialize/free xdfile_t directly
376 - xdiff: delete static forward declarations in xprepare
266 - (this branch is used by en/rust-xdiff.)
377
378 A lot of code clean-up of xdiff.
379 Split out of a larger topic.
380
271 - Will merge to 'next'.
272 - source: <pull.2048.v3.git.git.1758294992.gitgitgadget@gmail.com>
381 + Expecting a reroll with better log messages.
382 + cf. <CAH=ZcbC-cB35AGmiKgEQdFa5ee+DftwOQ_dUe4=T+Vq-dxR+qQ@mail.gmail.com>
383 + source: <pull.2048.v5.git.git.1758662670.gitgitgadget@gmail.com>
384
385
386 * jc/3.0-default-initial-branch-to-main-addendum (2025-09-17) 1 commit
@@ -317,53 +428,14 @@ well with other topics in 'seen' (and of course 'next' and
428 source: <20250908140117.262205-1-adrian.ratiu@collabora.com>
429
430
320 -* cc/promisor-remote-capability (2025-09-07) 7 commits
321 - (merged to 'next' on 2025-09-15 at 367d83c08c)
322 - + promisor-remote: use string_list_split() in mark_remotes_as_accepted()
323 - + promisor-remote: allow a client to check fields
324 - + promisor-remote: use string_list_split() in filter_promisor_remote()
325 - + promisor-remote: refactor how we parse advertised fields
326 - + promisor-remote: use string constants for 'name' and 'url' too
327 - + promisor-remote: allow a server to advertise more fields
328 - + promisor-remote: refactor to get rid of 'struct strvec'
329 -
330 - The "promisor-remote" capability mechanism has been updated to
331 - allow the "partialCloneFilter" settings and the "token" value to be
332 - communicated from the server side.
333 -
334 - Will merge to 'master'.
335 - source: <20250908053056.956907-1-christian.couder@gmail.com>
336 -
337 -
338 -* je/doc-push (2025-09-17) 2 commits
431 +* je/doc-push (2025-09-23) 2 commits
432 - doc: git-push: rewrite refspec specification
433 - doc: git-push: create PUSH RULES section
434
435 Doc updates.
436
437 Will merge to 'next'.
345 - source: <pull.1973.git.1758144815.gitgitgadget@gmail.com>
346 -
347 -
348 -* rs/get-oid-with-flags-cleanup (2025-09-10) 1 commit
349 - (merged to 'next' on 2025-09-15 at ff8d1faae9)
350 - + use repo_get_oid_with_flags()
351 -
352 - Code clean-up.
353 -
354 - Will merge to 'master'.
355 - source: <906196ac-2fd7-4c07-9e8f-22d67b0b64f9@web.de>
356 -
357 -
358 -* cs/subtree-squash-split-fix (2025-09-09) 1 commit
359 - (merged to 'next' on 2025-09-15 at 4206316342)
360 - + contrib/subtree: fix split with squashed subtrees
361 -
362 - "git subtree" (in contrib/) did not work correctly when splitting
363 - squashed subtrees, which has been improved.
364 -
365 - Will merge to 'master'.
366 - source: <20250910031124.1807856-1-ask+git@howdoi.land>
438 + source: <pull.1973.v2.git.1758651049.gitgitgadget@gmail.com>
439
440
441 * ps/clar-updates (2025-09-22) 2 commits
@@ -380,29 +452,31 @@ well with other topics in 'seen' (and of course 'next' and
452
453
454 * ps/config-get-color-fixes (2025-09-22) 5 commits
383 - - builtin/config: do not spawn pager when printing color codes
384 - - builtin/config: special-case retrieving colors without a key
385 - - builtin/config: do not die in `get_color()`
386 - - t1300: small style fixups
387 - - t1300: write test expectations in the test's body
455 + (merged to 'next' on 2025-09-25 at 7b69f57ef6)
456 + + builtin/config: do not spawn pager when printing color codes
457 + + builtin/config: special-case retrieving colors without a key
458 + + builtin/config: do not die in `get_color()`
459 + + t1300: small style fixups
460 + + t1300: write test expectations in the test's body
461
462 The use of "git config get" command to learn how ANSI color
463 sequence is for a particular type, e.g., "git config get
464 --type=color --default=reset no.such.thing", isn't very ergonomic.
465
393 - Will merge to 'next'.
466 + Will merge to 'master'.
467 source: <20250922-pks-config-color-v4-0-28b7d2697eed@pks.im>
468
469
470 * ps/meson-build-docs (2025-09-11) 3 commits
398 - - ci: don't compile whole project when testing docs with Meson
399 - - meson: print docs backend as part of the summary
400 - - meson: introduce a "docs" alias to compile documentation only
471 + (merged to 'next' on 2025-09-25 at d531b1afdc)
472 + + ci: don't compile whole project when testing docs with Meson
473 + + meson: print docs backend as part of the summary
474 + + meson: introduce a "docs" alias to compile documentation only
475
476 The build procedure based on meson learned a target to only build
477 documentation, similar to "make doc".
478
405 - Will merge to 'next'.
479 + Will merge to 'master'.
480 source: <20250911-b4-pks-meson-docs-target-v1-0-a92c666ecef9@pks.im>
481
482
@@ -411,36 +485,37 @@ well with other topics in 'seen' (and of course 'next' and
485
486 Code clean-up.
487
414 - Breaks build when merged to 'seen'.
415 - cf. <20250910153759.GA562601@coredump.intra.peff.net>
488 + Will merge to 'next'.
489 source: <20250910-b4-pks-odb-drop-wrappers-v1-1-6ed660cb1eec@pks.im>
490
491
492 * jt/odb-transaction (2025-09-16) 7 commits
420 - - odb: add transaction interface
421 - - object-file: update naming from bulk-checkin
422 - - object-file: relocate ODB transaction code
423 - - bulk-checkin: drop flush_odb_transaction()
424 - - builtin/update-index: end ODB transaction when --verbose is specified
425 - - bulk-checkin: remove ODB transaction nesting
426 - - Merge branch 'jt/de-global-bulk-checkin' into jt/odb-transaction
493 + (merged to 'next' on 2025-09-25 at 1a5c704fb9)
494 + + odb: add transaction interface
495 + + object-file: update naming from bulk-checkin
496 + + object-file: relocate ODB transaction code
497 + + bulk-checkin: drop flush_odb_transaction()
498 + + builtin/update-index: end ODB transaction when --verbose is specified
499 + + bulk-checkin: remove ODB transaction nesting
500 + + Merge branch 'jt/de-global-bulk-checkin' into jt/odb-transaction
501
502 Continue the work to build on the bulk-checkin infrastructure to
503 create many objects at once in a transaction and abstract it into
504 the generic object layer.
505
432 - Will merge to 'next'.
506 + Will merge to 'master'.
507 source: <20250916182938.2193476-1-jltobler@gmail.com>
508
509
510 * cc/fast-import-strip-signed-commits (2025-09-17) 2 commits
437 - - fast-import: add '--signed-commits=<mode>' option
438 - - gpg-interface: refactor 'enum sign_mode' parsing
511 + (merged to 'next' on 2025-09-25 at 6c9a275f43)
512 + + fast-import: add '--signed-commits=<mode>' option
513 + + gpg-interface: refactor 'enum sign_mode' parsing
514
515 "git fast-import" learned that "--signed-commits=<how>" option that
516 corresponds to that of "git fast-export".
517
443 - Will merge to 'next'.
518 + Will merge to 'master'.
519 source: <20250917181427.3193500-1-christian.couder@gmail.com>
520
521
@@ -469,43 +544,45 @@ well with other topics in 'seen' (and of course 'next' and
544
545 Declare commit-graph is per object_source, which may not be a good idea.
546
547 + Comments?
548 cf. <cf7aeda1-297a-4805-b0ae-e379ce11bbcf@gmail.com>
549 source: <20250904-b4-pks-commit-graph-via-source-v1-0-d932c2481e1a@pks.im>
550
551
476 -* ps/rust-balloon (2025-09-15) 9 commits
477 - . ci: enable Rust for breaking-changes jobs
478 - . ci: convert "pedantic" job into full build with breaking changes
479 - . BreakingChanges: announce Rust becoming mandatory
480 - . varint: reimplement as test balloon for Rust
481 - . varint: use explicit width for integers
482 - . help: report on whether or not Rust is enabled
483 - . Makefile: introduce infrastructure to build internal Rust library
484 - . Makefile: reorder sources after includes
485 - . meson: add infrastructure to build internal Rust library
552 +* ps/rust-balloon (2025-09-24) 9 commits
553 + - ci: enable Rust for breaking-changes jobs
554 + - ci: convert "pedantic" job into full build with breaking changes
555 + - BreakingChanges: announce Rust becoming mandatory
556 + - varint: reimplement as test balloon for Rust
557 + - varint: use explicit width for integers
558 + - help: report on whether or not Rust is enabled
559 + - Makefile: introduce infrastructure to build internal Rust library
560 + - Makefile: reorder sources after includes
561 + - meson: add infrastructure to build internal Rust library
562
563 Dip our toes a bit to (optionally) use Rust implemented helper
564 called from our C code.
565
490 - Retracted, to join forces in en/*rust* topic.
491 - source: <20250915-b4-pks-rust-breaking-change-v5-0-dc3a32fbb216@pks.im>
566 + Comments?
567 + source: <20250925-b4-pks-rust-breaking-change-v7-0-4e49dcb904d5@pks.im>
568
569
570 * ms/refs-optimize (2025-09-19) 9 commits
495 - - t: add test for git refs optimize subcommand
496 - - t0601: refactor tests to be shareable
497 - - builtin/refs: add optimize subcommand
498 - - doc: pack-refs: factor out common options
499 - - builtin/pack-refs: factor out core logic into a shared library
500 - - builtin/pack-refs: convert to use the generic refs_optimize() API
501 - - reftable-backend: implement 'optimize' action
502 - - files-backend: implement 'optimize' action
503 - - refs: add a generic 'optimize' API
571 + (merged to 'next' on 2025-09-25 at 5fd0825882)
572 + + t: add test for git refs optimize subcommand
573 + + t0601: refactor tests to be shareable
574 + + builtin/refs: add optimize subcommand
575 + + doc: pack-refs: factor out common options
576 + + builtin/pack-refs: factor out core logic into a shared library
577 + + builtin/pack-refs: convert to use the generic refs_optimize() API
578 + + reftable-backend: implement 'optimize' action
579 + + files-backend: implement 'optimize' action
580 + + refs: add a generic 'optimize' API
581
582 "git refs optimize" is added for not very well explained reason
583 despite it does the same thing as "git pack-refs"...
584
508 - Will merge to 'next'.
585 + Will merge to 'master'.
586 source: <20250919082647.535213-1-meetsoni3017@gmail.com>
587
588
@@ -520,11 +597,12 @@ well with other topics in 'seen' (and of course 'next' and
597 array index that would only fit in size_t but not int or ssize_t
598 to achieve unstated goal.
599
523 - Will merge to 'next'.
600 + Expecting a reroll.
601 + cf. <CAOLa=ZShms1D-cq=x04dtT2ULTVE3ZDo8DODFnJRP2wcJz0EgQ@mail.gmail.com>
602 source: <aMp8yNFiXDyk2hP4@ArchLinux>
603
604
527 -* ps/packfile-store (2025-09-15) 16 commits
605 +* ps/packfile-store (2025-09-23) 16 commits
606 - packfile: refactor `get_packed_git_mru()` to work on packfile store
607 - packfile: refactor `get_all_packs()` to work on packfile store
608 - packfile: refactor `get_packed_git()` to work on packfile store
@@ -545,106 +623,93 @@ well with other topics in 'seen' (and of course 'next' and
623 Code clean-up around the in-core list of all the pack files and
624 object database(s).
625
548 - Expecting a reroll.
549 - cf. <aMe_Zu1osrfDnSYL@pks.im>
550 - source: <20250915-b4-pks-packfiles-store-v5-0-d6340350934f@pks.im>
626 + Will merge to 'next'.
627 + source: <20250923-b4-pks-packfiles-store-v6-0-b48f2a882759@pks.im>
628
629
630 * kn/refs-files-case-insensitive (2025-09-17) 4 commits
554 - - refs/files: handle D/F conflicts during locking
555 - - refs/files: handle F/D conflicts in case-insensitive FS
556 - - refs/files: use correct error type when lock exists
557 - - refs/files: catch conflicts on case-insensitive file-systems
631 + (merged to 'next' on 2025-09-23 at 51c2a665f0)
632 + + refs/files: handle D/F conflicts during locking
633 + + refs/files: handle F/D conflicts in case-insensitive FS
634 + + refs/files: use correct error type when lock exists
635 + + refs/files: catch conflicts on case-insensitive file-systems
636
637 Deal more gracefully with directory / file conflicts when the files
638 backend is used for ref storage, by failing only the ones that are
639 involved in the conflict while allowing others.
640
563 - Will merge to 'next'.
641 + Will merge to 'master'.
642 source: <20250917-587-git-fetch-1-fails-fetches-on-case-insensitive-repositories-v4-0-da3c74a08ed0@gmail.com>
643
644
567 -* en/rust-xdiff (2025-09-07) 9 commits
568 - - xdiff: change the types of dstart, dend, rchg, and rindex in xdfile_t
569 - - xdiff: make xdfile_t.nreff a usize instead of long
570 - - xdiff: make xdfile_t.nrec a usize instead of long
571 - - xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash
572 - - xdiff: make xrecord_t.size a usize instead of long
573 - - xdiff: make xrecord_t.ptr a u8 instead of char
574 - - xdiff: include compat/rust_types.h
575 - - compat/rust_types.h: define rust primitive types
576 - - Merge branch 'en/xdiff-cleanup' into en/rust-xdiff
577 - (this branch uses en/xdiff-cleanup.)
645 +* en/rust-xdiff (2025-09-07) 8 commits
646 + . xdiff: change the types of dstart, dend, rchg, and rindex in xdfile_t
647 + . xdiff: make xdfile_t.nreff a usize instead of long
648 + . xdiff: make xdfile_t.nrec a usize instead of long
649 + . xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash
650 + . xdiff: make xrecord_t.size a usize instead of long
651 + . xdiff: make xrecord_t.ptr a u8 instead of char
652 + . xdiff: include compat/rust_types.h
653 + . compat/rust_types.h: define rust primitive types
654 + . Merge branch 'en/xdiff-cleanup' into en/rust-xdiff
655
656 Use Rust-friendly types in xdiff code.
657
581 - Expecting a reroll.
658 + Expecting a reroll based on the updated base topic, but the base
659 + topic may further be updated first?
660 cf. <CAH=ZcbA5hAM9kmO410KzVW7RXWWiwX2oJk6GGPP+6oVYatRVOw@mail.gmail.com>
661 source: <pull.2048.git.git.1757274320.gitgitgadget@gmail.com>
662
663
664 * je/doc-checkout (2025-09-10) 7 commits
587 - - doc: git-checkout: clarify restoring files section
588 - - doc: git-checkout: split up restoring files section
589 - - doc: git-checkout: deduplicate --detach explanation
590 - - doc: git-checkout: clarify `-b` and `-B`
591 - - doc: git-checkout: clarify `git checkout <branch>`
592 - - doc: git-checkout: clarify ARGUMENT DISAMBIGUATION
593 - - doc: git-checkout: clarify intro sentence
665 + (merged to 'next' on 2025-09-23 at b776ac7a24)
666 + + doc: git-checkout: clarify restoring files section
667 + + doc: git-checkout: split up restoring files section
668 + + doc: git-checkout: deduplicate --detach explanation
669 + + doc: git-checkout: clarify `-b` and `-B`
670 + + doc: git-checkout: clarify `git checkout <branch>`
671 + + doc: git-checkout: clarify ARGUMENT DISAMBIGUATION
672 + + doc: git-checkout: clarify intro sentence
673
674 Doc updates.
675
597 - Will merge to 'next'.
676 + Will merge to 'master'.
677 cf. <236a79f4-e9a2-4335-bbff-79ae0cc67e9b@app.fastmail.com>
678 source: <pull.1962.v4.git.1757531669.gitgitgadget@gmail.com>
679
680
681 * kh/you-still-use-whatchanged-fix (2025-09-17) 9 commits
603 - - BreakingChanges: remove claim about whatchanged reports
604 - - whatchanged: remove not-even-shorter clause
605 - - whatchanged: hint about git-log(1) and aliasing
606 - - you-still-use-that??: help the user help themselves
607 - - t0014: test shadowing of aliases for a sample of builtins
608 - - git: allow alias-shadowing deprecated builtins
609 - - git: move seen-alias bookkeeping into handle_alias(...)
610 - - git: add `deprecated` category to --list-cmds
611 - - Makefile: don’t add whatchanged after it has been removed
682 + (merged to 'next' on 2025-09-25 at de9c8c526c)
683 + + BreakingChanges: remove claim about whatchanged reports
684 + + whatchanged: remove not-even-shorter clause
685 + + whatchanged: hint about git-log(1) and aliasing
686 + + you-still-use-that??: help the user help themselves
687 + + t0014: test shadowing of aliases for a sample of builtins
688 + + git: allow alias-shadowing deprecated builtins
689 + + git: move seen-alias bookkeeping into handle_alias(...)
690 + + git: add `deprecated` category to --list-cmds
691 + + Makefile: don’t add whatchanged after it has been removed
692
693 Update "do you still use it?" message given by a command that is
694 deeply deprecated and allow us to suggest alternatives.
695
616 - Will merge to 'next'.
617 - source: <cover.1758139856.short.code@khaugsbakk.name>
618 -
619 -
620 -* jk/add-i-color (2025-09-08) 4 commits
621 - (merged to 'next' on 2025-09-15 at 48aae5184a)
622 - + contrib/diff-highlight: mention interactive.diffFilter
623 - + add-interactive: manually fall back color config to color.ui
624 - + add-interactive: respect color.diff for diff coloring
625 - + stash: pass --no-color to diff plumbing child processes
626 - (this branch is used by jk/color-variable-fixes.)
627 -
628 - Some among "git add -p" and friends ignored color.diff and/or
629 - color.ui configuration variables, which is an old regression, which
630 - has been corrected.
631 -
696 Will merge to 'master'.
633 - source: <20250908164157.GA1323487@coredump.intra.peff.net>
697 + source: <cover.1758139856.short.code@khaugsbakk.name>
698
699
700 * ds/sparse-checkout-clean (2025-09-12) 7 commits
637 - - t: expand tests around sparse merges and clean
638 - - sparse-index: point users to new 'clean' action
639 - - sparse-checkout: add --verbose option to 'clean'
640 - - dir: add generic "walk all files" helper
641 - - sparse-checkout: match some 'clean' behavior
642 - - sparse-checkout: add basics of 'clean' command
643 - - sparse-checkout: remove use of the_repository
701 + (merged to 'next' on 2025-09-25 at 00b296f153)
702 + + t: expand tests around sparse merges and clean
703 + + sparse-index: point users to new 'clean' action
704 + + sparse-checkout: add --verbose option to 'clean'
705 + + dir: add generic "walk all files" helper
706 + + sparse-checkout: match some 'clean' behavior
707 + + sparse-checkout: add basics of 'clean' command
708 + + sparse-checkout: remove use of the_repository
709
710 "git sparse-checkout" subcommand learned a new "clean" action to
711 prune otherwise unused working-tree files that are outside the
712 areas of interest.
713
649 - Will merge to 'next'.
714 + Will merge to 'master'.
715 source: <pull.1941.v3.git.1757673011.gitgitgadget@gmail.com>