What's cooking (2026/03 #01)

Junio C Hamano committed Mar 2, 2026 at 17:41 UTC eca3c3734ca6e2d7e892ed9b1a174044b0092328
1 file changed +259 -334
whats-cooking.txt
+259 -334
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Feb 2026, #11)
3 -X-master-at: 2cc71917514657b93014134350864f4849edfc83
4 -X-next-at: 625c4fb2daac9879b299dd1cae2e793d2821dec0
2 +Subject: What's cooking in git.git (Mar 2026, #01)
3 +X-master-at: 4805bb993087cb1fb9a81470aaa238123c0ed6e2
4 +X-next-at: 1c1a6361099e1f5da60de11cc2655846ea369be3
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Feb 2026, #11)
7 +What's cooking in git.git (Mar 2026, #01)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -50,162 +50,242 @@ Release tarballs are available at:
50 --------------------------------------------------
51 [Graduated to 'master']
52
53 -* ap/use-test-seq-f-more (2026-02-18) 1 commit
54 - (merged to 'next' on 2026-02-20 at d847fcad1e)
55 - + t: use test_seq -f and pipes in a few more places
53 +* ag/http-netrc-tests (2026-01-06) 1 commit
54 + (merged to 'next' on 2026-02-22 at acae2989d4)
55 + + t5550: add netrc tests for http 401/403
56
57 - Test clean-up.
58 - source: <20260218181019.1705160-1-aplattner@nvidia.com>
57 + Additional tests were introduced to see the interaction with netrc
58 + auth with auth failure on the http transport.
59 + source: <20260107074724.13165-1-git@ashlesh.me>
60 +
61 +
62 +* jt/object-file-use-container-of (2026-02-22) 2 commits
63 + (merged to 'next' on 2026-02-22 at 309c995771)
64 + + object-file.c: avoid container_of() of a NULL container
65 + (merged to 'next' on 2026-02-20 at 7a30cb262f)
66 + + object-file: use `container_of()` to convert from base types
67 +
68 + Code clean-up.
69 + source: <20260218210120.1146078-1-jltobler@gmail.com>
70 + source: <xmqqh5r8r0to.fsf_-_@gitster.g>
71 +
72 +
73 +* kh/doc-am-xref (2026-02-09) 4 commits
74 + (merged to 'next' on 2026-02-22 at 920d0c2836)
75 + + doc: am: fill out hook discussion
76 + + doc: am: add missing config am.messageId
77 + + doc: am: say that --message-id adds a trailer
78 + + doc: am: normalize git(1) command links
79
80 + Doc update.
81 + source: <doc_am_gitlinks_and_am.messageId.321@msgid.xyz>
82
61 -* db/doc-fetch-jobs-auto (2026-02-18) 1 commit
62 - (merged to 'next' on 2026-02-20 at 4e20a85963)
63 - + doc: fetch: document `--jobs=0` behavior
83 +
84 +* kh/doc-patch-id-4 (2026-02-14) 3 commits
85 + (merged to 'next' on 2026-02-22 at bfae23ac5e)
86 + + doc: patch-id: see also git-cherry(1)
87 + + doc: patch-id: add script example
88 + + doc: patch-id: emphasize multi-patch processing
89
90 Doc update.
66 - source: <pull.2047.git.1771443159369.gitgitgadget@gmail.com>
91 + source: <V2_CV_doc_patch-id_4.371@msgid.xyz>
92 +
93 +
94 +* ps/meson-gitk-git-gui (2026-02-04) 1 commit
95 + (merged to 'next' on 2026-02-22 at a6cd49271f)
96 + + meson: wire up gitk and git-gui
97 +
98 + Plumb gitk/git-gui build and install procedure in meson based
99 + builds.
100 + source: <20260204-b4-pks-meson-tcl-tk-v2-1-5bc3ccf3a8ce@pks.im>
101
102
69 -* jc/checkout-switch-restore (2026-01-29) 2 commits
70 - (merged to 'next' on 2026-02-20 at a386d47625)
71 - + checkout: tell "parse_remote_branch" which command is calling it
72 - + checkout: pass program-readable token to unified "main"
103 +* ps/object-info-bits-cleanup (2026-02-11) 5 commits
104 + (merged to 'next' on 2026-02-22 at 4d702cbecc)
105 + + odb: convert `odb_has_object()` flags into an enum
106 + + odb: convert object info flags into an enum
107 + + odb: drop gaps in object info flag values
108 + + builtin/fsck: fix flags passed to `odb_has_object()`
109 + + builtin/backfill: fix flags passed to `odb_has_object()`
110 + (this branch is used by ps/odb-sources.)
111 +
112 + A couple of bugs in use of flag bits around odb API has been
113 + corrected, and the flag bits reordered.
114 + source: <20260212-b4-pks-read-object-info-flags-v2-0-3bfa9bb149ef@pks.im>
115 +
116 +
117 +* ps/odb-for-each-object (2026-01-26) 16 commits
118 + (merged to 'next' on 2026-02-22 at 80178ecd0d)
119 + + odb: drop unused `for_each_{loose,packed}_object()` functions
120 + + reachable: convert to use `odb_for_each_object()`
121 + + builtin/pack-objects: use `packfile_store_for_each_object()`
122 + + odb: introduce mtime fields for object info requests
123 + + treewide: drop uses of `for_each_{loose,packed}_object()`
124 + + treewide: enumerate promisor objects via `odb_for_each_object()`
125 + + builtin/fsck: refactor to use `odb_for_each_object()`
126 + + odb: introduce `odb_for_each_object()`
127 + + packfile: introduce function to iterate through objects
128 + + packfile: extract function to iterate through objects of a store
129 + + object-file: introduce function to iterate through objects
130 + + object-file: extract function to read object info from path
131 + + odb: fix flags parameter to be unsigned
132 + + odb: rename `FOR_EACH_OBJECT_*` flags
133 + + Merge branch 'ps/packfile-store-in-odb-source' into ps/odb-for-each-object
134 + + Merge branch 'ps/read-object-info-improvements' into ps/odb-for-each-object
135 + (this branch is used by ps/odb-sources.)
136
74 - "git switch <name>", in an attempt to create a local branch <name>
75 - after a remote tracking branch of the same name gave an advise
76 - message to disambiguate using "git checkout", which has been
77 - updated to use "git switch".
78 - source: <20260129190616.645471-1-gitster@pobox.com>
137 + Revamp object enumeration API around odb.
138 + source: <20260126-pks-odb-for-each-object-v4-0-5a64a038c791@pks.im>
139 +
140 +
141 +* ps/receive-pack-shallow-optim (2026-02-16) 3 commits
142 + (merged to 'next' on 2026-02-22 at ad6abc1ef8)
143 + + commit: use commit graph in `lookup_commit_reference_gently()`
144 + + commit: make `repo_parse_commit_no_graph()` more robust
145 + + commit: avoid parsing non-commits in `lookup_commit_reference_gently()`
146 +
147 + The code to accept shallow "git push" has been optimized.
148 + source: <20260216-b4-pks-receive-pack-optimize-shallow-v1-0-e98886daff2b@pks.im>
149
150
81 -* jc/whitespace-incomplete-line (2026-02-04) 1 commit
82 - (merged to 'next' on 2026-02-20 at 1d5f62e778)
83 - + whitespace: symbolic links usually lack LF at the end
151 +* ps/validate-prefix-in-subtree-split (2026-02-03) 1 commit
152 + (merged to 'next' on 2026-02-22 at f44d607586)
153 + + subtree: validate --prefix against commit in split
154
85 - It does not make much sense to apply the "incomplete-line"
86 - whitespace rule to symbolic links, whose contents almost always
87 - lack the final newline. "git apply" and "git diff" are now taught
88 - to exclude them for a change to symbolic links.
89 - source: <xmqqpl6hhm96.fsf@gitster.g>
155 + "git subtree split --prefix=P <commit>" now checks the prefix P
156 + against the tree of the (potentially quite different from the
157 + current working tree) given commit.
158 + source: <20260203164815.68258-2-pushkarkumarsingh1970@gmail.com>
159
160
92 -* jh/alias-i18n (2026-02-18) 4 commits
93 - (merged to 'next' on 2026-02-20 at b9a5c15c4f)
94 - + completion: fix zsh alias listing for subsection aliases
95 - + alias: support non-alphanumeric names via subsection syntax
96 - + alias: prepare for subsection aliases
97 - + help: use list_aliases() for alias listing
98 - (this branch is used by jh/alias-i18n-fixes and kh/alias-i18n-docfix.)
161 +* pw/meson-doc-mergetool (2026-02-09) 1 commit
162 + (merged to 'next' on 2026-02-22 at dfdfff02f8)
163 + + meson: fix building mergetool docs
164
100 - Extend the alias configuration syntax to allow aliases using
101 - characters outside ASCII alphanumeric (plus '-').
102 - source: <20260218215737.1181147-1-jonatan@jontes.page>
165 + Update build precedure for mergetool documentation in meson-based builds.
166 + source: <604c79018992dee019205741934508091cdd1e47.1770631599.git.phillip.wood@dunelm.org.uk>
167
168
105 -* jk/ref-filter-lrstrip-optim (2026-02-19) 5 commits
106 - (merged to 'next' on 2026-02-20 at 88c2fb76b8)
107 - + ref-filter: clarify lstrip/rstrip component counting
108 - (merged to 'next' on 2026-02-19 at 6efc8a2023)
109 - + ref-filter: avoid strrchr() in rstrip_ref_components()
110 - + ref-filter: simplify rstrip_ref_components() memory handling
111 - + ref-filter: simplify lstrip_ref_components() memory handling
112 - + ref-filter: factor out refname component counting
169 +* ty/symlinks-use-unsigned-for-bitset (2026-02-16) 1 commit
170 + (merged to 'next' on 2026-02-22 at 6546dc5cf2)
171 + + symlinks: use unsigned int for flags
172
173 Code clean-up.
115 - source: <20260215085755.GA86262@coredump.intra.peff.net>
116 - source: <20260220060003.GA26256@coredump.intra.peff.net>
174 + source: <20260216172028.140525-1-a3205153416@gmail.com>
175 +
176 +
177 +* uk/signature-is-good-after-key-expires (2026-02-04) 1 commit
178 + (merged to 'next' on 2026-02-22 at 094113b392)
179 + + gpg-interface: signatures by expired keys are fine
180 +
181 + A signature on a commit that was GPG signed long time ago ought to
182 + be still valid after the key that was used to sign it has expired,
183 + but we showed them in alarming red.
184 + source: <20260204152306.1767112-2-ukleinek@kernel.org>
185 +
186 +--------------------------------------------------
187 +[New Topics]
188 +
189 +* fp/t3310-test-path-is-helpers (2026-02-27) 1 commit
190 + - t3310: replace test -f/-d with test_path_is_file/test_path_is_dir
191 +
192 + Test clean-up.
193 +
194 + Will merge to 'next'.
195 + source: <20260228005939.9012-1-francescopaparatto@gmail.com>
196 +
197 +
198 +* jc/neuter-sideband-fixup (2026-03-02) 8 commits
199 + - sideband: conditional documentation fix
200 + - sideband: delay sanitizing by default to Git v3.0
201 + - sideband: drop 'default' configuration
202 + - sideband: offer to configure sanitizing on a per-URL basis
203 + - sideband: add options to allow more control sequences to be passed through
204 + - sideband: do allow ANSI color sequences by default
205 + - sideband: introduce an "escape hatch" to allow control characters
206 + - sideband: mask control characters
207 +
208 + Try to resurrect and reboot a stalled "avoid sending risky escape
209 + sequences taken from sideband" topic.
210
211 + Comments?
212 + source: <pull.1853.v4.git.1770113882.gitgitgadget@gmail.com>
213 + source: <20260302181149.3502811-1-gitster@pobox.com>
214
119 -* lo/repo-info-keys (2026-02-13) 2 commits
120 - (merged to 'next' on 2026-02-19 at 3a9b510b86)
121 - + repo: add new flag --keys to git-repo-info
122 - + repo: rename the output format "keyvalue" to "lines"
123 - (this branch is used by lo/repo-leftover-bits.)
215
125 - "git repo info" learns "--keys" action to list known keys.
126 - source: <20260214005818.37349-1-lucasseikioshiro@gmail.com>
216 +* mm/diff-no-index-find-object (2026-02-28) 1 commit
217 + - diff: fix crash with --find-object outside repository
218
219 + "git diff --no-index --find-object=<object-name>" outside a
220 + repository of course wouldn't be able to find the object and died
221 + while parsing the command line, which is made to die in a bit more
222 + user-friendly way.
223
129 -* mf/format-patch-honor-from-for-cover-letter (2026-02-17) 1 commit
130 - (merged to 'next' on 2026-02-20 at d3efdd79b2)
131 - + format-patch: fix From header in cover letter
224 + Will merge to 'next'.
225 + source: <pull.2057.git.1772310676438.gitgitgadget@gmail.com>
226
133 - "git format-patch --from=<me>" did not honor the command line
134 - option when writing out the cover letter, which has been corrected.
135 - source: <20260217232519.24898-1-mroik@delayed.space>
227
228 +* ps/ci-reduce-gitlab-envsize (2026-03-02) 1 commit
229 + - ci: unset GITLAB_FEATURES envvar to not bust xargs(1) limits
230
138 -* ps/ci-gitlab-msvc-updates (2026-02-18) 7 commits
139 - (merged to 'next' on 2026-02-20 at b2a8b7bf93)
140 - + gitlab-ci: handle failed tests on MSVC+Meson job
141 - + gitlab-ci: use "run-test-slice-meson.sh"
142 - + ci: make test slicing consistent across Meson/Make
143 - + github: fix Meson tests not executing at all
144 - + meson: fix MERGE_TOOL_DIR with "--no-bin-wrappers"
145 - + ci: don't skip smallest test slice in GitLab
146 - + ci: handle failures of test-slice helper
231 + CI fix.
232
148 - CI update.
149 - source: <20260219-b4-pks-ci-meson-improvements-v2-0-6047b8307ab2@pks.im>
233 + Will merge to 'next'.
234 + source: <20260302-pks-msvc-meson-xargs-v1-1-8e42abd879ce@pks.im>
235
236
152 -* ps/for-each-ref-in-fixes (2026-02-18) 4 commits
153 - (merged to 'next' on 2026-02-19 at 5397753d41)
154 - + bisect: simplify string_list memory handling
155 - + bisect: fix misuse of `refs_for_each_ref_in()`
156 - + pack-bitmap: fix bug with exact ref match in "pack.preferBitmapTips"
157 - + pack-bitmap: deduplicate logic to iterate over preferred bitmap tips
158 - (this branch is used by ps/refs-for-each.)
237 +* pt/fsmonitor-watchman-sample-fix (2026-02-28) 1 commit
238 + - fsmonitor-watchman: fix variable reference and remove redundant code
239
160 - A handful of places used refs_for_each_ref_in() API incorrectly,
161 - which has been corrected.
162 - source: <20260219-b4-pks-fix-for-each-ref-in-misuse-v4-0-57ac30172fae@pks.im>
240 + Fix typo-induced breakages in fsmonitor-watchman sample hook.
241
242 + Will merge to 'next'.
243 + source: <pull.2180.v2.git.git.1772300277959.gitgitgadget@gmail.com>
244
165 -* ps/history-ergonomics-updates (2026-02-15) 5 commits
166 - (merged to 'next' on 2026-02-19 at 9d5bc4efc5)
167 - + Documentation/git-history: document default for "--update-refs="
168 - + builtin/history: rename "--ref-action=" to "--update-refs="
169 - + builtin/history: replace "--ref-action=print" with "--dry-run"
170 - + builtin/history: check for merges before asking for user input
171 - + builtin/history: perform revwalk checks before asking for user input
245
173 - UI improvements for "git history reword".
174 - source: <20260216-b4-pks-history-dry-run-v3-0-c4db58a651fc@pks.im>
246 +* sk/oidmap-clear-with-custom-free-func (2026-03-02) 5 commits
247 + - sequencer: use oidmap_clear_with_free() for string_entry cleanup
248 + - odb: use oidmap_clear_with_free() to release replace_map entries
249 + - list-objects-filter: use oidmap_clear_with_free() for cleanup
250 + - builtin/rev-list: migrate missing_objects cleanup to oidmap_clear_with_free()
251 + - oidmap: make entry cleanup explicit in oidmap_clear
252
253 + A bit of OIDmap API enhancement and cleanup.
254
177 -* ps/tests-wo-iconv-fixes (2026-02-20) 5 commits
178 - (merged to 'next' on 2026-02-20 at 277b2c99aa)
179 - + t6006: don't use iconv(1) without ICONV prereq
180 - + t5550: add ICONV prereq to tests that use "$HTTPD_URL/error"
181 - + t4205: improve handling of ICONV prerequisite
182 - + t40xx: don't use iconv(1) without ICONV prereq
183 - + t: don't set ICONV prereq when iconv(1) is missing
255 + Comments?
256 + source: <20260302200018.75731-1-kuforiji98@gmail.com>
257
185 - Some tests assumed "iconv" is available without honoring ICONV
186 - prerequisite, which has been corrected.
187 - source: <20260220-b4-pks-ci-msvc-iconv-fixes-v4-0-e0e6bbcaeb5b@pks.im>
258 +
259 +* ss/test-that-that-typofix (2026-03-02) 1 commit
260 + - t: fix "that that" typo in lib-unicode-nfc-nfd.sh
261 +
262 + Typofix in t/.
263 +
264 + Will merge to 'next'.
265 + source: <20260302192627.83631-1-r.siddharth.shrimali@gmail.com>
266
267 --------------------------------------------------
190 -[New Topics]
268 +[Cooking]
269
270 * jk/repo-structure-cleanup (2026-02-23) 1 commit
193 - - repo: remove unnecessary variable shadow
271 + (merged to 'next' on 2026-03-02 at e1647839fa)
272 + + repo: remove unnecessary variable shadow
273
274 Code clean-up.
275
197 - Will merge to 'next'.
276 + Will merge to 'master'.
277 source: <20260223135248.127935-1-jayatheerthkulkarni2005@gmail.com>
278
279
280 * lp/diff-stat-utf8-display-width-fix (2026-02-27) 2 commits
202 - - t4052: test for diffstat width when prefix contains ANSI escape codes
203 - - diff: handle ANSI escape codes in prefix when calculating diffstat width
281 + (merged to 'next' on 2026-03-02 at b979797314)
282 + + t4052: test for diffstat width when prefix contains ANSI escape codes
283 + + diff: handle ANSI escape codes in prefix when calculating diffstat width
284
285 "git log --graph --stat" did not count the display width of colored
286 graph part of its own output correctly, which has been corrected.
287
208 - Will merge to 'next'.
288 + Will merge to 'master'.
289 source: <cover.1772226209.git.lorenzo.pegorari2002@gmail.com>
290
291
@@ -222,32 +302,31 @@ Release tarballs are available at:
302 source: <20260227-pks-upload-pack-write-contention-v1-0-7166fe255704@pks.im>
303
304
225 -* rs/parse-options-duplicated-long-options (2026-02-27) 2 commits
305 +* rs/parse-options-duplicated-long-options (2026-02-28) 2 commits
306 - parseopt: check for duplicate long names and numerical options
307 - pack-objects: remove duplicate --stdin-packs definition
308
309 The parse-options API learned to notice an options[] array with
310 duplicated long options.
311
232 - Expecting a review response.
233 - cf. <20260227230822.GA2965111@coredump.intra.peff.net>
234 - source: <xmqq5x7jujqb.fsf@gitster.g>
312 + Will merge to 'next'.
313 + source: <1e7de0f7-a712-465f-b3c9-5dbe78132d3f@web.de>
314 + source: <7693799a-91a2-480a-ae3e-29f8eed5b55a@web.de>
315
236 ---------------------------------------------------
237 -[Cooking]
316
239 -* jt/repo-structure-extrema (2026-02-23) 5 commits
317 +* jt/repo-structure-extrema (2026-03-02) 6 commits
318 - builtin/repo: find tree with most entries
319 - builtin/repo: find commit with most parents
320 - builtin/repo: add OID annotations to table output
321 - builtin/repo: collect largest inflated objects
322 + - builtin/repo: add helper for printing keyvalue output
323 - builtin/repo: update stats for each object
324
325 "git repo structure" command learns to report maximum values on
326 various aspects of objects it inspects.
327
328 Will merge to 'next'?
250 - source: <20260223174120.2356504-1-jltobler@gmail.com>
329 + source: <20260302214526.2034279-1-jltobler@gmail.com>
330
331
332 * ps/fsck-stream-from-the-right-object-instance (2026-02-23) 4 commits
@@ -285,7 +364,6 @@ Release tarballs are available at:
364 - odb: split `struct odb_source` into separate header
365 - Merge branch 'ps/object-info-bits-cleanup' into ps/odb-sources
366 - Merge branch 'ps/odb-for-each-object' into ps/odb-sources
288 - (this branch uses ps/object-info-bits-cleanup and ps/odb-for-each-object.)
367
368 The object source API is getting restructured to allow plugging new
369 backends.
@@ -294,27 +372,29 @@ Release tarballs are available at:
372 source: <20260223-b4-pks-odb-source-pluggable-v1-0-253bac1db598@pks.im>
373
374
297 -* ds/for-each-repo-w-worktree (2026-02-24) 2 commits
375 +* ds/for-each-repo-w-worktree (2026-03-02) 4 commits
376 + - for-each-repo: simplify passing of parameters
377 - for-each-repo: work correctly in a worktree
378 + - run-command: extract clear_local_repo_env helper
379 - for-each-repo: test outside of repo context
380
381 "git for-each-repo" started from a secondary worktree did not work
382 as expected, which has been corrected.
383
304 - Expecting a (hopefully small and final) reroll?
305 - cf. <20260225131344.GA2139176@coredump.intra.peff.net>
306 - source: <pull.2056.v2.git.1771968924.gitgitgadget@gmail.com>
384 + Will merge to 'next'?
385 + source: <pull.2056.v3.git.1772465805.gitgitgadget@gmail.com>
386
387
388 * jh/alias-i18n-fixes (2026-02-26) 4 commits
310 - - git, help: fix memory leaks in alias listing
311 - - alias: treat empty subsection [alias ""] as plain [alias]
312 - - doc: fix list continuation in alias subsection example
313 - - Merge branch 'jh/alias-i18n' into jh/alias-i18n-fixes
389 + (merged to 'next' on 2026-03-02 at 914bcef227)
390 + + git, help: fix memory leaks in alias listing
391 + + alias: treat empty subsection [alias ""] as plain [alias]
392 + + doc: fix list continuation in alias subsection example
393 + + Merge branch 'jh/alias-i18n' into jh/alias-i18n-fixes
394
395 Further update to the i18n alias support to avoid regressions.
396
317 - Will merge to 'next'.
397 + Will merge to 'master'.
398 source: <20260226205339.1535482-1-jonatan@jontes.page>
399
400
@@ -328,9 +408,8 @@ Release tarballs are available at:
408 "git rebase" learns "--trailer" command to drive the
409 interpret-trailers machinery.
410
331 - Needs (hopefully final) review.
332 - cf. <xmqqecm74fcd.fsf@gitster.g>
333 - cf. <83cac4b2-c59d-4ab2-9dfc-2f615ed3959d@gmail.com>
411 + Expecting a (hopefully small and final) reroll?
412 + cf. <e555e29f-57e3-4192-98f3-380181c81fd2@gmail.com>
413 source: <20260224070552.148591-1-me@linux.beauty>
414
415
@@ -350,15 +429,15 @@ Release tarballs are available at:
429 source: <cover.1772232373.git.mroik@delayed.space>
430
431
353 -* sp/send-email-validate-charset (2026-02-26) 1 commit
432 +* sp/send-email-validate-charset (2026-02-28) 1 commit
433 - send-email: validate charset name in 8bit encoding prompt
434
435 "git send-email" has learned to be a bit more careful when it
436 accepts charset to use from the end-user, to avoid 'y' (mistaken
437 'yes' when expecting a charset like 'UTF-8') and other nonsense.
438
360 - Expecting a review response.
361 - source: <20260226165559.187261-1-shreyanshpaliwalcmsmn@gmail.com>
439 + Will merge to 'next'?
440 + source: <20260228112210.270273-1-shreyanshpaliwalcmsmn@gmail.com>
441
442
443 * cx/fetch-display-ubfix (2026-02-24) 1 commit
@@ -400,16 +479,15 @@ Release tarballs are available at:
479 source: <pull.2150.v2.git.git.1767226763360.gitgitgadget@gmail.com>
480
481
403 -* ac/help-sort-correctly (2026-02-21) 2 commits
404 - - SQUASH??? simplify
482 +* ac/help-sort-correctly (2026-02-28) 1 commit
483 - help: cleanup the contruction of keys_uniq
484
485 The code in "git help" that shows configuration items in sorted
486 order was awkwardly organized and prone to bugs.
487
410 - Expecting a (hopefully small and final) reroll, with tests.
411 - cf. <CAPvEtrfmgq8f2z7tAvR-oCEYoiG2B+Pj9EqjUsKuewnO73tVPg@mail.gmail.com>
412 - source: <20260221162359.43336-2-amishhhaaaa@gmail.com>
488 + Comments?
489 + cf. <xmqqwlzu43rh.fsf@gitster.g>
490 + source: <20260228104654.80831-2-amishhhaaaa@gmail.com>
491
492
493 * lg/t2004-test-path-is-helpers (2026-02-21) 1 commit
@@ -467,20 +545,8 @@ Release tarballs are available at:
545 source: <20260220060442.29469-1-bkkaracay@gmail.com>
546
547
470 -* jt/object-file-use-container-of (2026-02-22) 2 commits
471 - (merged to 'next' on 2026-02-22 at 309c995771)
472 - + object-file.c: avoid container_of() of a NULL container
473 - (merged to 'next' on 2026-02-20 at 7a30cb262f)
474 - + object-file: use `container_of()` to convert from base types
475 -
476 - Code clean-up.
477 -
478 - Will merge to 'master'.
479 - source: <20260218210120.1146078-1-jltobler@gmail.com>
480 - source: <xmqqh5r8r0to.fsf_-_@gitster.g>
481 -
482 -
483 -* kh/format-patch-noprefix-is-boolean (2026-02-23) 2 commits
548 +* kh/format-patch-noprefix-is-boolean (2026-03-01) 3 commits
549 + - doc: diff-options.adoc: make *.noprefix split translatable
550 (merged to 'next' on 2026-02-26 at fcf4773929)
551 + doc: diff-options.adoc: show format.noprefix for format-patch
552 + format-patch: make format.noprefix a boolean
@@ -488,8 +554,9 @@ Release tarballs are available at:
554 The configuration variable format.noprefix did not behave as a
555 proper boolean variable, which has now been fixed and documented.
556
491 - Will merge to 'master'.
557 + Will merge to 'next' and then to 'master'.
558 source: <V2_CV_format.noprefix_boolean.421@msgid.xyz>
559 + source: <better_for_translators.424@msgid.xyz>
560
561
562 * pw/no-more-NULL-means-current-worktree (2026-02-19) 2 commits
@@ -517,14 +584,13 @@ Release tarballs are available at:
584 source: <20260217-cs-subtree-remove-optimization-v2-0-4299e71a30c6@howdoi.land>
585
586
520 -* dt/send-email-client-cert (2026-02-20) 1 commit
521 - - send-mail: add client certificate options
587 +* dt/send-email-client-cert (2026-03-01) 1 commit
588 + - send-email: add client certificate options
589
590 "git send-email" learns to support use of client-side certificates.
591
525 - Expecting a (hopefully small and final) reroll.
526 - cf. <xmqqo6lb4fuy.fsf@gitster.g>
527 - source: <20260220081717.555185-2-dxdt@dev.snart.me>
592 + Will merge to 'next'?
593 + source: <20260302032048.260209-2-dxdt@dev.snart.me>
594
595
596 * en/merge-ort-almost-wo-the-repository (2026-02-19) 6 commits
@@ -655,18 +721,6 @@ Release tarballs are available at:
721 source: <4ef96c6bbf698a08df1df87b7cb053b6d0d00822.1771943954.git.ben.knoble+github@gmail.com>
722
723
658 -* ps/receive-pack-shallow-optim (2026-02-16) 3 commits
659 - (merged to 'next' on 2026-02-22 at ad6abc1ef8)
660 - + commit: use commit graph in `lookup_commit_reference_gently()`
661 - + commit: make `repo_parse_commit_no_graph()` more robust
662 - + commit: avoid parsing non-commits in `lookup_commit_reference_gently()`
663 -
664 - The code to accept shallow "git push" has been optimized.
665 -
666 - Will merge to 'master'.
667 - source: <20260216-b4-pks-receive-pack-optimize-shallow-v1-0-e98886daff2b@pks.im>
668 -
669 -
724 * sp/wt-status-wo-the-repository (2026-02-18) 3 commits
725 - wt-status: use hash_algo from local repository instead of global the_hash_algo
726 - wt-status: replace uses of the_repository with local repository instances
@@ -705,41 +759,6 @@ Release tarballs are available at:
759 source: <20260224061329.60364-2-hanyang.tony@bytedance.com>
760
761
708 -* kh/doc-patch-id-4 (2026-02-14) 3 commits
709 - (merged to 'next' on 2026-02-22 at bfae23ac5e)
710 - + doc: patch-id: see also git-cherry(1)
711 - + doc: patch-id: add script example
712 - + doc: patch-id: emphasize multi-patch processing
713 -
714 - Doc update.
715 -
716 - Will merge to 'master'.
717 - source: <V2_CV_doc_patch-id_4.371@msgid.xyz>
718 -
719 -
720 -* kh/doc-am-xref (2026-02-09) 4 commits
721 - (merged to 'next' on 2026-02-22 at 920d0c2836)
722 - + doc: am: fill out hook discussion
723 - + doc: am: add missing config am.messageId
724 - + doc: am: say that --message-id adds a trailer
725 - + doc: am: normalize git(1) command links
726 -
727 - Doc update.
728 -
729 - Will merge to 'master'.
730 - source: <doc_am_gitlinks_and_am.messageId.321@msgid.xyz>
731 -
732 -
733 -* pw/meson-doc-mergetool (2026-02-09) 1 commit
734 - (merged to 'next' on 2026-02-22 at dfdfff02f8)
735 - + meson: fix building mergetool docs
736 -
737 - Update build precedure for mergetool documentation in meson-based builds.
738 -
739 - Will merge to 'master'.
740 - source: <604c79018992dee019205741934508091cdd1e47.1770631599.git.phillip.wood@dunelm.org.uk>
741 -
742 -
762 * ds/config-list-with-type (2026-02-23) 13 commits
763 (merged to 'next' on 2026-02-26 at cdaee07fde)
764 + config: use an enum for type
@@ -817,7 +836,8 @@ Release tarballs are available at:
836 source: <20260225-kn-alternate-ref-dir-v9-0-3fe118e40e28@gmail.com>
837
838
820 -* ar/config-hooks (2026-02-18) 9 commits
839 +* ar/config-hooks (2026-03-02) 10 commits
840 + - Merge branch 'ar/run-command-hook-take-2' into ar/config-hooks
841 (merged to 'next' on 2026-02-27 at 6a04cca28e)
842 + hook: add -z option to "git hook list"
843 + hook: allow out-of-repo 'git hook' invocations
@@ -834,33 +854,10 @@ Release tarballs are available at:
854 configuration files, and run multiple of them for the same hook
855 event.
856
837 - Will merge to 'master'.
857 + Will merge to 'next' and then to 'master'.
858 source: <20260218222352.55393-1-adrian.ratiu@collabora.com>
859
860
841 -* ps/meson-gitk-git-gui (2026-02-04) 1 commit
842 - (merged to 'next' on 2026-02-22 at a6cd49271f)
843 - + meson: wire up gitk and git-gui
844 -
845 - Plumb gitk/git-gui build and install procedure in meson based
846 - builds.
847 -
848 - Will merge to 'master'.
849 - source: <20260204-b4-pks-meson-tcl-tk-v2-1-5bc3ccf3a8ce@pks.im>
850 -
851 -
852 -* uk/signature-is-good-after-key-expires (2026-02-04) 1 commit
853 - (merged to 'next' on 2026-02-22 at 094113b392)
854 - + gpg-interface: signatures by expired keys are fine
855 -
856 - A signature on a commit that was GPG signed long time ago ought to
857 - be still valid after the key that was used to sign it has expired,
858 - but we showed them in alarming red.
859 -
860 - Will merge to 'master'.
861 - source: <20260204152306.1767112-2-ukleinek@kernel.org>
862 -
863 -
861 * ar/parallel-hooks (2026-02-21) 11 commits
862 - hook: allow runtime enabling extensions.hookStdoutToStderr
863 - hook: introduce extensions.hookStdoutToStderr
@@ -879,46 +876,20 @@ Release tarballs are available at:
876 source: <20260222002904.1879356-1-adrian.ratiu@collabora.com>
877
878
882 -* ps/object-info-bits-cleanup (2026-02-11) 5 commits
883 - (merged to 'next' on 2026-02-22 at 4d702cbecc)
884 - + odb: convert `odb_has_object()` flags into an enum
885 - + odb: convert object info flags into an enum
886 - + odb: drop gaps in object info flag values
887 - + builtin/fsck: fix flags passed to `odb_has_object()`
888 - + builtin/backfill: fix flags passed to `odb_has_object()`
889 - (this branch is used by ps/odb-sources.)
890 -
891 - A couple of bugs in use of flag bits around odb API has been
892 - corrected, and the flag bits reordered.
893 -
894 - Will merge to 'master'.
895 - source: <20260212-b4-pks-read-object-info-flags-v2-0-3bfa9bb149ef@pks.im>
896 -
897 -
898 -* ty/symlinks-use-unsigned-for-bitset (2026-02-16) 1 commit
899 - (merged to 'next' on 2026-02-22 at 6546dc5cf2)
900 - + symlinks: use unsigned int for flags
901 -
902 - Code clean-up.
903 -
904 - Will merge to 'master'.
905 - source: <20260216172028.140525-1-a3205153416@gmail.com>
906 -
907 -
908 -* ng/submodule-default-remote (2026-01-23) 3 commits
909 - - SQUASH??? fixup
910 - - SQUASH??? fixup
879 +* ng/submodule-default-remote (2026-02-28) 1 commit
880 - submodule: fetch missing objects from default remote
881
882 Instead of hardcoded 'origin', use the configured default remote
883 when fetching from submodules.
884
916 - Expecting a reroll.
917 - cf. <xmqqms23lpn2.fsf@gitster.g>
918 - source: <20260122152722.866341-1-nasser.grainawi@oss.qualcomm.com>
885 + Will merge to 'next'.
886 + cf. <CA+P7+xqC10D9a3zp7JO_yoK9Vjpg+xua7yH=fGXjApUYisTf4w@mail.gmail.com>
887 + source: <20260301025327.3845292-1-nasser.grainawi@oss.qualcomm.com>
888
889
921 -* ar/run-command-hook-take-2 (2026-01-28) 12 commits
890 +* ar/run-command-hook-take-2 (2026-03-02) 13 commits
891 + (merged to 'next' on 2026-03-02 at f5aabac117)
892 + + builtin/receive-pack: avoid spinning no-op sideband async threads
893 (merged to 'next' on 2026-02-22 at 4aa543f115)
894 + receive-pack: convert receive hooks to hook API
895 + receive-pack: convert update hooks to new API
@@ -939,6 +910,7 @@ Release tarballs are available at:
910
911 Will merge to 'master'.
912 source: <20260128213927.3026875-1-adrian.ratiu@collabora.com>
913 + source: <20260302191704.1814567-1-adrian.ratiu@collabora.com>
914
915
916 * yc/histogram-hunk-shift-fix (2025-12-06) 1 commit
@@ -952,76 +924,23 @@ Release tarballs are available at:
924 source: <pull.2120.git.git.1765054287938.gitgitgadget@gmail.com>
925
926
955 -* js/neuter-sideband (2026-02-03) 6 commits
956 - - sideband: delay sanitizing by default to Git v3.0
957 - - sideband: offer to configure sanitizing on a per-URL basis
958 - - sideband: add options to allow more control sequences to be passed through
959 - - sideband: do allow ANSI color sequences by default
960 - - sideband: introduce an "escape hatch" to allow control characters
961 - - sideband: mask control characters
962 -
963 - Invalidate control characters in sideband messages, to avoid
964 - terminal state getting messed up.
965 -
966 - Expecting review responses.
967 - cf. <xmqqv7gcnwd4.fsf@gitster.g>
968 - source: <pull.1853.v4.git.1770113882.gitgitgadget@gmail.com>
969 -
970 -
927 * cs/add-skip-submodule-ignore-all (2026-02-06) 5 commits
972 - - Documentation: update add --force option + ignore=all config
973 - - tests: fix existing tests when add an ignore=all submodule
974 - - tests: t2206-add-submodule-ignored: ignore=all and add --force tests
975 - - read-cache: submodule add need --force given ignore=all configuration
976 - - read-cache: update add_files_to_cache take param ignored_too
928 + (merged to 'next' on 2026-03-02 at c7251cc68f)
929 + + Documentation: update add --force option + ignore=all config
930 + + tests: fix existing tests when add an ignore=all submodule
931 + + tests: t2206-add-submodule-ignored: ignore=all and add --force tests
932 + + read-cache: submodule add need --force given ignore=all configuration
933 + + read-cache: update add_files_to_cache take param ignored_too
934
935 "git add <submodule>" has been taught to honor
936 submodule.<name>.ignore that is set to "all" (and requires "git add
937 -f" to override it).
938
982 - Will merge to 'next'.
939 + Will merge to 'master'.
940 cf. <xmqq5x7rvyn4.fsf@gitster.g>
941 source: <pull.1987.v4.git.1770384180.gitgitgadget@gmail.com>
942
943
987 -* ps/odb-for-each-object (2026-01-26) 16 commits
988 - (merged to 'next' on 2026-02-22 at 80178ecd0d)
989 - + odb: drop unused `for_each_{loose,packed}_object()` functions
990 - + reachable: convert to use `odb_for_each_object()`
991 - + builtin/pack-objects: use `packfile_store_for_each_object()`
992 - + odb: introduce mtime fields for object info requests
993 - + treewide: drop uses of `for_each_{loose,packed}_object()`
994 - + treewide: enumerate promisor objects via `odb_for_each_object()`
995 - + builtin/fsck: refactor to use `odb_for_each_object()`
996 - + odb: introduce `odb_for_each_object()`
997 - + packfile: introduce function to iterate through objects
998 - + packfile: extract function to iterate through objects of a store
999 - + object-file: introduce function to iterate through objects
1000 - + object-file: extract function to read object info from path
1001 - + odb: fix flags parameter to be unsigned
1002 - + odb: rename `FOR_EACH_OBJECT_*` flags
1003 - + Merge branch 'ps/packfile-store-in-odb-source' into ps/odb-for-each-object
1004 - + Merge branch 'ps/read-object-info-improvements' into ps/odb-for-each-object
1005 - (this branch is used by ps/odb-sources.)
1006 -
1007 - Revamp object enumeration API around odb.
1008 -
1009 - Will merge to 'master'.
1010 - source: <20260126-pks-odb-for-each-object-v4-0-5a64a038c791@pks.im>
1011 -
1012 -
1013 -* ps/validate-prefix-in-subtree-split (2026-02-03) 1 commit
1014 - (merged to 'next' on 2026-02-22 at f44d607586)
1015 - + subtree: validate --prefix against commit in split
1016 -
1017 - "git subtree split --prefix=P <commit>" now checks the prefix P
1018 - against the tree of the (potentially quite different from the
1019 - current working tree) given commit.
1020 -
1021 - Will merge to 'master'.
1022 - source: <20260203164815.68258-2-pushkarkumarsingh1970@gmail.com>
1023 -
1024 -
944 * sp/shallow-deepen-relative-fix (2026-02-15) 2 commits
945 (merged to 'next' on 2026-02-26 at 2183b3405e)
946 + shallow: handling fetch relative-deepen
@@ -1035,17 +954,6 @@ Release tarballs are available at:
954 source: <pull.2121.v5.git.git.1771186316.gitgitgadget@gmail.com>
955
956
1038 -* ag/http-netrc-tests (2026-01-06) 1 commit
1039 - (merged to 'next' on 2026-02-22 at acae2989d4)
1040 - + t5550: add netrc tests for http 401/403
1041 -
1042 - Additional tests were introduced to see the interaction with netrc
1043 - auth with auth failure on the http transport.
1044 -
1045 - Will merge to 'master'.
1046 - source: <20260107074724.13165-1-git@ashlesh.me>
1047 -
1048 -
957 * en/xdiff-cleanup-3 (2026-01-03) 11 commits
958 . SQUASH??? cocci
959 . xdiff: move xdl_cleanup_records() from xprepare.c to xdiffi.c
@@ -1175,3 +1083,20 @@ Release tarballs are available at:
1083
1084 Supersided by ps/fsck-stream-from-the-right-object-instance.
1085 source: <20260222183710.2963424-1-sandals@crustytoothpaste.net>
1086 +
1087 +
1088 +* js/neuter-sideband (2026-02-03) 6 commits
1089 + . sideband: delay sanitizing by default to Git v3.0
1090 + - sideband: offer to configure sanitizing on a per-URL basis
1091 + - sideband: add options to allow more control sequences to be passed through
1092 + - sideband: do allow ANSI color sequences by default
1093 + - sideband: introduce an "escape hatch" to allow control characters
1094 + - sideband: mask control characters
1095 +
1096 + Invalidate control characters in sideband messages, to avoid
1097 + terminal state getting messed up.
1098 +
1099 + Was expecting review responses for too long.
1100 + Superseded by 'jc/neuter-sideband-fixup', which reuses most of the patches.
1101 + cf. <xmqqv7gcnwd4.fsf@gitster.g>
1102 + source: <pull.1853.v4.git.1770113882.gitgitgadget@gmail.com>