What's cooking (2026/05 #02)

Junio C Hamano committed May 11, 2026 at 10:49 UTC 0809015912a37a9dbc10cf51d461e987a4fed0de
1 file changed +407 -213
whats-cooking.txt
+407 -213
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (May 2026, #01)
3 -X-master-at: 94f057755b7941b321fd11fec1b2e3ca5313a4e0
4 -X-next-at: 4f69b47b940100b02630f745a52f9d9850f122b2
2 +Subject: What's cooking in git.git (May 2026, #02)
3 +X-master-at: 8a101334b374889938403824af956cd92e47b84d
4 +X-next-at: b3efc6e59e31dfa0c917464e5e5ae3e0b7f5a886
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (May 2026, #01)
7 +What's cooking in git.git (May 2026, #02)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -17,11 +17,8 @@ A topic without enough support may be discarded after a long period
17 of no activity (of course they can be resubmitted when new interests
18 arise).
19
20 -Git 2.54 has been released, and the tip of 'next' has acquired a
21 -handful more topics, but no update to 'master' yet to kick off the
22 -new cycle has happened (yet). I am still mostly offline for another
23 -week, but just had a chance to pick up updates to a handful of
24 -topics.
20 +The first batch of topics marked for graduation for quite a while
21 +since 2.54-rc2 have all been merged to 'master'.
22
23 Copies of the source code to Git live in many repositories, and the
24 following is a list of the ones I push into or their mirrors. Some
@@ -51,17 +48,323 @@ Release tarballs are available at:
48
49 https://www.kernel.org/pub/software/scm/git/
50
51 +--------------------------------------------------
52 +[Graduated to 'master']
53 +
54 +* ar/parallel-hooks (2026-04-10) 13 commits
55 + (merged to 'next' on 2026-04-13 at 0a6acf0d17)
56 + + t1800: test SIGPIPE with parallel hooks
57 + + hook: allow hook.jobs=-1 to use all available CPU cores
58 + + hook: add hook.<event>.enabled switch
59 + + hook: move is_known_hook() to hook.c for wider use
60 + + hook: warn when hook.<friendly-name>.jobs is set
61 + + hook: add per-event jobs config
62 + + hook: add -j/--jobs option to git hook run
63 + + hook: mark non-parallelizable hooks
64 + + hook: allow pre-push parallel execution
65 + + hook: allow parallel hook execution
66 + + hook: parse the hook.jobs config
67 + + config: add a repo_config_get_uint() helper
68 + + repository: fix repo_init() memleak due to missing _clear()
69 +
70 + Hook scripts defined via the configuration system can now be
71 + configured to run in parallel.
72 + source: <20260410090608.75283-1-adrian.ratiu@collabora.com>
73 +
74 +
75 +* bc/rust-by-default (2026-04-09) 4 commits
76 + (merged to 'next' on 2026-04-23 at fb9310bfae)
77 + + Enable Rust by default
78 + + Linux: link against libdl
79 + + ci: install cargo on Alpine
80 + + docs: update version with default Rust support
81 +
82 + Rust support is enabled by default (but still allows opting out) in
83 + some future version of Git.
84 + source: <20260409224434.1861422-1-sandals@crustytoothpaste.net>
85 +
86 +
87 +* cc/promisor-auto-config-url (2026-04-07) 10 commits
88 + (merged to 'next' on 2026-04-13 at 289fcba081)
89 + + t5710: use proper file:// URIs for absolute paths
90 + + promisor-remote: remove the 'accepted' strvec
91 + + promisor-remote: keep accepted promisor_info structs alive
92 + + promisor-remote: refactor accept_from_server()
93 + + promisor-remote: refactor has_control_char()
94 + + promisor-remote: refactor should_accept_remote() control flow
95 + + promisor-remote: reject empty name or URL in advertised remote
96 + + promisor-remote: clarify that a remote is ignored
97 + + promisor-remote: pass config entry to all_fields_match() directly
98 + + promisor-remote: try accepted remotes before others in get_direct()
99 + (this branch is used by cc/promisor-auto-config-url-more.)
100 +
101 + Promisor remote handling has been refactored and fixed in
102 + preparation for auto-configuration of advertised remotes.
103 + source: <20260407115243.358642-1-christian.couder@gmail.com>
104 +
105 +
106 +* dl/cache-tree-fully-valid-fix (2026-04-06) 1 commit
107 + (merged to 'next' on 2026-04-13 at 68c82a9f37)
108 + + cache-tree: fix inverted object existence check in cache_tree_fully_valid
109 +
110 + The check that implements the logic to see if an in-core cache-tree
111 + is fully ready to write out a tree object was broken, which has
112 + been corrected.
113 + source: <20260406192711.68870-1-davidlin@stripe.com>
114 +
115 +
116 +* ja/doc-difftool-synopsis-style (2026-04-04) 4 commits
117 + (merged to 'next' on 2026-04-13 at 0e6c98f313)
118 + + doc: convert git-describe manual page to synopsis style
119 + + doc: convert git-shortlog manual page to synopsis style
120 + + doc: convert git-range-diff manual page to synopsis style
121 + + doc: convert git-difftool manual page to synopsis style
122 +
123 + Doc mark-up updates.
124 + source: <pull.2077.git.1775322767.gitgitgadget@gmail.com>
125 +
126 +
127 +* jc/doc-timestamps-in-stat (2026-04-10) 1 commit
128 + (merged to 'next' on 2026-04-20 at 0680260012)
129 + + CodingGuidelines: st_mtimespec vs st_mtim vs st_mtime
130 +
131 + Doc update.
132 + source: <xmqqzf3aofdj.fsf_-_@gitster.g>
133 +
134 +
135 +* ps/test-set-e-clean (2026-04-21) 12 commits
136 + (merged to 'next' on 2026-04-23 at 4f69b47b94)
137 + + t: detect errors outside of test cases
138 + + t9902: fix use of `read` with `set -e`
139 + + t6002: fix use of `expr` with `set -e`
140 + + t1301: don't fail in case setfacl(1) doesn't exist or fails
141 + + t0008: silence error in subshell when using `grep -v`
142 + + t: prepare `test_when_finished ()`/`test_atexit()` for `set -e`
143 + + t: prepare execution of potentially failing commands for `set -e`
144 + + t: prepare conditional test execution for `set -e`
145 + + t: prepare `git config --unset` calls for `set -e`
146 + + t: prepare `stop_git_daemon ()` for `set -e`
147 + + t: prepare `test_must_fail ()` for `set -e`
148 + + t: prepare `test_match_signal ()` calls for `set -e`
149 +
150 + The test suite harness and many individual test scripts have been
151 + updated to work correctly when 'set -e' is in effect, which helps
152 + detect misspelled test commands.
153 + source: <20260421-b4-pks-tests-with-set-e-v6-0-26330e3061ab@pks.im>
154 +
155 +
156 +* sb/userdiff-lisp-family (2026-04-14) 2 commits
157 + (merged to 'next' on 2026-04-20 at 5897c04899)
158 + + userdiff: extend Scheme support to cover other Lisp dialects
159 + + userdiff: tighten word-diff test case of the scheme driver
160 +
161 + The userdiff driver for the Scheme language has been extended to
162 + cover other Lisp dialects.
163 + source: <pull.2000.v4.git.1776220063.gitgitgadget@gmail.com>
164 +
165 +
166 +* sp/refs-reduce-the-repository (2026-04-04) 3 commits
167 + (merged to 'next' on 2026-04-09 at bb1d626802)
168 + + refs/reftable-backend: drop uses of the_repository
169 + + refs: remove the_hash_algo global state
170 + + refs: add struct repository parameter in get_files_ref_lock_timeout_ms()
171 +
172 + Code clean-up to use the right instance of a repository instance in
173 + calls inside refs subsystem.
174 + source: <20260404135914.61195-1-shreyanshpaliwalcmsmn@gmail.com>
175 +
176 --------------------------------------------------
177 [New Topics]
178
179 +* js/mingw-no-nedmalloc (2026-05-08) 3 commits
180 + - mingw: remove the vendored compat/nedmalloc/ subtree
181 + - mingw: drop the build-system plumbing for nedmalloc
182 + - mingw: stop using nedmalloc
183 +
184 + Stop using unmaintained custom allocator in Windows build which was
185 + the last user of the code.
186 +
187 + Will merge to 'next'.
188 + source: <pull.2104.v3.git.1778244661.gitgitgadget@gmail.com>
189 +
190 +
191 +* sj/submodule-update-clone-config-fix (2026-05-09) 1 commit
192 + - submodule-config: fix reading submodule.fetchJobs
193 +
194 + The configuration variable submodule.fetchJobs was not read correctly,
195 + which has been corrected.
196 +
197 + Will merge to 'next'.
198 + source: <pull.2287.v4.git.git.1778385022964.gitgitgadget@gmail.com>
199 +
200 +
201 +* aw/validate-proxy-url-scheme (2026-05-05) 1 commit
202 + - http: reject unsupported proxy URL schemes
203 +
204 + Misspelt proxy URL (e.g., httt://...) did not trigger any warning
205 + or failure, which has been corrected.
206 +
207 + Will merge to 'next'?
208 + source: <20260505091941.1825-2-aminnimaj@gmail.com>
209 +
210 +
211 +* hn/branch-prune-merged (2026-05-05) 6 commits
212 + - branch: add --all-remotes flag
213 + - branch: add branch.<name>.pruneMerged opt-out
214 + - fetch: add --prune-merged
215 + - branch: add --prune-merged <remote>
216 + - branch: let delete_branches warn instead of error on bulk refusal
217 + - branch: add --forked <remote>
218 +
219 + "git branch" command learned "--prune-merged" option to remove
220 + local branches that have already been merged to the remote-tracking
221 + branches they track.
222 +
223 + Expecting a reroll to remove "fetch" part?
224 + cf. <20260505220712.93952-1-haraldnordgren@gmail.com>
225 + source: <pull.2285.v4.git.git.1778009038.gitgitgadget@gmail.com>
226 +
227 +
228 +* kh/doc-restore-double-underscores-fix (2026-05-05) 1 commit
229 + - doc: restore: remove double underscore
230 +
231 + Doc update.
232 +
233 + Will merge to 'next'.
234 + source: <double_underscore.670@msgid.xyz>
235 +
236 +
237 +* mm/diff-U-takes-no-negative-values (2026-05-05) 3 commits
238 + - xdiff: guard against negative context lengths
239 + - diff: reject negative values for -U/--unified
240 + - diff: reject negative values for --inter-hunk-context
241 +
242 + The command line parser for "git diff" learned a few options take
243 + only non-negative integers.
244 +
245 + Will merge to 'next'?
246 + source: <pull.2105.git.1778022144.gitgitgadget@gmail.com>
247 +
248 +
249 +* ps/clang-w-glibc-2.43-and-_Generic (2026-05-05) 1 commit
250 + - build: tolerate use of _Generic from glibc 2.43 with Clang
251 +
252 + Headers from glibc 2.43 when used with clang does not allow
253 + disabling C11 language features, causing build failures..
254 +
255 + Will merge to 'next'.
256 + source: <20260505-b4-pks-ci-tolerate-glibc-generic-v1-1-5786386fe512@pks.im>
257 +
258 +
259 +* mm/git-url-parse (2026-05-01) 8 commits
260 + - t9904: add tests for the new url-parse builtin
261 + - doc: describe the url-parse builtin
262 + - builtin: create url-parse command
263 + - urlmatch: define url_parse function
264 + - url: return URL_SCHEME_UNKNOWN instead of dying
265 + - url: move scheme detection to URL header/source
266 + - url: move url_is_local_not_ssh to url.h
267 + - connect: rename enum protocol to url_scheme
268 +
269 + The internal URL parsing logic has been made accessible via a new
270 + subcommand "git url-parse".
271 +
272 + Will merge to 'next'?
273 + source: <pull.1715.v3.git.git.1777699722.gitgitgadget@gmail.com>
274 +
275 +
276 +* kh/doc-commit-graph (2026-05-07) 1 commit
277 + - doc: add caveat about turning off commit-graph
278 +
279 + Ramifications of turning off commit-graph has been documented a bit
280 + more clearly.
281 + source: <V3_caveat_commit-graph.6b6@msgid.xyz>
282 +
283 +
284 +* dk/doc-exclude-is-shared-per-repo (2026-05-08) 1 commit
285 + - ignore: note info/exclude lives in GIT_COMMON_DIR, not GIT_DIR
286 +
287 + Document the fact that .git/info/exclude is shared across worktrees
288 + linked to the same repository.
289 +
290 + Will merge to 'next'?
291 + source: <d58b6e921d3005c6170fc6c47f175214acb3fa68.1778249267.git.ben.knoble+github@gmail.com>
292 +
293 +
294 +* jc/t5551-fix-expensive (2026-05-07) 1 commit
295 + - t5551: "GIT_TEST_LONG=Yes make test" is broken
296 +
297 + Test fix.
298 +
299 + Will merge to 'next'.
300 + source: <xmqqqznmeaco.fsf@gitster.g>
301 +
302 +
303 +* kk/paint-down-to-common-optim (2026-05-08) 1 commit
304 + - commit-reach: early exit paint_down_to_common for single merge-base
305 +
306 + "git merge-base" optimization.
307 +
308 + Comments?
309 + source: <pull.2109.git.1778252837132.gitgitgadget@gmail.com>
310 +
311 +
312 +* st/daemon-sockaddr-fixes (2026-05-08) 1 commit
313 + - daemon: fix network address handling bugs
314 +
315 + Correct use of sockaddr API in "git daemon".
316 +
317 + Comments?
318 + source: <pull.2299.git.git.1778291290159.gitgitgadget@gmail.com>
319 +
320 +
321 +* ag/rebase-update-refs-limit-to-branches (2026-05-10) 1 commit
322 + - rebase: ignore non-branch update-refs
323 +
324 + "git rebase --update-refs", when used with an rebase.instructionFormat
325 + with "%d" (describe) in it, tried to update local branch HEAD by
326 + mistake, which has been corrected.
327 +
328 + Will merge to 'next'.
329 + source: <20260510224111.64467-2-mail@abhinavg.net>
330 +
331 +
332 +* jc/ci-enable-expensive (2026-05-10) 2 commits
333 + - ci: enable EXPENSIVE for contributor builds
334 + - Merge branch 'js/objects-larger-than-4gb-on-windows' into jc/ci-enable-expensive
335 + (this branch uses js/objects-larger-than-4gb-on-windows.)
336 +
337 + Enable expensive tests to catch topics that may cause breakages on
338 + integration branches closer to their origin in the contributor PR
339 + builds.
340 +
341 + Comments?
342 + source: <xmqqjyta9630.fsf@gitster.g>
343 +
344 +
345 +* rs/sideband-clear-line-before-print (2026-05-10) 1 commit
346 + - sideband: clear full line when printing remote messages
347 +
348 + Tweak the way how sideband messages from remote are printed while
349 + we talk with a remote repository to avoid tickling terminal
350 + emulator glitches.
351 +
352 + Will merge to 'next'.
353 + source: <9826dabf-c9a6-4397-8ae6-a24f9c507f1b@web.de>
354 +
355 +--------------------------------------------------
356 +[Cooking]
357 +
358 * jh/alias-i18n-fixes (2026-04-24) 1 commit
359 - alias: restore support for simple dotted aliases
360
361 Further update to the i18n alias support to avoid regressions.
362 +
363 + Will merge to 'next'?
364 source: <20260424161707.1514255-1-jonatan@jontes.page>
365
366
64 -* kn/refs-generic-helpers (2026-04-27) 9 commits
367 +* kn/refs-generic-helpers (2026-05-04) 9 commits
368 - refs: use peeled tag values in reference backends
369 - refs: add peeled object ID to the `ref_update` struct
370 - refs: move object parsing to the generic layer
@@ -75,7 +378,7 @@ Release tarballs are available at:
378 Refactor service routines in the ref subsystem backends.
379
380 Will merge to 'next'?
78 - source: <20260427-refs-move-to-generic-layer-v3-0-e4638dfb7897@gmail.com>
381 + source: <20260504-refs-move-to-generic-layer-v4-0-936ac2f0b1a3@gmail.com>
382
383
384 * ob/more-repo-config-values (2026-04-23) 8 commits
@@ -109,7 +412,7 @@ Release tarballs are available at:
412
413 "git grep" update.
414
112 - Will merge to 'next'?
415 + Will merge to 'next'.
416 source: <9bd69678-f04b-41d2-ad74-a386820d34c8@web.de>
417
418
@@ -143,44 +446,57 @@ Release tarballs are available at:
446 - urlmatch: change 'allow_globs' arg to bool
447 - t5710: simplify 'mkdir X' followed by 'git -C X init'
448 - Merge branch 'cc/promisor-auto-config-url' into cc/promisor-auto-config-url-more
146 - (this branch uses cc/promisor-auto-config-url.)
449
450 + The handling of promisor-remote protocol capability has been
451 + loosened to allow the other side to add to the list of promisor
452 + remotes via the promisor.acceptFromServerURL configuration
453 + variable.
454 +
455 + Comments?
456 + cf. <875x4yoys5.fsf@toon--20250203-5JQV3.mail-host-address-is-not-set>
457 source: <20260427124108.3524129-1-christian.couder@gmail.com>
458
459
151 -* js/maintenance-fix-deadlock-on-win10 (2026-04-28) 2 commits
460 +* js/maintenance-fix-deadlock-on-win10 (2026-05-07) 2 commits
461 - maintenance(geometric): do release the `.idx` files before repacking
462 - mingw: optionally use legacy (non-POSIX) delete semantics
463
464 To help Windows 10 installations, avoid removing files whose
465 contents are still mmap()'ed.
466
158 - Will merge to 'next'?
159 - source: <pull.2103.git.1777380768.gitgitgadget@gmail.com>
467 + Will merge to 'next'.
468 + source: <pull.2103.v2.git.1778158273.gitgitgadget@gmail.com>
469
470
162 -* js/objects-larger-than-4gb-on-windows (2026-04-28) 6 commits
471 +* js/objects-larger-than-4gb-on-windows (2026-05-08) 11 commits
472 + - ci: run expensive tests on push builds to integration branches
473 + - t5608: mark >4GB tests as EXPENSIVE
474 + - test-tool synthesize: add precomputed SHA-256 pack for 4 GiB + 1
475 + - test-tool synthesize: precompute pack for 4 GiB + 1
476 + - test-tool synthesize: use the unsafe hash for speed
477 - t5608: add regression test for >4GB object clone
478 - test-tool: add a helper to synthesize large packfiles
479 - delta, packfile: use size_t for delta header sizes
480 - odb, packfile: use size_t for streaming object sizes
481 - git-zlib: handle data streams larger than 4GB
482 - index-pack, unpack-objects: use size_t for object size
483 + (this branch is used by jc/ci-enable-expensive.)
484
485 Update code paths that assumed "unsigned long" was long enough for
486 "size_t".
487
173 - Expecting a reroll to mark EXPENSIVE tests as such.
174 - source: <pull.2102.git.1777393580.gitgitgadget@gmail.com>
488 + Will merge to 'next'.
489 + source: <pull.2102.v3.git.1778228209.gitgitgadget@gmail.com>
490
491
492 * js/t5564-socks-use-short-path (2026-04-29) 1 commit
178 - - t5564: use a short path for the SOCKS proxy socket
493 + (merged to 'next' on 2026-05-11 at fbb23860ca)
494 + + t5564: use a short path for the SOCKS proxy socket
495
496 Avoid hitting the pathname limit for socks proxy socket during the
497 test..
498
183 - Will merge to 'next'.
499 + Will merge to 'master'.
500 source: <pull.2100.v2.git.1777450974159.gitgitgadget@gmail.com>
501
502
@@ -203,17 +519,19 @@ Release tarballs are available at:
519 source: <20260429103607.406339-1-zakariyahali100@gmail.com>
520
521
206 -* hn/checkout-track-fetch (2026-04-28) 1 commit
522 +* hn/checkout-track-fetch (2026-05-08) 1 commit
523 - checkout: extend --track with a "fetch" mode to refresh start-point
524
525 "git checkout --track=..." learned to optionally fetch the branch
526 from the remote the new branch will work with.
527
528 Comments?
213 - source: <pull.2281.v5.git.git.1777367012441.gitgitgadget@gmail.com>
529 + cf. <f23eb128-958f-475f-911b-eac4f6daddff@gmail.com>
530 + source: <pull.2281.v7.git.git.1778280727849.gitgitgadget@gmail.com>
531
532
216 -* mf/revision-max-count-oldest (2026-04-30) 1 commit
533 +* mf/revision-max-count-oldest (2026-05-09) 2 commits
534 + - SQUASH??? tac is not portable
535 - revision.c: implement --max-count-oldest
536
537 "git rev-list" (and "git log" family of commands) learned a new "--max-count-oldest"
@@ -243,7 +561,10 @@ Release tarballs are available at:
561 source: <bd48396137f8d1352d11b3bd2dca2848f24a347d.1777648798.git.phillip.wood@dunelm.org.uk>
562
563
246 -* ds/path-walk-filters (2026-05-02) 7 commits
564 +* ds/path-walk-filters (2026-05-04) 11 commits
565 + - path-walk: support `combine` filter
566 + - path-walk: support `object:type` filter
567 + - path-walk: support `tree:0` filter
568 - pack-objects: support sparse:oid filter with path-walk
569 - path-walk: add pl_sparse_trees to control tree pruning
570 - path-walk: support blob size limit filter
@@ -251,22 +572,24 @@ Release tarballs are available at:
572 - path-walk: support blobless filter
573 - t/perf: add pack-objects filter and path-walk benchmark
574 - pack-objects: pass --objects with --path-walk
575 + - Merge branch 'en/backfill-fixes-and-edges' into ds/path-walk-filters
576 + (this branch uses en/backfill-fixes-and-edges.)
577
578 The "git pack-objects --path-walk" traversal has been integrated
579 with several object filters, including blobless and sparse filters.
580
258 - Comments?
259 - source: <pull.2101.git.1777731354.gitgitgadget@gmail.com>
581 + Expecting a reroll?
582 + cf. <07b36bd8-376b-4a98-a735-0c0f75452c24@gmail.com>
583 + source: <pull.2101.v2.git.1777926079.gitgitgadget@gmail.com>
584
261 ---------------------------------------------------
262 -[Cooking]
585
586 * en/ort-cached-rename-with-trivial-resolution (2026-04-20) 1 commit
265 - - merge-ort: handle cached rename & trivial resolution interaction better
587 + (merged to 'next' on 2026-05-11 at 9fe24668d9)
588 + + merge-ort: handle cached rename & trivial resolution interaction better
589
590 "ort" merge backend improvements.
591
269 - Will merge to 'next'.
592 + Will merge to 'master'.
593 source: <pull.2095.git.1776724214171.gitgitgadget@gmail.com>
594
595
@@ -285,34 +608,37 @@ Release tarballs are available at:
608
609
610 * jk/revert-aa-reap-transport-child-processes (2026-04-22) 1 commit
288 - - Revert "transport-helper, connect: use clean_on_exit to reap children on abnormal exit"
611 + (merged to 'next' on 2026-05-11 at b41904c1d3)
612 + + Revert "transport-helper, connect: use clean_on_exit to reap children on abnormal exit"
613
614 Revert a recent change that introduced a regression to help mksh users.
615
292 - Will merge to 'next'.
616 + Will merge to 'master'.
617 source: <20260422230020.GA1839627@coredump.intra.peff.net>
618
619
620 * js/ci-github-actions-update (2026-04-30) 6 commits
297 - - l10n: bump mshick/add-pr-comment from v2 to v3
298 - - ci: bump git-for-windows/setup-git-for-windows-sdk from v1 to v2
299 - - ci: bump actions/checkout from v5 to v6
300 - - ci: bump actions/github-script from v8 to v9
301 - - ci: bump actions/{upload,download}-artifact to v7 and v8
302 - - ci: bump microsoft/setup-msbuild from v2 to v3
621 + (merged to 'next' on 2026-05-11 at ba87f84054)
622 + + l10n: bump mshick/add-pr-comment from v2 to v3
623 + + ci: bump git-for-windows/setup-git-for-windows-sdk from v1 to v2
624 + + ci: bump actions/checkout from v5 to v6
625 + + ci: bump actions/github-script from v8 to v9
626 + + ci: bump actions/{upload,download}-artifact to v7 and v8
627 + + ci: bump microsoft/setup-msbuild from v2 to v3
628
629 Update various GitHub Actions versions.
630
306 - Will merge to 'next'.
631 + Will merge to 'master'.
632 source: <pull.2097.v3.git.1777534500.gitgitgadget@gmail.com>
633
634
635 * mf/format-patch-cover-letter-format-docfix (2026-04-22) 1 commit
311 - - Fix docs for format.commitListFormat
636 + (merged to 'next' on 2026-05-11 at 3cca9cc117)
637 + + Fix docs for format.commitListFormat
638
639 Docfix.
640
315 - Will merge to 'next'.
641 + Will merge to 'master'.
642 source: <576d29f15e016889e02c253713656cd8cbf1f04c.1776894255.git.mroik@delayed.space>
643
644
@@ -321,7 +647,7 @@ Release tarballs are available at:
647
648 Test fix.
649
324 - Will merge to 'next'?
650 + Will merge to 'next'.
651 source: <20260421192132.51172-1-szeder.dev@gmail.com>
652
653
@@ -337,26 +663,15 @@ Release tarballs are available at:
663 source: <cover.1777648598.git.phillip.wood@dunelm.org.uk>
664
665
340 -* sb/userdiff-lisp-family (2026-04-14) 2 commits
341 - (merged to 'next' on 2026-04-20 at 5897c04899)
342 - + userdiff: extend Scheme support to cover other Lisp dialects
343 - + userdiff: tighten word-diff test case of the scheme driver
344 -
345 - The userdiff driver for the Scheme language has been extended to
346 - cover other Lisp dialects.
347 -
348 - Will merge to 'master'.
349 - source: <pull.2000.v4.git.1776220063.gitgitgadget@gmail.com>
350 -
351 -
666 * ss/t7004-unhide-git-failures (2026-04-20) 3 commits
353 - - t7004: avoid subshells to capture git exit codes
354 - - t7004: dynamically grab expected state in tests
355 - - t7004: drop hardcoded tag count for state verification
667 + (merged to 'next' on 2026-05-11 at 9ee9feacb7)
668 + + t7004: avoid subshells to capture git exit codes
669 + + t7004: dynamically grab expected state in tests
670 + + t7004: drop hardcoded tag count for state verification
671
672 Test clean-up.
673
359 - Will merge to 'next'.
674 + Will merge to 'master'.
675 cf. <aecNc-BNwaqFlg5c@pks.im>
676 source: <20260421053334.5414-1-r.siddharth.shrimali@gmail.com>
677
@@ -397,16 +712,18 @@ Release tarballs are available at:
712
713
714 * en/backfill-fixes-and-edges (2026-04-15) 3 commits
400 - - backfill: default to grabbing edge blobs too
401 - - backfill: document acceptance of revision-range in more standard manner
402 - - backfill: reject rev-list arguments that do not make sense
715 + (merged to 'next' on 2026-05-11 at baccbdf26d)
716 + + backfill: default to grabbing edge blobs too
717 + + backfill: document acceptance of revision-range in more standard manner
718 + + backfill: reject rev-list arguments that do not make sense
719 + (this branch is used by ds/path-walk-filters.)
720
721 The 'git backfill' command now rejects revision-limiting options that
722 are incompatible with its operation, uses standard documentation for
723 revision ranges, and includes blobs from boundary commits by default
724 to improve performance of subsequent operations.
725
409 - Will merge to 'next'.
726 + Will merge to 'master'.
727 cf. <6e95b82a-19e3-460e-86f7-f899c2df261d@gmail.com>
728 source: <pull.2088.git.1776297482.gitgitgadget@gmail.com>
729
@@ -454,19 +771,6 @@ Release tarballs are available at:
771 source: <pull.2093.v3.git.1776699778177.gitgitgadget@gmail.com>
772
773
457 -* sp/refs-reduce-the-repository (2026-04-04) 3 commits
458 - (merged to 'next' on 2026-04-09 at bb1d626802)
459 - + refs/reftable-backend: drop uses of the_repository
460 - + refs: remove the_hash_algo global state
461 - + refs: add struct repository parameter in get_files_ref_lock_timeout_ms()
462 -
463 - Code clean-up to use the right instance of a repository instance in
464 - calls inside refs subsystem.
465 -
466 - Will merge to 'master'.
467 - source: <20260404135914.61195-1-shreyanshpaliwalcmsmn@gmail.com>
468 -
469 -
774 * ps/odb-in-memory (2026-04-10) 18 commits
775 - t/unit-tests: add tests for the in-memory object source
776 - odb: generic in-memory source
@@ -492,43 +796,10 @@ Release tarballs are available at:
796 tentative objects (like the virtual blob object that represents the
797 working tree file used by "git blame").
798
495 - Will merge to 'next'?
799 + Will merge to 'next'.
800 source: <20260410-b4-pks-odb-source-inmemory-v3-0-22fd0fad58fe@pks.im>
801
802
499 -* jc/doc-timestamps-in-stat (2026-04-10) 1 commit
500 - (merged to 'next' on 2026-04-20 at 0680260012)
501 - + CodingGuidelines: st_mtimespec vs st_mtim vs st_mtime
502 -
503 - Doc update.
504 -
505 - Will merge to 'master'.
506 - source: <xmqqzf3aofdj.fsf_-_@gitster.g>
507 -
508 -
509 -* ps/test-set-e-clean (2026-04-21) 12 commits
510 - (merged to 'next' on 2026-04-23 at 4f69b47b94)
511 - + t: detect errors outside of test cases
512 - + t9902: fix use of `read` with `set -e`
513 - + t6002: fix use of `expr` with `set -e`
514 - + t1301: don't fail in case setfacl(1) doesn't exist or fails
515 - + t0008: silence error in subshell when using `grep -v`
516 - + t: prepare `test_when_finished ()`/`test_atexit()` for `set -e`
517 - + t: prepare execution of potentially failing commands for `set -e`
518 - + t: prepare conditional test execution for `set -e`
519 - + t: prepare `git config --unset` calls for `set -e`
520 - + t: prepare `stop_git_daemon ()` for `set -e`
521 - + t: prepare `test_must_fail ()` for `set -e`
522 - + t: prepare `test_match_signal ()` calls for `set -e`
523 -
524 - The test suite harness and many individual test scripts have been
525 - updated to work correctly when 'set -e' is in effect, which helps
526 - detect misspelled test commands.
527 -
528 - Will merge to 'master'.
529 - source: <20260421-b4-pks-tests-with-set-e-v6-0-26330e3061ab@pks.im>
530 -
531 -
803 * js/adjust-tests-to-explicitly-access-bare-repo (2026-04-26) 8 commits
804 - safe.bareRepository: default to "explicit" with WITH_BREAKING_CHANGES
805 - status tests: filter `.gitconfig` from status output
@@ -559,20 +830,6 @@ Release tarballs are available at:
830 source: <20260403-includeif-worktree-v3-0-109ce5782b03@black-desk.cn>
831
832
562 -* bc/rust-by-default (2026-04-09) 4 commits
563 - (merged to 'next' on 2026-04-23 at fb9310bfae)
564 - + Enable Rust by default
565 - + Linux: link against libdl
566 - + ci: install cargo on Alpine
567 - + docs: update version with default Rust support
568 -
569 - Rust support is enabled by default (but still allows opting out) in
570 - some future version of Git.
571 -
572 - Will merge to 'master'.
573 - source: <20260409224434.1861422-1-sandals@crustytoothpaste.net>
574 -
575 -
833 * ps/shift-root-in-graph (2026-04-27) 1 commit
834 - graph: add indentation for commits preceded by a parentless commit
835
@@ -596,31 +853,6 @@ Release tarballs are available at:
853 source: <20260403100135.3901610-1-joerg@thalheim.io>
854
855
599 -* dl/cache-tree-fully-valid-fix (2026-04-06) 1 commit
600 - (merged to 'next' on 2026-04-13 at 68c82a9f37)
601 - + cache-tree: fix inverted object existence check in cache_tree_fully_valid
602 -
603 - The check that implements the logic to see if an in-core cache-tree
604 - is fully ready to write out a tree object was broken, which has
605 - been corrected.
606 -
607 - Will merge to 'master'.
608 - source: <20260406192711.68870-1-davidlin@stripe.com>
609 -
610 -
611 -* ja/doc-difftool-synopsis-style (2026-04-04) 4 commits
612 - (merged to 'next' on 2026-04-13 at 0e6c98f313)
613 - + doc: convert git-describe manual page to synopsis style
614 - + doc: convert git-shortlog manual page to synopsis style
615 - + doc: convert git-range-diff manual page to synopsis style
616 - + doc: convert git-difftool manual page to synopsis style
617 -
618 - Doc mark-up updates.
619 -
620 - Will merge to 'master'.
621 - source: <pull.2077.git.1775322767.gitgitgadget@gmail.com>
622 -
623 -
856 * lp/repack-propagate-promisor-debugging-info (2026-04-18) 6 commits
857 - repack-promisor: add missing headers
858 - t7703: test for promisor file content after geometric repack
@@ -662,7 +894,7 @@ Release tarballs are available at:
894 ODB transaction interface is being reworked to explicitly handle
895 object writes.
896
665 - Will merge to 'next'?
897 + Will merge to 'next'.
898 source: <20260402213220.2651523-1-jltobler@gmail.com>
899
900
@@ -772,27 +1004,6 @@ Release tarballs are available at:
1004 source: <20260328001113.1275291-1-pabloosabaterr@gmail.com>
1005
1006
775 -* cc/promisor-auto-config-url (2026-04-07) 10 commits
776 - (merged to 'next' on 2026-04-13 at 289fcba081)
777 - + t5710: use proper file:// URIs for absolute paths
778 - + promisor-remote: remove the 'accepted' strvec
779 - + promisor-remote: keep accepted promisor_info structs alive
780 - + promisor-remote: refactor accept_from_server()
781 - + promisor-remote: refactor has_control_char()
782 - + promisor-remote: refactor should_accept_remote() control flow
783 - + promisor-remote: reject empty name or URL in advertised remote
784 - + promisor-remote: clarify that a remote is ignored
785 - + promisor-remote: pass config entry to all_fields_match() directly
786 - + promisor-remote: try accepted remotes before others in get_direct()
787 - (this branch is used by cc/promisor-auto-config-url-more.)
788 -
789 - Promisor remote handling has been refactored and fixed in
790 - preparation for auto-configuration of advertised remotes.
791 -
792 - Will merge to 'master'.
793 - source: <20260407115243.358642-1-christian.couder@gmail.com>
794 -
795 -
1007 * jr/bisect-custom-terms-in-output (2026-04-17) 2 commits
1008 - rev-parse: use selected alternate terms to look up refs
1009 - bisect: use selected alternate terms in status output
@@ -804,14 +1015,16 @@ Release tarballs are available at:
1015 source: <20260417-bisect-terms-v3-0-d659fa547261@schlaraffenlan.de>
1016
1017
807 -* ua/push-remote-group (2026-04-27) 3 commits
808 - - SQUASH??? -Werror=sign-compare workaround
1018 +* ua/push-remote-group (2026-05-03) 3 commits
1019 - push: support pushing to a remote group
1020 - remote: move remote group resolution to remote.c
1021 + - remote: fix sign-compare warnings in push_cas_option
1022
1023 "git push" learned to take a "remote group" name to push to, which
1024 causes pushes to multiple places, just like "git fetch" would do.
814 - source: <20260427140530.856125-1-usmanakinyemi202@gmail.com>
1025 +
1026 + Comments?
1027 + source: <20260503153402.1333220-1-usmanakinyemi202@gmail.com>
1028
1029
1030 * hn/git-checkout-m-with-stash (2026-04-28) 5 commits
@@ -826,25 +1039,23 @@ Release tarballs are available at:
1039 branch, but it gave only one chance to resolve conflicts. The command
1040 was taught to create a stash to save the local changes.
1041
829 - Will merge to 'next'?
1042 + Will merge to 'next'.
1043 source: <pull.2234.v16.git.git.1777401552.gitgitgadget@gmail.com>
1044
1045
833 -* kh/name-rev-custom-format (2026-04-30) 6 commits
834 - . SQUASH???
835 - . format-rev: introduce builtin for on-demand pretty formatting
836 - . name-rev: make dedicated --annotate-stdin --name-only test
837 - . name-rev: factor code for sharing with a new command
838 - . name-rev: run clang-format before factoring code
839 - . name-rev: wrap both blocks in braces
1046 +* kh/name-rev-custom-format (2026-05-07) 5 commits
1047 + - format-rev: introduce builtin for on-demand pretty formatting
1048 + - name-rev: make dedicated --annotate-stdin --name-only test
1049 + - name-rev: factor code for sharing with a new command
1050 + - name-rev: run clang-format before factoring code
1051 + - name-rev: wrap both blocks in braces
1052
1053 A new builtin "git format-rev" is introduced for pretty formatting
1054 one revision expression per line or commit object names found in
1055 running text.
1056
845 - Breaks CI.
846 - cf. <8cdfbf18-6137-47c0-8134-4cd9f767fa4f@app.fastmail.com>
847 - source: <V3_CV_format-rev.66a@msgid.xyz>
1057 + Will merge to 'next'.
1058 + source: <V4_CV_format-rev.6aa@msgid.xyz>
1059
1060
1061 * js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits
@@ -957,37 +1168,19 @@ Release tarballs are available at:
1168 source: <pull.2147.v15.git.git.1776259657.gitgitgadget@gmail.com>
1169
1170
960 -* ar/parallel-hooks (2026-04-10) 13 commits
961 - (merged to 'next' on 2026-04-13 at 0a6acf0d17)
962 - + t1800: test SIGPIPE with parallel hooks
963 - + hook: allow hook.jobs=-1 to use all available CPU cores
964 - + hook: add hook.<event>.enabled switch
965 - + hook: move is_known_hook() to hook.c for wider use
966 - + hook: warn when hook.<friendly-name>.jobs is set
967 - + hook: add per-event jobs config
968 - + hook: add -j/--jobs option to git hook run
969 - + hook: mark non-parallelizable hooks
970 - + hook: allow pre-push parallel execution
971 - + hook: allow parallel hook execution
972 - + hook: parse the hook.jobs config
973 - + config: add a repo_config_get_uint() helper
974 - + repository: fix repo_init() memleak due to missing _clear()
975 -
976 - Will merge to 'master'.
977 - source: <20260410090608.75283-1-adrian.ratiu@collabora.com>
978 -
979 -
980 -* pw/xdiff-shrink-memory-consumption (2026-04-02) 4 commits
981 - . xdiff: reduce the size of array
982 - . xprepare: simplify error handling
983 - . xdiff: cleanup xdl_clean_mmatch()
984 - . xdiff: reduce size of action arrays
1171 +* pw/xdiff-shrink-memory-consumption (2026-05-04) 5 commits
1172 + - xdiff: reduce the size of array
1173 + - xprepare: simplify error handling
1174 + - xdiff: cleanup xdl_clean_mmatch()
1175 + - xdiff: reduce size of action arrays
1176 + - Merge branch 'en/xdiff-cleanup-3' into pw/xdiff-shrink-memory-consumption
1177 + (this branch uses en/xdiff-cleanup-3.)
1178
1179 Shrink wasted memory in Myers diff that does not account for common
1180 prefix and suffix removal.
1181
989 - Needs to be rebased on updated en/xdiff-cleanup-3.
990 - source: <cover.1775141855.git.phillip.wood@dunelm.org.uk>
1182 + Will merge to 'next'?
1183 + source: <cover.1777903579.git.phillip.wood@dunelm.org.uk>
1184
1185
1186 * en/xdiff-cleanup-3 (2026-04-29) 6 commits
@@ -997,8 +1190,9 @@ Release tarballs are available at:
1190 - xdiff/xdl_cleanup_records: use unambiguous types
1191 - xdiff: use unambiguous types in xdl_bogo_sqrt()
1192 - xdiff/xdl_cleanup_records: delete local recs pointer
1193 + (this branch is used by pw/xdiff-shrink-memory-consumption.)
1194
1195 Preparation of the xdiff/ codebase to work with Rust.
1196
1003 - Will merge to 'next'?
1197 + Will merge to 'next'.
1198 source: <pull.2156.v6.git.git.1777500495.gitgitgadget@gmail.com>