What's cooking (2026/03 #03)

Junio C Hamano committed Mar 6, 2026 at 14:54 UTC 1207e16911bf4162d9642a0e45587c90a7d78f50
1 file changed +190 -356
whats-cooking.txt
+190 -356
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Mar 2026, #02)
3 -X-master-at: 628a66ccf68d141d57d06e100c3514a54b31d6b7
4 -X-next-at: 7842e34a66540770d4e1ee6a443a82652b97dd7d
2 +Subject: What's cooking in git.git (Mar 2026, #03)
3 +X-master-at: 795c338de725e13bd361214c6b768019fc45a2c1
4 +X-next-at: a537e3e6e998710bf15ee05bf0cd02a122d54b8c
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Mar 2026, #02)
7 +What's cooking in git.git (Mar 2026, #03)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -50,243 +50,166 @@ Release tarballs are available at:
50 --------------------------------------------------
51 [Graduated to 'master']
52
53 -* aa/add-p-no-auto-advance (2026-02-14) 4 commits
54 - (merged to 'next' on 2026-02-25 at ce27f94bc2)
55 - + add-patch: allow interfile navigation when selecting hunks
56 - + add-patch: allow all-or-none application of patches
57 - + add-patch: modify patch_update_file() signature
58 - + interactive -p: add new `--auto-advance` flag
59 -
60 - "git add -p" learned a new mode that allows the user to revisit a
61 - file that was already dealt with.
62 - source: <cover.1771066252.git.abrahamadekunle50@gmail.com>
63 -
64 -
65 -* bk/mailmap-wo-the-repository (2026-02-19) 2 commits
66 - (merged to 'next' on 2026-02-26 at f7e3afc1ff)
67 - + mailmap: drop global config variables
68 - + mailmap: stop using the_repository
69 -
70 - Wean the mailmap code off of the_repository dependency.
71 -
72 - source: <20260220060442.29469-1-bkkaracay@gmail.com>
73 -
74 -
75 -* cs/subtree-split-fixes (2026-02-17) 3 commits
76 - (merged to 'next' on 2026-02-25 at 3824d2c52d)
77 - + contrib/subtree: process out-of-prefix subtrees
78 - + contrib/subtree: test history depth
79 - + contrib/subtree: capture additional test-cases
80 -
81 - An earlier attempt to optimize "git subtree" discarded too much
82 - relevant histories, which has been corrected.
83 - source: <20260217-cs-subtree-remove-optimization-v2-0-4299e71a30c6@howdoi.land>
84 -
85 -
86 -* cx/fetch-display-ubfix (2026-02-24) 1 commit
87 - (merged to 'next' on 2026-02-26 at ebd1da8b75)
88 - + fetch: fix wrong evaluation order in URL trailing-slash trimming
89 -
90 - Undefined-behaviour fix in "git fetch".
91 -
92 - source: <pull.2211.git.git.1771984857879.gitgitgadget@gmail.com>
93 -
94 -
95 -* dk/meson-regen-config-list (2026-02-24) 1 commit
96 - (merged to 'next' on 2026-02-26 at 64ea932d59)
97 - + build: regenerate config-list.h when Documentation changes
98 -
99 - Fix dependency screw-up in meson-based builds.
100 -
101 - source: <4ef96c6bbf698a08df1df87b7cb053b6d0d00822.1771943954.git.ben.knoble+github@gmail.com>
102 -
103 -
104 -* ds/config-list-with-type (2026-02-23) 13 commits
105 - (merged to 'next' on 2026-02-26 at cdaee07fde)
106 - + config: use an enum for type
107 - + config: restructure format_config()
108 - + config: format colors quietly
109 - + color: add color_parse_quietly()
110 - + config: format expiry dates quietly
111 - + config: format paths gently
112 - + config: format bools or strings in helper
113 - + config: format bools or ints gently
114 - + config: format bools gently
115 - + config: format int64s gently
116 - + config: make 'git config list --type=<X>' work
117 - + config: add 'gently' parameter to format_config()
118 - + config: move show_all_config()
119 -
120 - "git config list" is taught to show the values interpreted for
121 - specific type with "--type=<X>" option.
122 -
123 - source: <pull.2044.v3.git.1771849615.gitgitgadget@gmail.com>
124 -
125 -
126 -* en/merge-ort-almost-wo-the-repository (2026-02-19) 6 commits
127 - (merged to 'next' on 2026-02-26 at 4c07a66173)
128 - + replay: prevent the_repository from coming back
129 - + merge-ort: prevent the_repository from coming back
130 - + merge-ort: replace the_hash_algo with opt->repo->hash_algo
131 - + merge-ort: replace the_repository with opt->repo
132 - + merge-ort: pass repository to write_tree()
133 - + merge,diff: remove the_repository check before prefetching blobs
134 -
135 - Mark the marge-ort codebase to prevent more uses of the_repository
136 - from getting added.
137 - cf. <143ab1c8-9f07-4df7-8200-69b5a78a0351@gmail.com>
138 - cf. <aZ12rYYwbh1fvrnE@pks.im>
139 - source: <pull.2048.v3.git.1771718393.gitgitgadget@gmail.com>
140 -
141 -
142 -* hy/diff-lazy-fetch-with-break-fix (2026-02-23) 1 commit
143 - (merged to 'next' on 2026-02-25 at afe07ad86c)
144 - + diffcore-break: avoid segfault with freed entries
145 -
146 - A prefetch call can be triggered to access a stale diff_queue entry
147 - after diffcore-break breaks a filepair into two and freed the
148 - original entry that is no longer used, leading to a segfault, which
149 - has been corrected.
150 - source: <20260224061329.60364-2-hanyang.tony@bytedance.com>
53 +* ob/core-attributesfile-in-repository (2026-02-16) 3 commits
54 + (merged to 'next' on 2026-02-27 at 2b2e3a1fa9)
55 + + environment: move "branch.autoSetupMerge" into `struct repo_config_values`
56 + + environment: stop using core.sparseCheckout globally
57 + + environment: stop storing `core.attributesFile` globally
58
59 + The core.attributesfile is intended to be set per repository, but
60 + were kept track of by a single global variable in-core, which has
61 + been corrected by moving it to per-repository data structure.
62 + cf. <CAP8UFD2Rz3NMrTayi9yjRk4-51tStaLWKeBVB9RaJMWmiBLqrQ@mail.gmail.com>
63 + source: <cover.1771258573.git.belkid98@gmail.com>
64
153 -* jr/apply-directory-normalize (2026-02-17) 1 commit
154 - (merged to 'next' on 2026-02-26 at 588d44696d)
155 - + apply: normalize path in --directory argument
65
157 - "git apply --directory=./un/../normalized/path" now normalizes the
158 - given path before using it.
159 -
160 - source: <pull.2198.v2.git.git.1771373732749.gitgitgadget@gmail.com>
66 +* ps/fsck-stream-from-the-right-object-instance (2026-02-23) 4 commits
67 + (merged to 'next' on 2026-02-27 at b378558c1a)
68 + + pack-check: fix verification of large objects
69 + + packfile: expose function to read object stream for an offset
70 + + object-file: adapt `stream_object_signature()` to take a stream
71 + + t/helper: improve "genrandom" test helper
72
73 + "fsck" iterates over packfiles and its access to pack data caused
74 + the list to be permuted, which caused it to loop forever; the code
75 + to access pack data by "fsck" has been updated to avoid this.
76 + source: <20260223-pks-fsck-fix-v2-0-99a0714ea3bd@pks.im>
77
163 -* kn/osxkeychain-buildfix (2026-02-19) 1 commit
164 - (merged to 'next' on 2026-02-26 at 913be932b0)
165 - + osxkeychain: define build targets in the top-level Makefile.
78
167 - Simplify build procedure for oxskeychain (in contrib/).
168 -
169 - source: <pull.2046.v4.git.1771551540816.gitgitgadget@gmail.com>
79 +* pt/t7527-flake-workaround (2025-12-31) 1 commit
80 + (merged to 'next' on 2026-02-27 at d6ebc97cb1)
81 + + t7527: fix flaky fsmonitor event tests with retry logic
82
83 + Test fixup.
84 + source: <pull.2150.v2.git.git.1767226763360.gitgitgadget@gmail.com>
85
172 -* kn/ref-location (2026-02-25) 6 commits
173 - (merged to 'next' on 2026-02-26 at e87adbdb69)
174 - + refs: add GIT_REFERENCE_BACKEND to specify reference backend
175 - + refs: allow reference location in refstorage config
176 - + refs: receive and use the reference storage payload
177 - + refs: move out stub modification to generic layer
178 - + refs: extract out `refs_create_refdir_stubs()`
179 - + setup: don't modify repo in `create_reference_database()`
86 +--------------------------------------------------
87 +[New Topics]
88
181 - Allow the directory in which reference backends store their data to
182 - be specified.
183 -
184 - source: <20260225-kn-alternate-ref-dir-v9-0-3fe118e40e28@gmail.com>
89 +* ab/clone-default-object-filter (2026-03-06) 1 commit
90 + - clone: add clone.<url>.defaultObjectFilter config
91
92 + "git clone" learns to pay attention to "clone.<url>.defaultObjectFilter"
93 + configuration and behave as if the "--filter=<filter-spec>" option
94 + was given on the command line.
95
187 -* lg/t2004-test-path-is-helpers (2026-02-21) 1 commit
188 - (merged to 'next' on 2026-02-25 at c5862e1b3d)
189 - + t2004: use test_path_is_file instead of test -f
96 + Comments?
97 + source: <pull.2058.v4.git.1772833649843.gitgitgadget@gmail.com>
98
191 - Test code clean-up.
192 - source: <pull.2049.git.1771694893208.gitgitgadget@gmail.com>
99
100 +* ag/send-email-sasl-with-host-port (2026-03-05) 1 commit
101 + (merged to 'next' on 2026-03-06 at a773196f56)
102 + + send-email: pass smtp hostname and port to Authen::SASL
103
195 -* lo/repo-leftover-bits (2026-02-25) 9 commits
196 - (merged to 'next' on 2026-02-26 at 962fc48d45)
197 - + Documentation/git-repo: capitalize format descriptions
198 - + Documentation/git-repo: replace 'NUL' with '_NUL_'
199 - + t1901: adjust nul format output instead of expected value
200 - + t1900: rename t1900-repo to t1900-repo-info
201 - + repo: rename struct field to repo_info_field
202 - + repo: replace get_value_fn_for_key by get_repo_info_field
203 - + repo: rename repo_info_fields to repo_info_field
204 - + CodingGuidelines: instruct to name arrays in singular
205 - + Merge branch 'lo/repo-info-keys' into lo/repo-leftover-bits
104 + "git send-email" learns to pass hostname/port to Authen::SASL
105 + module.
106
207 - Clean-up the code around "git repo info" command.
208 -
209 - source: <20260225183559.79303-1-lucasseikioshiro@gmail.com>
107 + Will merge to 'master'.
108 + source: <MAUPR01MB1154634CC04D29AAF7CADE5F7B87DA@MAUPR01MB11546.INDPRD01.PROD.OUTLOOK.COM>
109
110
212 -* ps/maintenance-geometric-default (2026-02-24) 8 commits
213 - (merged to 'next' on 2026-02-26 at 8ab085f657)
214 - + builtin/maintenance: use "geometric" strategy by default
215 - + t7900: prepare for switch of the default strategy
216 - + t6500: explicitly use "gc" strategy
217 - + t5510: explicitly use "gc" strategy
218 - + t5400: explicitly use "gc" strategy
219 - + t34xx: don't expire reflogs where it matters
220 - + t: disable maintenance where we verify object database structure
221 - + t: fix races caused by background maintenance
111 +* jc/neuter-sideband-fixup (2026-03-05) 6 commits
112 + - sideband: drop 'default' configuration
113 + - sideband: offer to configure sanitizing on a per-URL basis
114 + - sideband: add options to allow more control sequences to be passed through
115 + - sideband: do allow ANSI color sequences by default
116 + - sideband: introduce an "escape hatch" to allow control characters
117 + - sideband: mask control characters
118 + (this branch is used by jc/neuter-sideband-post-3.0.)
119
223 - "git maintenance" starts using the "geometric" strategy by default.
224 -
225 - source: <20260224-b4-pks-maintenance-default-geometric-strategy-v2-0-8657338c6fa1@pks.im>
120 + Try to resurrect and reboot a stalled "avoid sending risky escape
121 + sequences taken from sideband to the terminal" topic by Dscho. The
122 + plan is to keep it in 'next' long enough to see if anybody screams
123 + with the "everything dropped except for ANSI color escape sequence"
124 + default.
125
126 + Comments?
127 + source: <20260305233452.3727126-1-gitster@pobox.com>
128
228 -* ps/simplify-normalize-path-copy-len (2026-02-21) 1 commit
229 - (merged to 'next' on 2026-02-25 at ce7c45c6fa)
230 - + path: factor out skip_slashes() in normalize_path_copy_len()
129
232 - Code clean-up.
233 - source: <20260221110511.1592-2-pushkarkumarsingh1970@gmail.com>
130 +* jc/neuter-sideband-post-3.0 (2026-03-05) 2 commits
131 + - sideband: delay sanitizing by default to Git v3.0
132 + - Merge branch 'jc/neuter-sideband-fixup' into jc/neuter-sideband-post-3.0
133 + (this branch uses jc/neuter-sideband-fixup.)
134 +
135 + The final step, split from earlier attempt by Dscho, to loosen the
136 + sideband restriction for now and tighten later at Git v3.0 boundary.
137 +
138 + On hold, until jc/neuter-sideband-fixup cooks long enough in 'next'.
139 + (this branch uses jc/neuter-sideband-fixup.)
140 + source: <20260305233452.3727126-8-gitster@pobox.com>
141 +
142 +
143 +* jt/doc-submitting-patches-study-before-sending (2026-03-05) 1 commit
144 + (merged to 'next' on 2026-03-06 at 222151114c)
145 + + Documentation: extend guidance for submitting patches
146
147 + Doc update for our contributors.
148
236 -* pw/no-more-NULL-means-current-worktree (2026-02-19) 2 commits
237 - (merged to 'next' on 2026-02-26 at 281f28b140)
238 - + path: remove repository argument from worktree_git_path()
239 - + wt-status: avoid passing NULL worktree
149 + Will merge to 'master'.
150 + source: <20260305193836.973122-1-jltobler@gmail.com>
151
241 - API clean-up for the worktree subsystem.
242 - cf. <d5866041-3e2f-4f5e-a8d1-725fd3eac2e2@gmail.com>
243 - source: <cover.1771511192.git.phillip.wood@dunelm.org.uk>
152
153 +* ps/ci-gitlab-prepare-for-macos-14-deprecation (2026-03-05) 3 commits
154 + (merged to 'next' on 2026-03-06 at 60b308a43b)
155 + + gitlab-ci: update to macOS 15 images
156 + + meson: detect broken iconv that requires ICONV_RESTART_RESET
157 + + meson: simplify iconv-emits-BOM check
158
246 -* rr/gitweb-mobile (2026-02-16) 5 commits
247 - (merged to 'next' on 2026-02-26 at b7e4c26f73)
248 - + gitweb: let page header grow on mobile for long wrapped project names
249 - + gitweb: fix mobile footer overflow by wrapping text and clearing floats
250 - + gitweb: fix mobile page overflow across log/commit/blob/diff views
251 - + gitweb: prevent project search bar from overflowing on mobile
252 - + gitweb: add viewport meta tag for mobile devices
159 + Move gitlab CI from macOS 14 images that are being deprecated.
160
254 - "gitweb" has been taught to be mobile friendly.
255 -
256 - source: <pull.2043.v2.git.1771257211.gitgitgadget@gmail.com>
161 + Will merge to 'master'.
162 + source: <20260305-pks-gitlab-ci-macos-16-v1-0-ce8da0ff29c2@pks.im>
163
164
259 -* sc/pack-redundant-leakfix (2026-02-21) 1 commit
260 - (merged to 'next' on 2026-02-25 at b2fda8839e)
261 - + pack-redundant: fix memory leak when open_pack_index() fails
165 +* ss/t9123-setup-inside-test-expect-success (2026-03-05) 1 commit
166 + (merged to 'next' on 2026-03-06 at 607e206418)
167 + + t9123: use test_when_finished for cleanup
168
263 - Leakfix.
264 - source: <20260221103900.41740-1-sahityajb@gmail.com>
169 + Test clean-up.
170
171 + Will merge to 'master'.
172 + source: <20260305125408.16958-1-r.siddharth.shrimali@gmail.com>
173
267 -* sp/shallow-deepen-relative-fix (2026-02-15) 2 commits
268 - (merged to 'next' on 2026-02-26 at 2183b3405e)
269 - + shallow: handling fetch relative-deepen
270 - + shallow: free local object_array allocations
174
272 - "git fetch --deepen" that tries to go beyond merged branch used to
273 - get confused where the updated shallow points are, which has been
274 - corrected.
275 -
276 - source: <pull.2121.v5.git.git.1771186316.gitgitgadget@gmail.com>
175 +* cs/subtree-split-recursion (2026-03-05) 3 commits
176 + - contrib/subtree: reduce recursion during split
177 + - contrib/subtree: functionalize split traversal
178 + - contrib/subtree: reduce function side-effects
179
180 + When processing large history graphs on Debian or Ubuntu, "git
181 + subtree" can die with a "recursion depth reached" error.
182
279 -* sp/tree-diff-wo-the-repository (2026-02-20) 1 commit
280 - (merged to 'next' on 2026-02-26 at c5762ee063)
281 - + tree-diff: remove the usage of the_hash_algo global
183 + Comments?
184 + source: <20260305-cs-subtree-split-recursion-v2-0-7266be870ba9@howdoi.land>
185
283 - The last uses of the_repository in "tree-diff.c" have been
284 - eradicated.
285 -
286 - source: <20260220175331.1250726-1-shreyanshpaliwalcmsmn@gmail.com>
186 +
187 +* fp/t3310-unhide-git-failures (2026-03-05) 1 commit
188 + - t3310: avoid hiding failures from rev-parse in command substitutions
189 +
190 + The construct 'test "$(command)" = expectation' loses the exit
191 + status from the command, which has been fixed by breaking up the
192 + statement into pieces.
193 +
194 + Will merge to 'next'.
195 + source: <20260305225128.54283-1-francescopaparatto@gmail.com>
196 +
197 +
198 +* jk/unleak-mmap (2026-03-06) 5 commits
199 + - meson: turn on NO_MMAP when building with LSan
200 + - Makefile: turn on NO_MMAP when building with LSan
201 + - pack-revindex: avoid double-loading .rev files
202 + - check_connected(): fix leak of pack-index mmap
203 + - check_connected(): delay opening new_pack
204 +
205 + Plug a few leaks where mmap'ed memory regions are not unmapped.
206 +
207 + Will merge to 'next'?
208 + source: <20260305230315.GA2354983@coredump.intra.peff.net>
209 + source: <796110ee-d795-4445-9d82-7026370a88cf@intel.com>
210
211 --------------------------------------------------
289 -[New Topics]
212 +[Cooking]
213
214 * kj/path-micro-code-cleanup (2026-03-04) 3 commits
215 (merged to 'next' on 2026-03-04 at 569091027c)
@@ -313,12 +236,13 @@ Release tarballs are available at:
236
237
238 * ss/t3700-modernize (2026-03-03) 2 commits
316 - - t3700: use test_grep helper for better diagnostics
317 - - t3700: avoid suppressing git's exit code
239 + (merged to 'next' on 2026-03-05 at 23ff16a16f)
240 + + t3700: use test_grep helper for better diagnostics
241 + + t3700: avoid suppressing git's exit code
242
243 Test clean-up.
244
321 - Will merge to 'next'.
245 + Will merge to 'master'.
246 source: <20260303204029.52952-1-r.siddharth.shrimali@gmail.com>
247
248
@@ -339,13 +263,14 @@ Release tarballs are available at:
263
264
265 * os/doc-custom-subcommand-on-path (2026-03-04) 1 commit
342 - - doc: add information regarding external commands
266 + (merged to 'next' on 2026-03-05 at 661cc235ae)
267 + + doc: add information regarding external commands
268
269 The way end-users can add their own "git <cmd>" subcommand by
270 storing "git-<cmd>" in a directory on their $PATH has not been
271 documented clearly, which has been corrected.
272
348 - Will merge to 'next'.
273 + Will merge to 'master'.
274 source: <pull.2220.v4.git.git.1772636614850.gitgitgadget@gmail.com>
275
276
@@ -359,8 +284,6 @@ Release tarballs are available at:
284 Comments?
285 source: <pull.2224.v2.git.git.1772648846009.gitgitgadget@gmail.com>
286
362 ---------------------------------------------------
363 -[Cooking]
287
288 * fp/t3310-test-path-is-helpers (2026-02-27) 1 commit
289 (merged to 'next' on 2026-03-03 at c01b2c73d8)
@@ -372,24 +295,6 @@ Release tarballs are available at:
295 source: <20260228005939.9012-1-francescopaparatto@gmail.com>
296
297
375 -* jc/neuter-sideband-fixup (2026-03-02) 8 commits
376 - - sideband: conditional documentation fix
377 - - sideband: delay sanitizing by default to Git v3.0
378 - - sideband: drop 'default' configuration
379 - - sideband: offer to configure sanitizing on a per-URL basis
380 - - sideband: add options to allow more control sequences to be passed through
381 - - sideband: do allow ANSI color sequences by default
382 - - sideband: introduce an "escape hatch" to allow control characters
383 - - sideband: mask control characters
384 -
385 - Try to resurrect and reboot a stalled "avoid sending risky escape
386 - sequences taken from sideband to the terminal" topic.
387 -
388 - Comments?
389 - source: <pull.1853.v4.git.1770113882.gitgitgadget@gmail.com>
390 - source: <20260302181149.3502811-1-gitster@pobox.com>
391 -
392 -
298 * mm/diff-no-index-find-object (2026-02-28) 1 commit
299 (merged to 'next' on 2026-03-03 at fcff548ddb)
300 + diff: fix crash with --find-object outside repository
@@ -423,17 +328,15 @@ Release tarballs are available at:
328 source: <pull.2180.v2.git.git.1772300277959.gitgitgadget@gmail.com>
329
330
426 -* sk/oidmap-clear-with-custom-free-func (2026-03-02) 5 commits
427 - - sequencer: use oidmap_clear_with_free() for string_entry cleanup
428 - - odb: use oidmap_clear_with_free() to release replace_map entries
429 - - list-objects-filter: use oidmap_clear_with_free() for cleanup
430 - - builtin/rev-list: migrate missing_objects cleanup to oidmap_clear_with_free()
431 - - oidmap: make entry cleanup explicit in oidmap_clear
331 +* sk/oidmap-clear-with-custom-free-func (2026-03-05) 2 commits
332 + (merged to 'next' on 2026-03-06 at e335861c57)
333 + + builtin/rev-list: migrate missing_objects cleanup to oidmap_clear_with_free()
334 + + oidmap: make entry cleanup explicit in oidmap_clear
335
336 A bit of OIDmap API enhancement and cleanup.
337
435 - Comments?
436 - source: <20260302200018.75731-1-kuforiji98@gmail.com>
338 + Will merge to 'master'.
339 + source: <20260305100526.102130-1-kuforiji98@gmail.com>
340
341
342 * ss/test-that-that-typofix (2026-03-02) 1 commit
@@ -513,64 +416,50 @@ Release tarballs are available at:
416 "git repo structure" command learns to report maximum values on
417 various aspects of objects it inspects.
418
516 - Will merge to 'next'?
419 + Will merge to 'next'.
420 source: <20260302214526.2034279-1-jltobler@gmail.com>
421
422
520 -* ps/fsck-stream-from-the-right-object-instance (2026-02-23) 4 commits
521 - (merged to 'next' on 2026-02-27 at b378558c1a)
522 - + pack-check: fix verification of large objects
523 - + packfile: expose function to read object stream for an offset
524 - + object-file: adapt `stream_object_signature()` to take a stream
525 - + t/helper: improve "genrandom" test helper
526 -
527 - "fsck" iterates over packfiles and its access to pack data caused
528 - the list to be permuted, which caused it to loop forever; the code
529 - to access pack data by "fsck" has been updated to avoid this.
530 -
531 - Will merge to 'master'.
532 - source: <20260223-pks-fsck-fix-v2-0-99a0714ea3bd@pks.im>
533 -
534 -
535 -* ps/odb-sources (2026-02-23) 19 commits
536 - - odb/source: make `begin_transaction()` function pluggable
537 - - odb/source: make `write_alternate()` function pluggable
538 - - odb/source: make `read_alternates()` function pluggable
539 - - odb/source: make `write_object_stream()` function pluggable
540 - - odb/source: make `write_object()` function pluggable
541 - - odb/source: make `freshen_object()` function pluggable
542 - - odb/source: make `for_each_object()` function pluggable
543 - - odb/source: make `read_object_stream()` function pluggable
544 - - odb/source: make `read_object_info()` function pluggable
545 - - odb/source: make `close()` function pluggable
546 - - odb/source: make `reprepare()` function pluggable
547 - - odb/source: make `free()` function pluggable
548 - - odb/source: introduce source type for robustness
549 - - odb: move reparenting logic into respective subsystems
550 - - odb: embed base source in the "files" backend
551 - - odb: introduce "files" source
552 - - odb: split `struct odb_source` into separate header
553 - - Merge branch 'ps/object-info-bits-cleanup' into ps/odb-sources
554 - - Merge branch 'ps/odb-for-each-object' into ps/odb-sources
423 +* ps/odb-sources (2026-03-05) 19 commits
424 + (merged to 'next' on 2026-03-06 at 69fd3b792a)
425 + + odb/source: make `begin_transaction()` function pluggable
426 + + odb/source: make `write_alternate()` function pluggable
427 + + odb/source: make `read_alternates()` function pluggable
428 + + odb/source: make `write_object_stream()` function pluggable
429 + + odb/source: make `write_object()` function pluggable
430 + + odb/source: make `freshen_object()` function pluggable
431 + + odb/source: make `for_each_object()` function pluggable
432 + + odb/source: make `read_object_stream()` function pluggable
433 + + odb/source: make `read_object_info()` function pluggable
434 + + odb/source: make `close()` function pluggable
435 + + odb/source: make `reprepare()` function pluggable
436 + + odb/source: make `free()` function pluggable
437 + + odb/source: introduce source type for robustness
438 + + odb: move reparenting logic into respective subsystems
439 + + odb: embed base source in the "files" backend
440 + + odb: introduce "files" source
441 + + odb: split `struct odb_source` into separate header
442 + + Merge branch 'ps/object-info-bits-cleanup' into ps/odb-sources
443 + + Merge branch 'ps/odb-for-each-object' into ps/odb-sources
444
445 The object source API is getting restructured to allow plugging new
446 backends.
447
559 - Being reviewed.
560 - cf. <aaidbdpkpH7tfn9x@denethor>
561 - source: <20260223-b4-pks-odb-source-pluggable-v1-0-253bac1db598@pks.im>
448 + Will merge to 'master'.
449 + source: <20260305-b4-pks-odb-source-pluggable-v2-0-3290bfd1f444@pks.im>
450
451
452 * ds/for-each-repo-w-worktree (2026-03-03) 4 commits
565 - - for-each-repo: simplify passing of parameters
566 - - for-each-repo: work correctly in a worktree
567 - - run-command: extract sanitize_repo_env helper
568 - - for-each-repo: test outside of repo context
453 + (merged to 'next' on 2026-03-06 at 3886f0d054)
454 + + for-each-repo: simplify passing of parameters
455 + + for-each-repo: work correctly in a worktree
456 + + run-command: extract sanitize_repo_env helper
457 + + for-each-repo: test outside of repo context
458
459 "git for-each-repo" started from a secondary worktree did not work
460 as expected, which has been corrected.
461
573 - Will merge to 'next'?
462 + Will merge to 'master'.
463 source: <pull.2056.v4.git.1772559114.gitgitgadget@gmail.com>
464
465
@@ -590,21 +479,19 @@ Release tarballs are available at:
479 source: <20260303151238.1000191-1-jonatan@jontes.page>
480
481
593 -* lc/rebase-trailer (2026-02-23) 5 commits
482 +* lc/rebase-trailer (2026-03-06) 6 commits
483 - rebase: support --trailer
484 - commit, tag: parse --trailer with OPT_STRVEC
485 - trailer: append trailers without fork/exec
597 - - trailer: move process_trailers to trailer.h
486 + - trailer: libify a couple of functions
487 + - interpret-trailers: refactor create_in_place_tempfile()
488 - interpret-trailers: factor trailer rewriting
489
490 "git rebase" learns "--trailer" command to drive the
491 interpret-trailers machinery.
492
603 - Expecting a (hopefully small and final) reroll?
604 - cf. <e555e29f-57e3-4192-98f3-380181c81fd2@gmail.com>
605 - cf. <824809c3-72ac-43fb-8a93-4f48e0727e6a@gmail.com>
606 - cf. <dbaf6ea5-8a08-42c0-8184-16dcf40207dd@gmail.com>
607 - source: <20260224070552.148591-1-me@linux.beauty>
493 + Comments?
494 + source: <cover.1772808594.git.phillip.wood@dunelm.org.uk>
495
496
497 * mf/format-patch-cover-letter-format (2026-02-27) 5 commits
@@ -619,18 +506,19 @@ Release tarballs are available at:
506 a new --cover-letter-format option and format.commitListFormat
507 configuration variable.
508
622 - Will merge to 'next'?
509 + Will merge to 'next'.
510 source: <cover.1772232373.git.mroik@delayed.space>
511
512
513 * sp/send-email-validate-charset (2026-02-28) 1 commit
627 - - send-email: validate charset name in 8bit encoding prompt
514 + (merged to 'next' on 2026-03-06 at a537e3e6e9)
515 + + send-email: validate charset name in 8bit encoding prompt
516
517 "git send-email" has learned to be a bit more careful when it
518 accepts charset to use from the end-user, to avoid 'y' (mistaken
519 'yes' when expecting a charset like 'UTF-8') and other nonsense.
520
633 - Will merge to 'next'?
521 + Will merge to 'master'.
522 source: <20260228112210.270273-1-shreyanshpaliwalcmsmn@gmail.com>
523
524
@@ -654,16 +542,6 @@ Release tarballs are available at:
542 source: <pull.2147.v8.git.git.1772648125.gitgitgadget@gmail.com>
543
544
657 -* pt/t7527-flake-workaround (2025-12-31) 1 commit
658 - (merged to 'next' on 2026-02-27 at d6ebc97cb1)
659 - + t7527: fix flaky fsmonitor event tests with retry logic
660 -
661 - Test fixup.
662 -
663 - Will merge to 'master'.
664 - source: <pull.2150.v2.git.git.1767226763360.gitgitgadget@gmail.com>
665 -
666 -
545 * ac/help-sort-correctly (2026-02-28) 1 commit
546 - help: cleanup the contruction of keys_uniq
547
@@ -704,11 +582,12 @@ Release tarballs are available at:
582
583
584 * dt/send-email-client-cert (2026-03-01) 1 commit
707 - - send-email: add client certificate options
585 + (merged to 'next' on 2026-03-06 at 2a47df2166)
586 + + send-email: add client certificate options
587
588 "git send-email" learns to support use of client-side certificates.
589
711 - Will merge to 'next'?
590 + Will merge to 'master'.
591 source: <20260302032048.260209-2-dxdt@dev.snart.me>
592
593
@@ -763,7 +642,7 @@ Release tarballs are available at:
642 Reduce dependence on the global the_hash_algo and the_repository
643 variables of wt-status code path.
644
766 - Will merge to 'next'?
645 + Will merge to 'next'.
646 source: <20260218175654.66004-1-shreyanshpaliwalcmsmn@gmail.com>
647
648
@@ -903,21 +782,6 @@ Release tarballs are available at:
782 source: <pull.2156.git.git.1767379944.gitgitgadget@gmail.com>
783
784
906 -* ob/core-attributesfile-in-repository (2026-02-16) 3 commits
907 - (merged to 'next' on 2026-02-27 at 2b2e3a1fa9)
908 - + environment: move "branch.autoSetupMerge" into `struct repo_config_values`
909 - + environment: stop using core.sparseCheckout globally
910 - + environment: stop storing `core.attributesFile` globally
911 -
912 - The core.attributesfile is intended to be set per repository, but
913 - were kept track of by a single global variable in-core, which has
914 - been corrected by moving it to per-repository data structure.
915 -
916 - Will merge to 'master'.
917 - cf. <CAP8UFD2Rz3NMrTayi9yjRk4-51tStaLWKeBVB9RaJMWmiBLqrQ@mail.gmail.com>
918 - source: <cover.1771258573.git.belkid98@gmail.com>
919 -
920 -
785 * tb/incremental-midx-part-3.2 (2026-02-24) 17 commits
786 - midx: enable reachability bitmaps during MIDX compaction
787 - midx: implement MIDX compaction
@@ -970,7 +834,8 @@ Release tarballs are available at:
834
835
836 * hn/status-compare-with-push (2026-03-04) 4 commits
973 - - status: clarify how status.compareBranches deduplicates
837 + (merged to 'next' on 2026-03-06 at 7c5ad405d7)
838 + + status: clarify how status.compareBranches deduplicates
839 (merged to 'next' on 2026-02-26 at 1c11b8819a)
840 + status: add status.compareBranches config for multiple branch comparisons
841 + refactor format_branch_comparison in preparation
@@ -980,55 +845,24 @@ Release tarballs are available at:
845 and various other branches listed on status.compareBranches
846 configuration.
847
983 - Will merge to 'next' and then to 'master'?
848 + Will merge to 'master'.
849 source: <pull.2138.v30.git.git.1772102022.gitgitgadget@gmail.com>
850 source: <pull.2138.v31.git.git.1772627131.gitgitgadget@gmail.com>
851
852 --------------------------------------------------
853 [Discarded]
854
990 -* tt/receive-pack-oo-namespace-symref-fix (2025-12-27) 1 commit
991 - . receive-pack: fix crash on out-of-namespace symref
992 -
993 - "git receive-pack", when namespace is involved, segfaulted when a
994 - symbolic ref cross the namespace boundary.
995 -
996 - May not be a good idea after all. A controlled death would be OK, though.
997 - cf. <xmqqbjjgiz3a.fsf@gitster.g>
998 - source: <pull.2144.git.git.1766850014289.gitgitgadget@gmail.com>
999 -
1000 -
1001 -* kh/alias-i18n-docfix (2026-02-23) 1 commit
1002 - . doc: config: fix list continuation in alias section
1003 -
1004 - Doc mark-up fix.
1005 -
1006 - Superseded by jh/alias-i18n-fixes.
1007 - source: <followup-alias-i18n.3e0@msgid.xyz>
1008 -
1009 -
1010 -* bc/do-not-reorder-packs-during-fsck (2026-02-22) 1 commit
1011 - . fsck: do not loop infinitely when processing packs
1012 -
1013 - Access to packfiles during fsck would reorder the mru list of
1014 - packs, which causes the fsck to loop forever going over the list.
1015 -
1016 - Supersided by ps/fsck-stream-from-the-right-object-instance.
1017 - source: <20260222183710.2963424-1-sandals@crustytoothpaste.net>
1018 -
1019 -
855 * js/neuter-sideband (2026-02-03) 6 commits
856 . sideband: delay sanitizing by default to Git v3.0
1022 - - sideband: offer to configure sanitizing on a per-URL basis
1023 - - sideband: add options to allow more control sequences to be passed through
1024 - - sideband: do allow ANSI color sequences by default
1025 - - sideband: introduce an "escape hatch" to allow control characters
1026 - - sideband: mask control characters
857 + . sideband: offer to configure sanitizing on a per-URL basis
858 + . sideband: add options to allow more control sequences to be passed through
859 + . sideband: do allow ANSI color sequences by default
860 + . sideband: introduce an "escape hatch" to allow control characters
861 + . sideband: mask control characters
862
863 Invalidate control characters in sideband messages, to avoid
864 terminal state getting messed up.
865
1031 - Was expecting review responses for too long.
866 Superseded by 'jc/neuter-sideband-fixup', which reuses most of the patches.
867 cf. <xmqqv7gcnwd4.fsf@gitster.g>
868 source: <pull.1853.v4.git.1770113882.gitgitgadget@gmail.com>