What's cooking (2025/09 #11)

Junio C Hamano committed Sep 29, 2025 at 13:11 UTC eb9108a96de8be94b9dc94a79ea4c4bcb530e07f
1 file changed +342 -329
whats-cooking.txt
+342 -329
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Sep 2025, #10; Thu, 25)
3 -X-master-at: bb69721404348ea2db0a081c41ab6ebfe75bdec8
4 -X-next-at: de9c8c526cb441e136815397089584f539713c71
2 +Subject: What's cooking in git.git (Sep 2025, #11; Mon, 29)
3 +X-master-at: 821f583da6d30a84249f75f33501504d597bc16b
4 +X-next-at: 236ee7b076decfb1705c4b47c2af13735720bd19
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Sep 2025, #10; Thu, 25)
7 +What's cooking in git.git (Sep 2025, #11; Mon, 29)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -48,110 +48,226 @@ Release tarballs are available at:
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
51 +* dk/stash-apply-index (2025-09-21) 4 commits
52 + (merged to 'next' on 2025-09-23 at 04e76cf5be)
53 + + stash: honor stash.index in apply, pop modes
54 + + stash: refactor private config globals
55 + + t3905: remove unneeded blank line
56 + + t3903: reduce dependencies on previous tests
57 +
58 + The stash.index configuration variable can be set to make "git stash
59 + pop/apply" pretend that it was invoked with "--index".
60 + source: <cover.1758505011.git.ben.knoble+github@gmail.com>
61 +
62 +
63 +* jc/3.0-default-initial-branch-to-main-addendum (2025-09-17) 1 commit
64 + (merged to 'next' on 2025-09-22 at dc4168c337)
65 + + initial branch: give hints after switching the default name
66 + (this branch uses pw/3.0-default-initial-branch-to-main.)
67 +
68 + Keep giving hint about the default initial branch name for users
69 + who may be surprised after Git 3.0 switch-over.
70 + source: <cover.1757518141.git.phillip.wood@dunelm.org.uk>
71 +
72 +
73 +* je/doc-checkout (2025-09-10) 7 commits
74 + (merged to 'next' on 2025-09-23 at b776ac7a24)
75 + + doc: git-checkout: clarify restoring files section
76 + + doc: git-checkout: split up restoring files section
77 + + doc: git-checkout: deduplicate --detach explanation
78 + + doc: git-checkout: clarify `-b` and `-B`
79 + + doc: git-checkout: clarify `git checkout <branch>`
80 + + doc: git-checkout: clarify ARGUMENT DISAMBIGUATION
81 + + doc: git-checkout: clarify intro sentence
82 +
83 + Doc updates.
84 + cf. <236a79f4-e9a2-4335-bbff-79ae0cc67e9b@app.fastmail.com>
85 + source: <pull.1962.v4.git.1757531669.gitgitgadget@gmail.com>
86 +
87 +
88 +* jk/color-variable-fixes (2025-09-16) 13 commits
89 + (merged to 'next' on 2025-09-23 at 8aa3006a1e)
90 + + config: store want_color() result in a separate bool
91 + + add-interactive: retain colorbool values longer
92 + + color: return bool from want_color()
93 + + color: use git_colorbool enum type to store colorbools
94 + + pretty: use format_commit_context.auto_color as colorbool
95 + + diff: stop passing ecbdata->use_color as boolean
96 + + diff: pass o->use_color directly to fill_metainfo()
97 + + diff: don't use diff_options.use_color as a strict bool
98 + + diff: simplify color_moved check when flushing
99 + + grep: don't treat grep_opt.color as a strict bool
100 + + color: return enum from git_config_colorbool()
101 + + color: use GIT_COLOR_* instead of numeric constants
102 + + Merge branch 'jk/add-i-color' into jk/color-variable-fixes
103 +
104 + Some places in the code confused a variable that is *not* a boolean
105 + to enable color but is an enum that records what the user requested
106 + to do about color. A couple of bugs of this sort have been fixed,
107 + while the code has been cleaned up to prevent similar bugs in the
108 + future.
109 + source: <20250916201036.GA612463@coredump.intra.peff.net>
110 + source: <20250916202408.GI612873@coredump.intra.peff.net>
111 +
112 +
113 +* jk/setup-revisions-freefix (2025-09-19) 6 commits
114 + (merged to 'next' on 2025-09-23 at e30036fad0)
115 + + revision: retain argv NULL invariant in setup_revisions()
116 + + treewide: pass strvecs around for setup_revisions_from_strvec()
117 + + treewide: use setup_revisions_from_strvec() when we have a strvec
118 + + revision: add wrapper to setup_revisions() from a strvec
119 + + revision: manage memory ownership of argv in setup_revisions()
120 + + stash: tell setup_revisions() to free our allocated strings
121 +
122 + There are double frees and leaks around setup_revisions() API used
123 + in "git stash show", which has been fixed, and setup_revisions()
124 + API gained a wrapper to make it more ergonomic when using it with
125 + strvec-manged argc/argv pairs.
126 + source: <20250919223351.GA3906184@coredump.intra.peff.net>
127 +
128 +
129 +* kn/refs-files-case-insensitive (2025-09-17) 4 commits
130 + (merged to 'next' on 2025-09-23 at 51c2a665f0)
131 + + refs/files: handle D/F conflicts during locking
132 + + refs/files: handle F/D conflicts in case-insensitive FS
133 + + refs/files: use correct error type when lock exists
134 + + refs/files: catch conflicts on case-insensitive file-systems
135 +
136 + Deal more gracefully with directory / file conflicts when the files
137 + backend is used for ref storage, by failing only the ones that are
138 + involved in the conflict while allowing others.
139 + source: <20250917-587-git-fetch-1-fails-fetches-on-case-insensitive-repositories-v4-0-da3c74a08ed0@gmail.com>
140 +
141 +
142 +* nb/send-email-no-dup-reply-to (2025-09-16) 1 commit
143 + (merged to 'next' on 2025-09-18 at d7081e00ec)
144 + + send-email: don't duplicate Reply-to: in intro message
145 +
146 + "git send-email --compose --reply-to=<address>" used to add
147 + duplicated Reply-To: header, which made mailservers unhappy. This
148 has been corrected.
87 - source: <20250908164157.GA1323487@coredump.intra.peff.net>
149 + source: <175809074627.1696783.67425889158412786@noble.neil.brown.name>
150
151
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()
152 +* ps/clar-updates (2025-09-22) 2 commits
153 + (merged to 'next' on 2025-09-22 at c811e8c172)
154 + + t/unit-tests: update to 10e96bc
155 + (merged to 'next' on 2025-09-15 at 73402f7652)
156 + + t/unit-tests: update clar to fcbed04
157
94 - Code clean-up.
95 - source: <906196ac-2fd7-4c07-9e8f-22d67b0b64f9@web.de>
158 + Import a newer version of the clar unit testing framework.
159 + source: <20250910-b4-pks-clar-update-v1-1-26a196237e0a@pks.im>
160 + source: <20250922-pks-clar-update-v1-1-9154e7d1b7a1@pks.im>
161 +
162 +
163 +* pw/3.0-default-initial-branch-to-main (2025-09-10) 4 commits
164 + (merged to 'next' on 2025-09-22 at 01bbebdab6)
165 + + t0613: stop setting default initial branch
166 + + t9902: switch default branch name to main
167 + + t4013: switch default branch name to main
168 + + breaking-changes: switch default branch to main
169 + (this branch is used by jc/3.0-default-initial-branch-to-main-addendum.)
170 +
171 + Declare that "git init" that is not otherwise configured uses
172 + 'main' as the initial branch, not 'master', starting Git 3.0.
173 + source: <cover.1757518141.git.phillip.wood@dunelm.org.uk>
174 +
175 +
176 +* pw/rebase-i-cleanup-fix (2025-09-18) 2 commits
177 + (merged to 'next' on 2025-09-22 at 2d0aec7821)
178 + + sequencer: remove VERBATIM_MSG flag
179 + + rebase -i: respect commit.cleanup when picking fixups
180 +
181 + "git rebase -i" failed to clean-up the commit log message when the
182 + command commits the final one in a chain of "fixup" commands, which
183 + has been corrected.
184 + source: <cover.1758186038.git.phillip.wood@dunelm.org.uk>
185 +
186 +
187 +* tc/last-modified-recursive-fix (2025-09-18) 1 commit
188 + (merged to 'next' on 2025-09-23 at 3be2b08060)
189 + + last-modified: fix bug when some paths remain unhandled
190 +
191 + "git last-modified" operating in non-recursive mode used to trigger
192 + a BUG(), which has been corrected.
193 + source: <20250918-toon-fix-last-modified-v3-1-0c3910e224f6@iotcl.com>
194
195 --------------------------------------------------
196 [New Topics]
197
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
198 +* rj/doc-missing-technical-docs (2025-09-25) 1 commit
199 + - doc: add some missing technical documents
200 + (this branch is used by rj/doc-technical-rfc.)
201
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.
202 + Doc updates.
203
204 Will merge to 'next'?
112 - source: <v2-cover.1758819879.git.code@khaugsbakk.name>
205 + source: <2326e1c8-19a3-4454-ab71-0a6cfa8cf8e9@ramsayjones.plus.com>
206
207
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
208 +* rj/doc-technical-rfc (2025-09-25) 3 commits
209 + - doc: commit-graph.adoc: fix up some formatting
210 + - doc: sparse-checkout.adoc: fix asciidoc warnings
211 + - doc: remembering-renames.adoc: fix asciidoc warnings
212 + (this branch uses rj/doc-missing-technical-docs.)
213
121 - Documentation updates.
122 - source: <pull.1976.git.1758656702.gitgitgadget@gmail.com>
214 + Documenation mark-up fixes.
215
216 + RFC.
217 + source: <875fb7a0-6dd9-412b-a34a-21758c339871@ramsayjones.plus.com>
218
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
219
131 - Documentation updates.
132 - source: <pull.1964.v3.git.1758649472.gitgitgadget@gmail.com>
220 +* ja/doc-markup-attached-paragraph-fix (2025-09-27) 1 commit
221 + - doc: change the markup of paragraphs following a nested list item
222
223 + Documentation mark-up fix.
224
135 -* jk/diff-no-index-with-pathspec-fix (2025-09-24) 1 commit
136 - - diff --no-index: fix logic for paths ending in '/'
225 + Will merge to 'next'.
226 + source: <20250927195032.37223-1-jn.avila@free.fr>
227
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>
228
229 +* jc/optional-path (2025-09-28) 3 commits
230 + - parseopt: values of pathname type can be prefixed with :(optional)
231 + - config: values of pathname type can be prefixed with :(optional)
232 + - t7500: make each piece more independent
233
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()
234 + Configuration variables that take a pathname as a value
235 + (e.g. blame.ignorerevsfile) can be marked as optional by prefixing
236 + ":(optoinal)" before its value.
237 +
238 + Comments?
239 + source: <cover.1759094936.git.ben.knoble+github@gmail.com>
240 +
241 +
242 +* jt/clang-format-foreach-wo-space-before-parenthesis (2025-09-27) 1 commit
243 + - clang-format: exclude control macros from SpaceBeforeParens
244 +
245 + Clang-format update to let our control macros formatted the way we
246 + had them traditionally, e.g., "for_each_string_list_item()" without
247 + space before the parentheses.
248 +
249 + Will merge to 'next'.
250 + source: <20250927145049.723341-4-jltobler@gmail.com>
251 +
252 +
253 +* kh/doc-patch-id-markup-fix (2025-09-28) 1 commit
254 + - doc: patch-id: fix accidental literal blocks
255 +
256 + Documenaotin mark-up fix.
257 +
258 + Will merge to 'next'?
259 + source: <0520e8f9caf.1759067095.git.code@khaugsbakk.name>
260
153 - "git repo stats", a new command.
154 - source: <20250924212426.2930029-1-jltobler@gmail.com>
261 +
262 +* sa/replay-atomic-ref-updates (2025-09-26) 1 commit
263 + - replay: make atomic ref updates the default behavior
264 +
265 + "git replay" (experimental) learned to perform ref updates itself
266 + in a transaction by default, instead of emitting where each refs
267 + should point at and leaving the actual update to another command.
268 +
269 + Comments?
270 + source: <20250926230838.35870-2-siddharthasthana31@gmail.com>
271
272 --------------------------------------------------
273 [Stalled]
@@ -190,25 +306,66 @@ well with other topics in 'seen' (and of course 'next' and
306 --------------------------------------------------
307 [Cooking]
308
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
309 +* kh/format-patch-range-diff-notes (2025-09-25) 3 commits
310 + - format-patch: handle range-diff on notes correctly for single patches
311 + - revision: add rdiff_log_arg to rev_info
312 + - range-diff: rename other_arg to log_arg
313
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.
314 + "git format-patch --range-diff=... --notes=..." did not drive the
315 + underlying range-diff with correct --notes parameter, ending up
316 + comparing with different set of notes from its main patch output
317 + you would get from "git format-patch --notes=..." for a singleton
318 + patch.
319
207 - Will merge to 'master'.
208 - source: <20250919223351.GA3906184@coredump.intra.peff.net>
320 + Will merge to 'next'?
321 + source: <v2-cover.1758819879.git.code@khaugsbakk.name>
322
323
211 -* js/curl-off-t-fixes (2025-09-21) 3 commits
324 +* je/doc-pull (2025-09-23) 4 commits
325 + - doc: git-pull: clarify how to exit a conflicted merge
326 + - doc: git-pull: delete the example
327 + - doc: git-pull: clarify options for integrating remote branch
328 + - doc: git-pull: move <repository> and <refspec> params
329 +
330 + Documentation updates.
331 + source: <pull.1976.git.1758656702.gitgitgadget@gmail.com>
332 +
333 +
334 +* je/doc-push-upstream (2025-09-23) 4 commits
335 + - doc: git-push: clarify "what to push"
336 + - doc: git-push: clarify "where to push"
337 + - doc: add an UPSTREAM BRANCHES section to pull/push/fetch
338 + - doc: git-push: clarify intro
339 +
340 + Documentation updates.
341 + source: <pull.1964.v3.git.1758649472.gitgitgadget@gmail.com>
342 +
343 +
344 +* jk/diff-no-index-with-pathspec-fix (2025-09-24) 1 commit
345 + - diff --no-index: fix logic for paths ending in '/'
346 +
347 + An earlier addition to "git diff --no-index A B" to limit the
348 + output with pathspec after the two directories misbehaved when
349 + these directories were given with a trailing slash, which has been
350 + corrected.
351 + source: <20250924-jk-fix-no-index-path-with-slash-v1-1-6b2028c0de92@intel.com>
352 +
353 +
354 +* jt/repo-stats (2025-09-27) 6 commits
355 + - builtin/repo: add progress meter for stats
356 + - builtin/repo: add keyvalue and nul format for stats
357 + - builtin/repo: add object counts in stats output
358 + - builtin/repo: introduce stats subcommand
359 + - ref-filter: allow NULL filter pattern
360 + - builtin/repo: rename repo_info() to cmd_repo_info()
361 +
362 + "git repo stats", a new command.
363 +
364 + Comments?
365 + source: <20250927145049.723341-1-jltobler@gmail.com>
366 +
367 +
368 +* js/curl-off-t-fixes (2025-09-26) 3 commits
369 - http-push: avoid new compile error
370 - imap-send: be more careful when casting to `curl_off_t`
371 - http: offer to cast `size_t` to `curl_off_t` safely
@@ -216,18 +373,15 @@ well with other topics in 'seen' (and of course 'next' and
373 A few places where an size_t value was cast to curl_off_t without
374 checking has been updated to use the existing helper function.
375
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>
376 + Will merge to 'next'.
377 + source: <pull.1974.v2.git.1758882772.gitgitgadget@gmail.com>
378
379
224 -* kn/reftable-consistency-checks (2025-09-18) 9 commits
225 - - fixup! reftable: check for trailing newline in 'tables.list'
380 +* kn/reftable-consistency-checks (2025-09-26) 7 commits
381 - refs/reftable: add fsck check for checking the table name
382 - reftable: add code to facilitate consistency checks
383 - fsck: order 'fsck_msg_type' alphabetically
384 - Documentation/fsck-msgids: remove duplicate msg id
230 - - reftable: ensure tables in a stack use sequential update indices
385 - reftable: check for trailing newline in 'tables.list'
386 - refs: move consistency check msg to generic layer
387 - refs: remove unused headers
@@ -235,57 +389,8 @@ well with other topics in 'seen' (and of course 'next' and
389 The reftable backend learned to sanity check its on-disk data more
390 carefully.
391
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 -
243 -* pw/rebase-i-cleanup-fix (2025-09-18) 2 commits
244 - (merged to 'next' on 2025-09-22 at 2d0aec7821)
245 - + sequencer: remove VERBATIM_MSG flag
246 - + rebase -i: respect commit.cleanup when picking fixups
247 -
248 - "git rebase -i" failed to clean-up the commit log message when the
249 - command commits the final one in a chain of "fixup" commands, which
250 - has been corrected.
251 -
252 - Will merge to 'master'.
253 - source: <cover.1758186038.git.phillip.wood@dunelm.org.uk>
254 -
255 -
256 -* tc/last-modified-recursive-fix (2025-09-18) 1 commit
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 -
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
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 -
287 - Expecting a reroll, but probably xdiff stuff comes first?
288 - source: <pull.2043.v2.git.git.1758071798.gitgitgadget@gmail.com>
392 + Comments?
393 + source: <20250926-228-reftable-introduce-consistency-checks-v4-0-c96fd8551c0d@gmail.com>
394
395
396 * bc/sha1-256-interop-01 (2025-09-19) 10 commits
@@ -319,57 +424,15 @@ well with other topics in 'seen' (and of course 'next' and
424 source: <pull.1863.v3.git.1758813038.gitgitgadget@gmail.com>
425
426
322 -* dk/stash-apply-index (2025-09-21) 4 commits
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 -
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
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
354 - to do about color. A couple of bugs of this sort have been fixed,
355 - while the code has been cleaned up to prevent similar bugs in the
356 - future.
357 -
358 - Will merge to 'master'.
359 - source: <20250916201036.GA612463@coredump.intra.peff.net>
360 - source: <20250916202408.GI612873@coredump.intra.peff.net>
361 -
362 -
363 -* en/xdiff-cleanup (2025-09-23) 13 commits
427 +* en/xdiff-cleanup (2025-09-26) 12 commits
428 - 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
429 + - xdiff: add macros DISCARD(0), KEEP(1), INVESTIGATE(2) in xprepare.c
430 - xdiff: rename rchg -> changed in xdfile_t
367 - - xdiff: delete rchg aliasing
431 - xdiff: delete chastore from xdfile_t
432 - xdiff: delete fields ha, line, size in xdlclass_t in favor of an xrecord_t
433 - xdiff: delete redundant array xdfile_t.ha
434 - xdiff: delete struct diffdata_t
372 - - xdiff: delete superfluous local variables that alias fields in xrecord_t
435 + - xdiff: delete local variables that alias fields in xrecord_t
436 - xdiff: delete superfluous function xdl_get_rec() in xemit
437 - xdiff: delete unnecessary fields from xrecord_t and xdfile_t
438 - xdiff: delete local variables and initialize/free xdfile_t directly
@@ -378,33 +441,8 @@ well with other topics in 'seen' (and of course 'next' and
441 A lot of code clean-up of xdiff.
442 Split out of a larger topic.
443
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
387 - (merged to 'next' on 2025-09-22 at dc4168c337)
388 - + initial branch: give hints after switching the default name
389 - (this branch uses pw/3.0-default-initial-branch-to-main.)
390 -
391 - Keep giving hint about the default initial branch name for users
392 - who may be surprised after Git 3.0 switchover.
393 -
394 - Will merge to 'master'.
395 - source: <cover.1757518141.git.phillip.wood@dunelm.org.uk>
396 -
397 -
398 -* nb/send-email-no-dup-reply-to (2025-09-16) 1 commit
399 - (merged to 'next' on 2025-09-18 at d7081e00ec)
400 - + send-email: don't duplicate Reply-to: in intro message
401 -
402 - "git send-email --compose --reply-to=<address>" used to add
403 - duplicated Reply-To: header, which made mailservers unhappy. This
404 - has been corrected.
405 -
406 - Will merge to 'master'.
407 - source: <175809074627.1696783.67425889158412786@noble.neil.brown.name>
444 + Will merge to 'next'?
445 + source: <pull.2048.v6.git.git.1758926520.gitgitgadget@gmail.com>
446
447
448 * ar/submodule-gitdir-tweak (2025-09-08) 10 commits
@@ -429,26 +467,14 @@ well with other topics in 'seen' (and of course 'next' and
467
468
469 * je/doc-push (2025-09-23) 2 commits
432 - - doc: git-push: rewrite refspec specification
433 - - doc: git-push: create PUSH RULES section
470 + (merged to 'next' on 2025-09-29 at 4ff1b675ed)
471 + + doc: git-push: rewrite refspec specification
472 + + doc: git-push: create PUSH RULES section
473
474 Doc updates.
475
437 - Will merge to 'next'.
438 - source: <pull.1973.v2.git.1758651049.gitgitgadget@gmail.com>
439 -
440 -
441 -* ps/clar-updates (2025-09-22) 2 commits
442 - (merged to 'next' on 2025-09-22 at c811e8c172)
443 - + t/unit-tests: update to 10e96bc
444 - (merged to 'next' on 2025-09-15 at 73402f7652)
445 - + t/unit-tests: update clar to fcbed04
446 -
447 - Import a newer version of the clar unit testing framework.
448 -
476 Will merge to 'master'.
450 - source: <20250910-b4-pks-clar-update-v1-1-26a196237e0a@pks.im>
451 - source: <20250922-pks-clar-update-v1-1-9154e7d1b7a1@pks.im>
477 + source: <pull.1973.v2.git.1758651049.gitgitgadget@gmail.com>
478
479
480 * ps/config-get-color-fixes (2025-09-22) 5 commits
@@ -519,21 +545,6 @@ well with other topics in 'seen' (and of course 'next' and
545 source: <20250917181427.3193500-1-christian.couder@gmail.com>
546
547
522 -* pw/3.0-default-initial-branch-to-main (2025-09-10) 4 commits
523 - (merged to 'next' on 2025-09-22 at 01bbebdab6)
524 - + t0613: stop setting default initial branch
525 - + t9902: switch default branch name to main
526 - + t4013: switch default branch name to main
527 - + breaking-changes: switch default branch to main
528 - (this branch is used by jc/3.0-default-initial-branch-to-main-addendum.)
529 -
530 - Declare that "git init" that is not otherwise configured uses
531 - 'main' as the initial branch, not 'master', starting Git 3.0.
532 -
533 - Will merge to 'master'.
534 - source: <cover.1757518141.git.phillip.wood@dunelm.org.uk>
535 -
536 -
548 * ps/commit-graph-per-object-source (2025-09-04) 6 commits
549 - odb: move commit-graph into the object sources
550 - commit-graph: pass graphs that are to be merged as parameter
@@ -603,79 +614,31 @@ well with other topics in 'seen' (and of course 'next' and
614
615
616 * 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
609 - - packfile: move `get_multi_pack_index()` into "midx.c"
610 - - packfile: introduce function to load and add packfiles
611 - - packfile: refactor `install_packed_git()` to work on packfile store
612 - - packfile: split up responsibilities of `reprepare_packed_git()`
613 - - packfile: refactor `prepare_packed_git()` to work on packfile store
614 - - packfile: reorder functions to avoid function declaration
615 - - odb: move kept cache into `struct packfile_store`
616 - - odb: move MRU list of packfiles into `struct packfile_store`
617 - - odb: move packfile map into `struct packfile_store`
618 - - odb: move initialization bit into `struct packfile_store`
619 - - odb: move list of packfiles into `struct packfile_store`
620 - - packfile: introduce a new `struct packfile_store`
621 - - Merge branch 'ps/object-store-midx-dedup-info' into ps/packfile-store
617 + (merged to 'next' on 2025-09-29 at 342bb57fc2)
618 + + packfile: refactor `get_packed_git_mru()` to work on packfile store
619 + + packfile: refactor `get_all_packs()` to work on packfile store
620 + + packfile: refactor `get_packed_git()` to work on packfile store
621 + + packfile: move `get_multi_pack_index()` into "midx.c"
622 + + packfile: introduce function to load and add packfiles
623 + + packfile: refactor `install_packed_git()` to work on packfile store
624 + + packfile: split up responsibilities of `reprepare_packed_git()`
625 + + packfile: refactor `prepare_packed_git()` to work on packfile store
626 + + packfile: reorder functions to avoid function declaration
627 + + odb: move kept cache into `struct packfile_store`
628 + + odb: move MRU list of packfiles into `struct packfile_store`
629 + + odb: move packfile map into `struct packfile_store`
630 + + odb: move initialization bit into `struct packfile_store`
631 + + odb: move list of packfiles into `struct packfile_store`
632 + + packfile: introduce a new `struct packfile_store`
633 + + Merge branch 'ps/object-store-midx-dedup-info' into ps/packfile-store
634 + (this branch is used by tb/incremental-midx-part-3.1.)
635
636 Code clean-up around the in-core list of all the pack files and
637 object database(s).
638
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
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 -
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 -
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 -
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
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 -
639 Will merge to 'master'.
677 - cf. <236a79f4-e9a2-4335-bbff-79ae0cc67e9b@app.fastmail.com>
678 - source: <pull.1962.v4.git.1757531669.gitgitgadget@gmail.com>
640 + cf. <aNmxQqV3+1Ad12qC@nand.local>
641 + source: <20250923-b4-pks-packfiles-store-v6-0-b48f2a882759@pks.im>
642
643
644 * kh/you-still-use-whatchanged-fix (2025-09-17) 9 commits
@@ -711,5 +674,55 @@ well with other topics in 'seen' (and of course 'next' and
674 prune otherwise unused working-tree files that are outside the
675 areas of interest.
676
714 - Will merge to 'master'.
677 + On hold.
678 + cf. <3537e220-44b6-4e37-a568-cef34a2fddfd@gmail.com>
679 source: <pull.1941.v3.git.1757673011.gitgitgadget@gmail.com>
680 +
681 +--------------------------------------------------
682 +[Discarded]
683 +
684 +These have been kept outside 'seen' for some time, and were removed
685 +for now, until they are resubmit in a shape that plays well with
686 +other topics in 'seen'.
687 +
688 +* en/rust-xdiff (2025-09-07) 8 commits
689 + . xdiff: change the types of dstart, dend, rchg, and rindex in xdfile_t
690 + . xdiff: make xdfile_t.nreff a usize instead of long
691 + . xdiff: make xdfile_t.nrec a usize instead of long
692 + . xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash
693 + . xdiff: make xrecord_t.size a usize instead of long
694 + . xdiff: make xrecord_t.ptr a u8 instead of char
695 + . xdiff: include compat/rust_types.h
696 + . compat/rust_types.h: define rust primitive types
697 + . Merge branch 'en/xdiff-cleanup' into en/rust-xdiff
698 +
699 + Use Rust-friendly types in xdiff code.
700 +
701 + Expecting a reroll based on the updated base topic, but the base
702 + topic may further be updated first?
703 + cf. <CAH=ZcbA5hAM9kmO410KzVW7RXWWiwX2oJk6GGPP+6oVYatRVOw@mail.gmail.com>
704 + source: <pull.2048.git.git.1757274320.gitgitgadget@gmail.com>
705 +
706 +
707 +* en/rust-wip (2025-09-16) 18 commits
708 + . misc::varint: reimplement as test balloon for Rust
709 + . misc: use BuildHelper
710 + . build: new crate, misc
711 + . varint: use explicit width for integers
712 + . build-helper: cbindgen, let crates generate a header file
713 + . build-helper: link against libgit.a and any other required C libraries
714 + . build: new crate, build-helper
715 + . github workflows: upload Cargo.lock
716 + . win+Meson: do allow linking with the Rust-built xdiff
717 + . github workflows: install rust
718 + . help: report on whether or not Rust is enabled
719 + . build: introduce rust
720 + . BreakingChanges: announce Rust becoming mandatory
721 + . doc: add a policy for using Rust
722 + . make: merge reftable lib into libgit.a
723 + . make: merge xdiff lib into libgit.a
724 + . make: add -fPIE flag
725 + . cleanup: rename variables that collide with Rust primitive type names
726 +
727 + Expecting a reroll, but probably xdiff stuff comes first?
728 + source: <pull.2043.v2.git.git.1758071798.gitgitgadget@gmail.com>