What's cooking (2026/05 #05)
Junio C Hamano committed
May 20, 2026 at 12:10 UTC
258ab9e8df1c642f4a78d5ce6fe6be64e1c6ea90
1 file changed
+308
-357
whats-cooking.txt
+308
-357
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (May 2026, #04)
3
-X-master-at: 68aca6b91299738150f71035d0033af6987fe455
4
-X-next-at: 3ed373ac14709745ea457f6c3c005a959506b723
2
+Subject: What's cooking in git.git (May 2026, #05)
3
+X-master-at: 1c00d2d8392f603a6263f11f1a50fde96ae5475e
4
+X-next-at: 6e5bcc1fc9a18b45bdea6554297c28759c7da2fc
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (May 2026, #04)
7
+What's cooking in git.git (May 2026, #05)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -45,92 +45,270 @@ Release tarballs are available at:
45
46
https://www.kernel.org/pub/software/scm/git/
47
48
+--------------------------------------------------
49
+[New Topics]
50
+
51
+* jk/commit-graph-lazy-load-fallback (2026-05-18) 1 commit
52
+ - commit: fall back to full read when maybe_tree is NULL
53
+
54
+ The logic to lazy-load trees from the commit-graph has been made
55
+ more robust by falling back to reading the commit object when
56
+ the commit-graph is no longer available.
57
+
58
+ Will merge to 'next'?
59
+ source: <20260519050513.GA1635924@coredump.intra.peff.net>
60
+
61
+
62
+* jk/connect-service-enum (2026-05-18) 1 commit
63
+ - connect: use "service" enum for "name" argument
64
+
65
+ The "name" argument in git_connect() and related functions has been
66
+ converted to a "service" enum to improve type safety and clarify its
67
+ purpose.
68
+
69
+ Will merge to 'next'.
70
+ source: <20260519052219.GA1703179@coredump.intra.peff.net>
71
+
72
+
73
+* jk/sq-dequote-cleanup (2026-05-18) 3 commits
74
+ - quote: simplify internals of dequoting
75
+ - quote: drop sq_dequote_to_argv()
76
+ - quote.h: bump strvec forward declaration to the top
77
+
78
+ Code simplification.
79
+
80
+ Will merge to 'next'.
81
+ source: <20260519011837.GA1615637@coredump.intra.peff.net>
82
+
83
+
84
+* aj/stash-patch-optimize-temporary-index (2026-05-19) 1 commit
85
+ - stash: reuse cached index entries in --patch temporary index
86
+
87
+ "git stash -p" has been optimized by reusing cached index
88
+ entries in its temporary index, avoiding unnecessary lstat()
89
+ calls on unchanged files.
90
+ source: <pull.2306.git.git.1779194605735.gitgitgadget@gmail.com>
91
+
92
+
93
+* tb/bitmap-build-performance (2026-05-19) 9 commits
94
+ - pack-bitmap: build pseudo-merge bitmaps after regular bitmaps
95
+ - pack-bitmap: remember pseudo-merge parents
96
+ - pack-bitmap: sort bitmaps before XORing
97
+ - pack-bitmap: cache object positions during fill
98
+ - pack-bitmap: consolidate `find_object_pos()` success path
99
+ - pack-bitmap: reuse stored selected bitmaps
100
+ - pack-bitmap: check subtree bits before recursing
101
+ - pack-bitmap: pass object position to `fill_bitmap_tree()`
102
+ - Merge branch 'tb/pseudo-merge-bugfixes' into tb/bitmap-build-performance
103
+ (this branch uses tb/pseudo-merge-bugfixes.)
104
+
105
+ Reachability bitmap generation has been significantly optimized. By
106
+ reordering tree traversal, caching object positions, and refining how
107
+ pseudo-merge bitmaps are constructed, the performance of "git repack
108
+ --write-midx-bitmaps" is improved, especially for large repositories
109
+ and when using pseudo-merges.
110
+ source: <cover.1779207127.git.me@ttaylorr.com>
111
+
112
--------------------------------------------------
113
[Graduated to 'master']
114
51
-* en/backfill-fixes-and-edges (2026-04-15) 3 commits
52
- (merged to 'next' on 2026-05-11 at baccbdf26d)
53
- + backfill: default to grabbing edge blobs too
54
- + backfill: document acceptance of revision-range in more standard manner
55
- + backfill: reject rev-list arguments that do not make sense
56
- (this branch is used by ds/path-walk-filters.)
115
+* ag/rebase-update-refs-limit-to-branches (2026-05-10) 1 commit
116
+ (merged to 'next' on 2026-05-12 at 5222da09bb)
117
+ + rebase: ignore non-branch update-refs
118
+
119
+ "git rebase --update-refs", when used with an rebase.instructionFormat
120
+ with "%d" (describe) in it, tried to update local branch HEAD by
121
+ mistake, which has been corrected.
122
+ source: <20260510224111.64467-2-mail@abhinavg.net>
123
+
124
+
125
+* bc/sign-commit-with-custom-encoding (2026-04-27) 2 commits
126
+ (merged to 'next' on 2026-05-13 at e82a4966c0)
127
+ + commit: sign commit after mutating buffer
128
+ + commit: name UTF-8 function appropriately
129
+
130
+ Signing commit with custom encoding was passing the data to be
131
+ signed at a wrong stage in the pipeline, which has been corrected.
132
+ cf. <xmqqtssdnpf7.fsf@gitster.g>
133
+ source: <20260427221834.1824543-1-sandals@crustytoothpaste.net>
134
+
135
+
136
+* en/diffstat-utf8-truncation-fix (2026-04-20) 1 commit
137
+ (merged to 'next' on 2026-05-13 at adf801eb1d)
138
+ + diff: fix out-of-bounds reads and NULL deref in diffstat UTF-8 truncation
139
+
140
+ The computation to shorten the filenames shown in diffstat measured
141
+ width of individual UTF-8 characters to add up, but forgot to take
142
+ into account error cases (e.g., an invalid UTF-8 sequence, or a
143
+ control character).
144
+ source: <pull.2093.v3.git.1776699778177.gitgitgadget@gmail.com>
145
+
146
+
147
+* en/xdiff-cleanup-3 (2026-04-29) 6 commits
148
+ (merged to 'next' on 2026-05-12 at e4e72e0f34)
149
+ + xdiff/xdl_cleanup_records: make execution of action easier to follow
150
+ + xdiff/xdl_cleanup_records: make setting action easier to follow
151
+ + xdiff/xdl_cleanup_records: make limits more clear
152
+ + xdiff/xdl_cleanup_records: use unambiguous types
153
+ + xdiff: use unambiguous types in xdl_bogo_sqrt()
154
+ + xdiff/xdl_cleanup_records: delete local recs pointer
155
+ (this branch is used by pw/xdiff-shrink-memory-consumption.)
156
58
- The 'git backfill' command now rejects revision-limiting options that
59
- are incompatible with its operation, uses standard documentation for
60
- revision ranges, and includes blobs from boundary commits by default
61
- to improve performance of subsequent operations.
62
- cf. <6e95b82a-19e3-460e-86f7-f899c2df261d@gmail.com>
63
- source: <pull.2088.git.1776297482.gitgitgadget@gmail.com>
157
+ Preparation of the xdiff/ codebase to work with Rust.
158
+ source: <pull.2156.v6.git.git.1777500495.gitgitgadget@gmail.com>
159
160
66
-* en/ort-cached-rename-with-trivial-resolution (2026-04-20) 1 commit
67
- (merged to 'next' on 2026-05-11 at 9fe24668d9)
68
- + merge-ort: handle cached rename & trivial resolution interaction better
161
+* jh/alias-i18n-fixes (2026-04-24) 1 commit
162
+ (merged to 'next' on 2026-05-13 at c7cd30d414)
163
+ + alias: restore support for simple dotted aliases
164
70
- "ort" merge backend improvements.
71
- source: <pull.2095.git.1776724214171.gitgitgadget@gmail.com>
165
+ Further update to the i18n alias support to avoid regressions.
166
+ source: <20260424161707.1514255-1-jonatan@jontes.page>
167
168
74
-* hn/git-checkout-m-with-stash (2026-04-28) 5 commits
75
- (merged to 'next' on 2026-05-11 at 46adae5e5d)
76
- + checkout -m: autostash when switching branches
77
- + checkout: rollback lock on early returns in merge_working_tree
78
- + sequencer: teach autostash apply to take optional conflict marker labels
79
- + sequencer: allow create_autostash to run silently
80
- + stash: add --label-ours, --label-theirs, --label-base for apply
169
+* js/adjust-tests-to-explicitly-access-bare-repo (2026-04-26) 8 commits
170
+ (merged to 'next' on 2026-05-13 at 48695e1cb0)
171
+ + safe.bareRepository: default to "explicit" with WITH_BREAKING_CHANGES
172
+ + status tests: filter `.gitconfig` from status output
173
+ + ls-files tests: filter `.gitconfig` from `--others` output
174
+ + t5601: restore `.gitconfig` after includeIf test
175
+ + t1305: use `--git-dir=.` for bare repo in include cycle test
176
+ + t1300: remove global config settings injected by test-lib.sh
177
+ + t7900: do not let `$HOME/.gitconfig` interfere with XDG tests
178
+ + test-lib: allow bare repository access when breaking changes are enabled
179
82
- "git checkout -m another-branch" was invented to deal with local
83
- changes to paths that are different between the current and the new
84
- branch, but it gave only one chance to resolve conflicts. The command
85
- was taught to create a stash to save the local changes.
86
- source: <pull.2234.v16.git.git.1777401552.gitgitgadget@gmail.com>
180
+ Some tests assume that bare repository accesses are by default
181
+ allowed; rewrite some of them to avoid the assumption, rewrite
182
+ others to explicitly set safe.bareRepository to allow them.
183
+ source: <pull.2098.v2.git.1777214316.gitgitgadget@gmail.com>
184
185
89
-* mf/format-patch-cover-letter-format-docfix (2026-04-22) 1 commit
90
- (merged to 'next' on 2026-05-11 at 3cca9cc117)
91
- + Fix docs for format.commitListFormat
186
+* js/mingw-no-nedmalloc (2026-05-08) 3 commits
187
+ (merged to 'next' on 2026-05-13 at 2116a6bcc9)
188
+ + mingw: remove the vendored compat/nedmalloc/ subtree
189
+ + mingw: drop the build-system plumbing for nedmalloc
190
+ + mingw: stop using nedmalloc
191
93
- Docfix.
94
- source: <576d29f15e016889e02c253713656cd8cbf1f04c.1776894255.git.mroik@delayed.space>
192
+ Stop using unmaintained custom allocator in Windows build which was
193
+ the last user of the code.
194
+ source: <pull.2104.v3.git.1778244661.gitgitgadget@gmail.com>
195
196
97
-* ps/clang-w-glibc-2.43-and-_Generic (2026-05-10) 1 commit
98
- (merged to 'next' on 2026-05-12 at fca23344f2)
99
- + build: tolerate use of _Generic from glibc 2.43 with Clang
197
+* js/objects-larger-than-4gb-on-windows (2026-05-08) 11 commits
198
+ (merged to 'next' on 2026-05-13 at 843d2ac470)
199
+ + ci: run expensive tests on push builds to integration branches
200
+ + t5608: mark >4GB tests as EXPENSIVE
201
+ + test-tool synthesize: add precomputed SHA-256 pack for 4 GiB + 1
202
+ + test-tool synthesize: precompute pack for 4 GiB + 1
203
+ + test-tool synthesize: use the unsafe hash for speed
204
+ + t5608: add regression test for >4GB object clone
205
+ + test-tool: add a helper to synthesize large packfiles
206
+ + delta, packfile: use size_t for delta header sizes
207
+ + odb, packfile: use size_t for streaming object sizes
208
+ + git-zlib: handle data streams larger than 4GB
209
+ + index-pack, unpack-objects: use size_t for object size
210
+ (this branch is used by jc/ci-enable-expensive.)
211
101
- Headers from glibc 2.43 when used with clang does not allow
102
- disabling C11 language features, causing build failures..
103
- source: <xmqqqzniset2.fsf@gitster.g>
212
+ Update code paths that assumed "unsigned long" was long enough for
213
+ "size_t".
214
+ source: <pull.2102.v3.git.1778228209.gitgitgadget@gmail.com>
215
216
106
-* pw/rename-to-get-current-worktree (2026-05-01) 1 commit
107
- (merged to 'next' on 2026-05-11 at 36ca1d49e2)
108
- + worktree: rename get_worktree_from_repository()
217
+* kh/doc-commit-graph (2026-05-07) 1 commit
218
+ (merged to 'next' on 2026-05-12 at b9cafeb32d)
219
+ + doc: add caveat about turning off commit-graph
220
110
- Code clean-up.
111
- source: <bd48396137f8d1352d11b3bd2dca2848f24a347d.1777648798.git.phillip.wood@dunelm.org.uk>
221
+ Ramifications of turning off commit-graph has been documented a bit
222
+ more clearly.
223
+ source: <V3_caveat_commit-graph.6b6@msgid.xyz>
224
+
225
+
226
+* kh/doc-restore-double-underscores-fix (2026-05-05) 1 commit
227
+ (merged to 'next' on 2026-05-12 at 2e8fc7cdac)
228
+ + doc: restore: remove double underscore
229
+
230
+ Doc update.
231
+ source: <double_underscore.670@msgid.xyz>
232
+
233
+
234
+* kh/name-rev-custom-format (2026-05-11) 5 commits
235
+ (merged to 'next' on 2026-05-12 at c944d6131e)
236
+ + format-rev: introduce builtin for on-demand pretty formatting
237
+ + name-rev: make dedicated --annotate-stdin --name-only test
238
+ + name-rev: factor code for sharing with a new command
239
+ + name-rev: run clang-format before factoring code
240
+ + name-rev: wrap both blocks in braces
241
+
242
+ A new builtin "git format-rev" is introduced for pretty formatting
243
+ one revision expression per line or commit object names found in
244
+ running text.
245
+ source: <V5_CV_format-rev.6c9@msgid.xyz>
246
+
247
+
248
+* mc/http-emptyauth-negotiate-fix (2026-04-30) 4 commits
249
+ (merged to 'next' on 2026-05-12 at 843ae82cd0)
250
+ + doc: clarify http.emptyAuth values
251
+ (merged to 'next' on 2026-04-20 at 6539524ca2)
252
+ + t5563: add tests for http.emptyAuth with Negotiate
253
+ + http: attempt Negotiate auth in http.emptyAuth=auto mode
254
+ + http: extract http_reauth_prepare() from retry paths
255
+
256
+ The 'http.emptyAuth=auto' configuration now correctly attempts
257
+ Negotiate authentication before falling back to manual credentials.
258
+ This allows seamless Kerberos ticket-based authentication without
259
+ requiring users to explicitly set 'http.emptyAuth=true'.
260
+ source: <e0f236767f81ea60f90749d1bc00ab78081efd0e.1777546472.git.gitgitgadget@gmail.com>
261
+ source: <pull.2087.git.1776331259.gitgitgadget@gmail.com>
262
+
263
+
264
+* ps/history-fixup (2026-04-26) 3 commits
265
+ (merged to 'next' on 2026-05-13 at e6154b6272)
266
+ + builtin/history: introduce "fixup" subcommand
267
+ + builtin/history: generalize function to commit trees
268
+ + replay: allow callers to control what happens with empty commits
269
+
270
+ "git history" learned "fixup" command.
271
+ cf. <xmqq33zxp4aq.fsf@gitster.g>
272
+ source: <20260427-b4-pks-history-fixup-v3-0-cb908f06264b@pks.im>
273
+
274
+
275
+* rs/sideband-clear-line-before-print (2026-05-10) 1 commit
276
+ (merged to 'next' on 2026-05-12 at 83880f8ce6)
277
+ + sideband: clear full line when printing remote messages
278
+
279
+ Tweak the way how sideband messages from remote are printed while
280
+ we talk with a remote repository to avoid tickling terminal
281
+ emulator glitches.
282
+ source: <9826dabf-c9a6-4397-8ae6-a24f9c507f1b@web.de>
283
284
114
-* rs/grep-column-only-match-fix (2026-04-24) 1 commit
115
- (merged to 'next' on 2026-05-11 at a0d87e3104)
116
- + grep: fix --column --only-match for 2nd and later matches
285
+* sb/unpack-index-pack-buffer-resize (2026-04-28) 1 commit
286
+ (merged to 'next' on 2026-05-13 at 2edd54bcfe)
287
+ + index-pack, unpack-objects: increase input buffer from 4 KiB to 128 KiB
288
118
- "git grep" update.
119
- source: <9bd69678-f04b-41d2-ad74-a386820d34c8@web.de>
289
+ Use a larger buffer size in the code paths to ingest pack stream.
290
+ cf. <xmqqy0hpnpkb.fsf@gitster.g>
291
+ source: <pull.2282.v4.git.git.1777387660841.gitgitgadget@gmail.com>
292
293
122
-* ss/t7004-unhide-git-failures (2026-04-20) 3 commits
123
- (merged to 'next' on 2026-05-11 at 9ee9feacb7)
124
- + t7004: avoid subshells to capture git exit codes
125
- + t7004: dynamically grab expected state in tests
126
- + t7004: drop hardcoded tag count for state verification
294
+* sg/t6112-unwanted-tilde-expansion-fix (2026-04-21) 1 commit
295
+ (merged to 'next' on 2026-05-12 at ad2d08eb44)
296
+ + t6112: avoid tilde expansion
297
+
298
+ Test fix.
299
+ source: <20260421192132.51172-1-szeder.dev@gmail.com>
300
128
- Test clean-up.
129
- cf. <aecNc-BNwaqFlg5c@pks.im>
130
- source: <20260421053334.5414-1-r.siddharth.shrimali@gmail.com>
301
+
302
+* sj/submodule-update-clone-config-fix (2026-05-09) 1 commit
303
+ (merged to 'next' on 2026-05-12 at 5a0094838a)
304
+ + submodule-config: fix reading submodule.fetchJobs
305
+
306
+ The configuration variable submodule.fetchJobs was not read correctly,
307
+ which has been corrected.
308
+ source: <pull.2287.v4.git.git.1778385022964.gitgitgadget@gmail.com>
309
310
--------------------------------------------------
133
-[New Topics]
311
+[Cooking]
312
313
* hn/status-pull-advice-qualified (2026-05-13) 1 commit
314
- remote: qualify "git pull" advice for non-upstream branches
@@ -169,12 +347,14 @@ Release tarballs are available at:
347
348
349
* kk/merge-octopus-optim (2026-05-11) 1 commit
172
- - merge: use repo_in_merge_bases for octopus up-to-date check
350
+ (merged to 'next' on 2026-05-20 at afe427dc66)
351
+ + merge: use repo_in_merge_bases for octopus up-to-date check
352
353
The logic to determine that branches in an octopus merge are
354
independent has been optimized.
355
177
- Comments?
356
+ Will merge to 'master'.
357
+ cf. <c5b333f1-0db6-4aec-a369-6503cb924e7f@gmail.com>
358
source: <pull.2110.git.1778566286543.gitgitgadget@gmail.com>
359
360
@@ -225,13 +405,14 @@ Release tarballs are available at:
405
406
407
* kk/limit-list-optim (2026-05-14) 1 commit
228
- - revision: use priority queue in limit_list()
408
+ (merged to 'next' on 2026-05-19 at f17450dd1b)
409
+ + revision: use priority queue in limit_list()
410
411
The limit_list() function that is one of the core part of the
412
revision traversal infrastructure has been optimized by replacing
413
its use of linear list with priority queue.
414
234
- Will merge to 'next'.
415
+ Will merge to 'master'.
416
source: <pull.2114.git.1778777491939.gitgitgadget@gmail.com>
417
418
@@ -256,20 +437,22 @@ Release tarballs are available at:
437
438
439
* jk/apply-leakfix (2026-05-15) 1 commit
259
- - apply: plug leak on "patch too large" error
440
+ (merged to 'next' on 2026-05-20 at 725a20bf93)
441
+ + apply: plug leak on "patch too large" error
442
443
Leakfix.
444
263
- Will merge to 'next'.
445
+ Will merge to 'master'.
446
source: <20260516021622.GA744303@coredump.intra.peff.net>
447
448
449
* jk/commit-sign-overflow-fix (2026-05-15) 1 commit
268
- - commit: handle large commit messages in utf8 verification
450
+ (merged to 'next' on 2026-05-20 at e1a320d4e5)
451
+ + commit: handle large commit messages in utf8 verification
452
453
Leakfix.
454
272
- Will merge to 'next'.
455
+ Will merge to 'master'.
456
source: <20260516022310.GB744303@coredump.intra.peff.net>
457
458
@@ -284,43 +467,45 @@ Release tarballs are available at:
467
468
469
* pb/doc-diff-format-updates (2026-05-15) 3 commits
287
- - diff-format.adoc: mode and hash are 0* for unmerged paths from index only
288
- - diff-format.adoc: 'git diff-files' prints two lines for unmerged files
289
- - diff-format.adoc: remove mention of diff-tree specific output
470
+ (merged to 'next' on 2026-05-20 at fe8d31e9f9)
471
+ + diff-format.adoc: mode and hash are 0* for unmerged paths from index only
472
+ + diff-format.adoc: 'git diff-files' prints two lines for unmerged files
473
+ + diff-format.adoc: remove mention of diff-tree specific output
474
475
Doc updates.
476
293
- Will merge to 'next'.
477
+ Will merge to 'master'.
478
source: <pull.2304.git.git.1778860091.gitgitgadget@gmail.com>
479
480
481
* ps/t3903-cover-stash-include-untracked (2026-05-16) 1 commit
298
- - stash: add coverage for show --include-untracked
482
+ (merged to 'next' on 2026-05-20 at f1e7ac1cbd)
483
+ + stash: add coverage for show --include-untracked
484
485
Test coverage has been added to "git stash --include-untracked".
486
302
- Will merge to 'next'.
487
+ Will merge to 'master'.
488
source: <20260516183347.4323-2-pushkarkumarsingh1970@gmail.com>
489
490
491
* rs/trailer-fold-optim (2026-05-15) 1 commit
307
- - trailer: change strbuf in-place in unfold_value()
492
+ (merged to 'next' on 2026-05-20 at 38c9fb15c2)
493
+ + trailer: change strbuf in-place in unfold_value()
494
495
Code simplification.
496
311
- Will merge to 'next'.
497
+ Will merge to 'master'.
498
source: <816be07e-2cd6-48fe-ae93-57fa0f2543ed@web.de>
499
500
315
-* rs/use-builtin-add-overflow-explicitly-on-clang (2026-05-14) 2 commits
501
+* rs/use-builtin-add-overflow-explicitly-on-clang (2026-05-18) 2 commits
502
- use __builtin_add_overflow() in st_add() with Clang
503
- strbuf: use st_add3() in strbuf_grow()
504
505
Micro optimization of codepaths that compute allocation sizes carefully.
506
321
- What's the status of this topic?
322
- source: <0ded6062-f66a-4713-af24-d1b5aa654823@web.de>
323
- source: <c6e9b337-c4fc-4cbd-ac32-e8d3814749b0@web.de>
507
+ Will merge to 'next'.
508
+ source: <20260518202502.25682-1-l.s.r@web.de>
509
510
511
* tc/generate-configlist-fix-for-older-ninja (2026-05-15) 1 commit
@@ -380,8 +565,6 @@ Release tarballs are available at:
565
cf. <xmqqzf1xbl4i.fsf@gitster.g>
566
source: <20260517132111.1014901-1-joerg@thalheim.io>
567
383
---------------------------------------------------
384
-[Cooking]
568
569
* sp/shallow-deepen-on-non-shallow-repo-fix (2026-05-11) 1 commit
570
(merged to 'next' on 2026-05-15 at 67dd491aae)
@@ -417,30 +600,6 @@ Release tarballs are available at:
600
source: <20260513-pks-maintenance-fix-lock-with-detach-v3-0-f27a1ac82891@pks.im>
601
602
420
-* js/mingw-no-nedmalloc (2026-05-08) 3 commits
421
- (merged to 'next' on 2026-05-13 at 2116a6bcc9)
422
- + mingw: remove the vendored compat/nedmalloc/ subtree
423
- + mingw: drop the build-system plumbing for nedmalloc
424
- + mingw: stop using nedmalloc
425
-
426
- Stop using unmaintained custom allocator in Windows build which was
427
- the last user of the code.
428
-
429
- Will merge to 'master'.
430
- source: <pull.2104.v3.git.1778244661.gitgitgadget@gmail.com>
431
-
432
-
433
-* sj/submodule-update-clone-config-fix (2026-05-09) 1 commit
434
- (merged to 'next' on 2026-05-12 at 5a0094838a)
435
- + submodule-config: fix reading submodule.fetchJobs
436
-
437
- The configuration variable submodule.fetchJobs was not read correctly,
438
- which has been corrected.
439
-
440
- Will merge to 'master'.
441
- source: <pull.2287.v4.git.git.1778385022964.gitgitgadget@gmail.com>
442
-
443
-
603
* aw/validate-proxy-url-scheme (2026-05-05) 1 commit
604
(merged to 'next' on 2026-05-15 at da9c1b71d7)
605
+ http: reject unsupported proxy URL schemes
@@ -467,16 +626,6 @@ Release tarballs are available at:
626
source: <pull.2285.v9.git.git.1778700883.gitgitgadget@gmail.com>
627
628
470
-* kh/doc-restore-double-underscores-fix (2026-05-05) 1 commit
471
- (merged to 'next' on 2026-05-12 at 2e8fc7cdac)
472
- + doc: restore: remove double underscore
473
-
474
- Doc update.
475
-
476
- Will merge to 'master'.
477
- source: <double_underscore.670@msgid.xyz>
478
-
479
-
629
* mm/diff-U-takes-no-negative-values (2026-05-12) 4 commits
630
(merged to 'next' on 2026-05-17 at d81439a049)
631
+ parse-options: clarify what "negated" means for PARSE_OPT_NONEG
@@ -511,17 +660,6 @@ Release tarballs are available at:
660
source: <pull.1715.v3.git.git.1777699722.gitgitgadget@gmail.com>
661
662
514
-* kh/doc-commit-graph (2026-05-07) 1 commit
515
- (merged to 'next' on 2026-05-12 at b9cafeb32d)
516
- + doc: add caveat about turning off commit-graph
517
-
518
- Ramifications of turning off commit-graph has been documented a bit
519
- more clearly.
520
-
521
- Will merge to 'master'.
522
- source: <V3_caveat_commit-graph.6b6@msgid.xyz>
523
-
524
-
663
* dk/doc-exclude-is-shared-per-repo (2026-05-12) 1 commit
664
(merged to 'next' on 2026-05-17 at ddc761aec6)
665
+ ignore: note info/exclude lives in GIT_COMMON_DIR, not GIT_DIR
@@ -557,23 +695,10 @@ Release tarballs are available at:
695
source: <pull.2300.git.git.1778773592.gitgitgadget@gmail.com>
696
697
560
-* ag/rebase-update-refs-limit-to-branches (2026-05-10) 1 commit
561
- (merged to 'next' on 2026-05-12 at 5222da09bb)
562
- + rebase: ignore non-branch update-refs
563
-
564
- "git rebase --update-refs", when used with an rebase.instructionFormat
565
- with "%d" (describe) in it, tried to update local branch HEAD by
566
- mistake, which has been corrected.
567
-
568
- Will merge to 'master'.
569
- source: <20260510224111.64467-2-mail@abhinavg.net>
570
-
571
-
698
* jc/ci-enable-expensive (2026-05-10) 2 commits
699
(merged to 'next' on 2026-05-15 at d258bb5e55)
700
+ ci: enable EXPENSIVE for contributor builds
701
+ Merge branch 'js/objects-larger-than-4gb-on-windows' into jc/ci-enable-expensive
576
- (this branch uses js/objects-larger-than-4gb-on-windows.)
702
703
Enable expensive tests to catch topics that may cause breakages on
704
integration branches closer to their origin in the contributor PR
@@ -583,28 +708,6 @@ Release tarballs are available at:
708
source: <xmqqjyta9630.fsf@gitster.g>
709
710
586
-* rs/sideband-clear-line-before-print (2026-05-10) 1 commit
587
- (merged to 'next' on 2026-05-12 at 83880f8ce6)
588
- + sideband: clear full line when printing remote messages
589
-
590
- Tweak the way how sideband messages from remote are printed while
591
- we talk with a remote repository to avoid tickling terminal
592
- emulator glitches.
593
-
594
- Will merge to 'master'.
595
- source: <9826dabf-c9a6-4397-8ae6-a24f9c507f1b@web.de>
596
-
597
-
598
-* jh/alias-i18n-fixes (2026-04-24) 1 commit
599
- (merged to 'next' on 2026-05-13 at c7cd30d414)
600
- + alias: restore support for simple dotted aliases
601
-
602
- Further update to the i18n alias support to avoid regressions.
603
-
604
- Will merge to 'master'.
605
- source: <20260424161707.1514255-1-jonatan@jontes.page>
606
-
607
-
711
* kn/refs-generic-helpers (2026-05-04) 9 commits
712
(merged to 'next' on 2026-05-15 at 62cb4e0ce2)
713
+ refs: use peeled tag values in reference backends
@@ -641,44 +744,7 @@ Release tarballs are available at:
744
source: <20260423165432.143598-1-belkid98@gmail.com>
745
746
644
-* ps/history-fixup (2026-04-26) 3 commits
645
- (merged to 'next' on 2026-05-13 at e6154b6272)
646
- + builtin/history: introduce "fixup" subcommand
647
- + builtin/history: generalize function to commit trees
648
- + replay: allow callers to control what happens with empty commits
649
-
650
- "git history" learned "fixup" command.
651
-
652
- Will merge to 'master'.
653
- cf. <xmqq33zxp4aq.fsf@gitster.g>
654
- source: <20260427-b4-pks-history-fixup-v3-0-cb908f06264b@pks.im>
655
-
656
-
657
-* sb/unpack-index-pack-buffer-resize (2026-04-28) 1 commit
658
- (merged to 'next' on 2026-05-13 at 2edd54bcfe)
659
- + index-pack, unpack-objects: increase input buffer from 4 KiB to 128 KiB
660
-
661
- Use a larger buffer size in the code paths to ingest pack stream.
662
-
663
- Will merge to 'master'.
664
- cf. <xmqqy0hpnpkb.fsf@gitster.g>
665
- source: <pull.2282.v4.git.git.1777387660841.gitgitgadget@gmail.com>
666
-
667
-
668
-* bc/sign-commit-with-custom-encoding (2026-04-27) 2 commits
669
- (merged to 'next' on 2026-05-13 at e82a4966c0)
670
- + commit: sign commit after mutating buffer
671
- + commit: name UTF-8 function appropriately
672
-
673
- Signing commit with custom encoding was passing the data to be
674
- signed at a wrong stage in the pipeline, which has been corrected.
675
-
676
- Will merge to 'master'.
677
- cf. <xmqqtssdnpf7.fsf@gitster.g>
678
- source: <20260427221834.1824543-1-sandals@crustytoothpaste.net>
679
-
680
-
681
-* cc/promisor-auto-config-url-more (2026-04-27) 9 commits
747
+* cc/promisor-auto-config-url-more (2026-05-19) 9 commits
748
- doc: promisor: improve acceptFromServer entry
749
- promisor-remote: auto-configure unknown remotes
750
- promisor-remote: trust known remotes matching acceptFromServerUrl
@@ -694,31 +760,8 @@ Release tarballs are available at:
760
remotes via the promisor.acceptFromServerURL configuration
761
variable.
762
697
- Waiting for response(s) to review comment(s).
698
- cf. <875x4yoys5.fsf@toon--20250203-5JQV3.mail-host-address-is-not-set>
699
- source: <20260427124108.3524129-1-christian.couder@gmail.com>
700
-
701
-
702
-* js/objects-larger-than-4gb-on-windows (2026-05-08) 11 commits
703
- (merged to 'next' on 2026-05-13 at 843d2ac470)
704
- + ci: run expensive tests on push builds to integration branches
705
- + t5608: mark >4GB tests as EXPENSIVE
706
- + test-tool synthesize: add precomputed SHA-256 pack for 4 GiB + 1
707
- + test-tool synthesize: precompute pack for 4 GiB + 1
708
- + test-tool synthesize: use the unsafe hash for speed
709
- + t5608: add regression test for >4GB object clone
710
- + test-tool: add a helper to synthesize large packfiles
711
- + delta, packfile: use size_t for delta header sizes
712
- + odb, packfile: use size_t for streaming object sizes
713
- + git-zlib: handle data streams larger than 4GB
714
- + index-pack, unpack-objects: use size_t for object size
715
- (this branch is used by jc/ci-enable-expensive.)
716
-
717
- Update code paths that assumed "unsigned long" was long enough for
718
- "size_t".
719
-
720
- Will merge to 'master'.
721
- source: <pull.2102.v3.git.1778228209.gitgitgadget@gmail.com>
763
+ Comments?
764
+ source: <20260519153808.494105-1-christian.couder@gmail.com>
765
766
767
* kh/doc-log-decorate-list (2026-04-27) 2 commits
@@ -744,25 +787,25 @@ Release tarballs are available at:
787
source: <20260429103607.406339-1-zakariyahali100@gmail.com>
788
789
747
-* hn/checkout-track-fetch (2026-05-11) 1 commit
790
+* hn/checkout-track-fetch (2026-05-18) 1 commit
791
- checkout: extend --track with a "fetch" mode to refresh start-point
792
793
"git checkout --track=..." learned to optionally fetch the branch
794
from the remote the new branch will work with.
795
796
Comments?
754
- cf. <xmqqh5odqxh2.fsf@gitster.g>
755
- source: <pull.2281.v8.git.git.1778507225500.gitgitgadget@gmail.com>
797
+ cf. <pull.2301.git.git.1778623888178.gitgitgadget@gmail.com>
798
+ source: <pull.2281.v10.git.git.1779091483321.gitgitgadget@gmail.com>
799
800
758
-* mf/revision-max-count-oldest (2026-05-15) 1 commit
801
+* mf/revision-max-count-oldest (2026-05-18) 1 commit
802
- revision.c: implement --max-count-oldest
803
804
"git rev-list" (and "git log" family of commands) learned a new "--max-count-oldest"
805
that picks oldest N commits in the range instead of the usual newest.
806
764
- Will merge to 'next'?
765
- source: <463cc8e2764edb7de3d379f615f5cfbd0919bfa3.1778887662.git.mroik@delayed.space>
807
+ Comments?
808
+ source: <8210d60832b9a58aa4d71fc3790e44d8989564ce.1779152064.git.mroik@delayed.space>
809
810
811
* mm/line-log-cleanup (2026-04-27) 3 commits
@@ -814,16 +857,6 @@ Release tarballs are available at:
857
source: <pull.2096.git.1776731171.gitgitgadget@gmail.com>
858
859
817
-* sg/t6112-unwanted-tilde-expansion-fix (2026-04-21) 1 commit
818
- (merged to 'next' on 2026-05-12 at ad2d08eb44)
819
- + t6112: avoid tilde expansion
820
-
821
- Test fix.
822
-
823
- Will merge to 'master'.
824
- source: <20260421192132.51172-1-szeder.dev@gmail.com>
825
-
826
-
860
* pw/status-rebase-todo (2026-05-01) 2 commits
861
- status: improve rebase todo list parsing
862
- sequencer: factor out parsing of todo commands
@@ -837,23 +870,25 @@ Release tarballs are available at:
870
871
872
* tb/pseudo-merge-bugfixes (2026-05-11) 9 commits
840
- - pack-bitmap: prevent pattern leak on pseudo-merge re-assignment
841
- - Documentation: fix broken `sampleRate` in gitpacking(7)
842
- - pack-bitmap: reject pseudo-merge "sampleRate" of 0
843
- - pack-bitmap: parse commits in `find_pseudo_merge_group_for_ref()`
844
- - pack-bitmap: fix pseudo-merge lookup for shared commits
845
- - pack-bitmap: fix inverted binary search in `pseudo_merge_at()`
846
- - pack-bitmap-write: sort pseudo-merge commit lookup table in pack order
847
- - t5333: demonstrate various pseudo-merge bugs
848
- - t/helper: add 'test-tool bitmap write' subcommand
873
+ (merged to 'next' on 2026-05-19 at ecee155d5c)
874
+ + pack-bitmap: prevent pattern leak on pseudo-merge re-assignment
875
+ + Documentation: fix broken `sampleRate` in gitpacking(7)
876
+ + pack-bitmap: reject pseudo-merge "sampleRate" of 0
877
+ + pack-bitmap: parse commits in `find_pseudo_merge_group_for_ref()`
878
+ + pack-bitmap: fix pseudo-merge lookup for shared commits
879
+ + pack-bitmap: fix inverted binary search in `pseudo_merge_at()`
880
+ + pack-bitmap-write: sort pseudo-merge commit lookup table in pack order
881
+ + t5333: demonstrate various pseudo-merge bugs
882
+ + t/helper: add 'test-tool bitmap write' subcommand
883
+ (this branch is used by tb/bitmap-build-performance.)
884
885
Fixes many bugs in pseudo-merge code.
886
852
- Will merge to 'next'.
887
+ Will merge to 'master'.
888
source: <cover.1778546804.git.me@ttaylorr.com>
889
890
856
-* ds/fetch-negotiation-options (2026-05-14) 8 commits
891
+* ds/fetch-negotiation-options (2026-05-19) 8 commits
892
- send-pack: pass negotiation config in push
893
- remote: add remote.*.negotiationInclude config
894
- fetch: add --negotiation-include option for negotiation
@@ -867,54 +902,25 @@ Release tarballs are available at:
902
allow requiring certain refs to be sent as "have" lines, and to
903
restrict negotiation to a specific set of refs.
904
870
- Comments?
871
- source: <pull.2085.v4.git.1778762495.gitgitgadget@gmail.com>
872
-
873
-
874
-* mc/http-emptyauth-negotiate-fix (2026-04-30) 4 commits
875
- (merged to 'next' on 2026-05-12 at 843ae82cd0)
876
- + doc: clarify http.emptyAuth values
877
- (merged to 'next' on 2026-04-20 at 6539524ca2)
878
- + t5563: add tests for http.emptyAuth with Negotiate
879
- + http: attempt Negotiate auth in http.emptyAuth=auto mode
880
- + http: extract http_reauth_prepare() from retry paths
881
-
882
- The 'http.emptyAuth=auto' configuration now correctly attempts
883
- Negotiate authentication before falling back to manual credentials.
884
- This allows seamless Kerberos ticket-based authentication without
885
- requiring users to explicitly set 'http.emptyAuth=true'.
886
-
887
- Will merge to 'master'.
888
- source: <e0f236767f81ea60f90749d1bc00ab78081efd0e.1777546472.git.gitgitgadget@gmail.com>
889
- source: <pull.2087.git.1776331259.gitgitgadget@gmail.com>
905
+ Will merge to 'next'.
906
+ source: <pull.2085.v6.git.1779207896.gitgitgadget@gmail.com>
907
908
909
* en/batch-prefetch (2026-05-14) 4 commits
893
- - grep: prefetch necessary blobs
894
- - builtin/log: prefetch necessary blobs for `git cherry`
895
- - patch-ids.h: add missing trailing parenthesis in documentation comment
896
- - promisor-remote: document caller filtering contract
910
+ (merged to 'next' on 2026-05-20 at 722acf81c8)
911
+ + grep: prefetch necessary blobs
912
+ + builtin/log: prefetch necessary blobs for `git cherry`
913
+ + patch-ids.h: add missing trailing parenthesis in documentation comment
914
+ + promisor-remote: document caller filtering contract
915
916
In a lazy clone, "git cherry" and "git grep" often fetch necessary
917
blob objects one by one from promisor remotes. It has been corrected
918
to collect necessary object names and fetch them in bulk to gain
919
reasonable performance.
920
903
- Comments?
904
- source: <pull.2089.v3.git.1778775928.gitgitgadget@gmail.com>
905
-
906
-
907
-* en/diffstat-utf8-truncation-fix (2026-04-20) 1 commit
908
- (merged to 'next' on 2026-05-13 at adf801eb1d)
909
- + diff: fix out-of-bounds reads and NULL deref in diffstat UTF-8 truncation
910
-
911
- The computation to shorten the filenames shown in diffstat measured
912
- width of individual UTF-8 characters to add up, but forgot to take
913
- into account error cases (e.g., an invalid UTF-8 sequence, or a
914
- control character).
915
-
921
Will merge to 'master'.
917
- source: <pull.2093.v3.git.1776699778177.gitgitgadget@gmail.com>
922
+ cf. <0da4f159-8d4b-49e2-93c1-25aa0bf69371@gmail.com>
923
+ source: <pull.2089.v3.git.1778775928.gitgitgadget@gmail.com>
924
925
926
* ps/odb-in-memory (2026-04-10) 18 commits
@@ -946,25 +952,6 @@ Release tarballs are available at:
952
source: <20260410-b4-pks-odb-source-inmemory-v3-0-22fd0fad58fe@pks.im>
953
954
949
-* js/adjust-tests-to-explicitly-access-bare-repo (2026-04-26) 8 commits
950
- (merged to 'next' on 2026-05-13 at 48695e1cb0)
951
- + safe.bareRepository: default to "explicit" with WITH_BREAKING_CHANGES
952
- + status tests: filter `.gitconfig` from status output
953
- + ls-files tests: filter `.gitconfig` from `--others` output
954
- + t5601: restore `.gitconfig` after includeIf test
955
- + t1305: use `--git-dir=.` for bare repo in include cycle test
956
- + t1300: remove global config settings injected by test-lib.sh
957
- + t7900: do not let `$HOME/.gitconfig` interfere with XDG tests
958
- + test-lib: allow bare repository access when breaking changes are enabled
959
-
960
- Some tests assume that bare repository accesses are by default
961
- allowed; rewrite some of them to avoid the assumption, rewrite
962
- others to explicitly set safe.bareRepository to allow them.
963
-
964
- Will merge to 'master'.
965
- source: <pull.2098.v2.git.1777214316.gitgitgadget@gmail.com>
966
-
967
-
955
* cl/conditional-config-on-worktree-path (2026-05-13) 2 commits
956
- config: add "worktree" and "worktree/i" includeIf conditions
957
- config: refactor include_by_gitdir() into include_by_path()
@@ -1033,7 +1020,7 @@ Release tarballs are available at:
1020
ODB transaction interface is being reworked to explicitly handle
1021
object writes.
1022
1036
- Will merge to 'next'?
1023
+ Will merge to 'next'.
1024
source: <20260514183740.1505171-1-jltobler@gmail.com>
1025
1026
@@ -1047,7 +1034,7 @@ Release tarballs are available at:
1034
source: <20260416033250.4327-2-siddharthasthana31@gmail.com>
1035
1036
1050
-* tb/incremental-midx-part-3.3 (2026-04-29) 16 commits
1037
+* tb/incremental-midx-part-3.3 (2026-05-19) 16 commits
1038
- repack: allow `--write-midx=incremental` without `--geometric`
1039
- repack: introduce `--write-midx=incremental`
1040
- repack: implement incremental MIDX repacking
@@ -1069,10 +1056,8 @@ Release tarballs are available at:
1056
have been implemented, and incremental strategy that does not require
1057
all-into-one repacking has been introduced.
1058
1072
- Waiting for response(s) to review comment(s).
1073
- cf. <agTw579yuy4iHoMq@szeder.dev>
1074
- cf. <20260513230825.GA1378716@coredump.intra.peff.net>
1075
- source: <cover.1777507303.git.me@ttaylorr.com>
1059
+ Will merge to 'next'.
1060
+ source: <cover.1779206239.git.me@ttaylorr.com>
1061
1062
1063
* jd/unpack-trees-wo-the-repository (2026-03-31) 2 commits
@@ -1087,7 +1072,7 @@ Release tarballs are available at:
1072
source: <pull.2258.v2.git.git.1774971267.gitgitgadget@gmail.com>
1073
1074
1090
-* ps/setup-wo-the-repository (2026-04-20) 18 commits
1075
+* ps/setup-wo-the-repository (2026-05-19) 18 commits
1076
- setup: stop using `the_repository` in `init_db()`
1077
- setup: stop using `the_repository` in `create_reference_database()`
1078
- setup: stop using `the_repository` in `initialize_repository_version()`
@@ -1103,15 +1088,15 @@ Release tarballs are available at:
1088
- setup: stop using `the_repository` in `verify_filename()`
1089
- setup: stop using `the_repository` in `path_inside_repo()`
1090
- setup: stop using `the_repository` in `prefix_path()`
1091
+ - setup: stop using `the_repository` in `is_inside_work_tree()`
1092
- setup: stop using `the_repository` in `is_inside_git_dir()`
1107
- - setup: stop using `the_repository` in `is_inside_worktree()`
1093
- setup: replace use of `the_repository` in static functions
1094
1095
Many uses of the_repository has been updated to use a more
1096
appropriate struct repository instance in setup.c codepath.
1097
1113
- Needs review.
1114
- source: <20260420-pks-setup-wo-the-repository-v1-0-f4a81c4988e8@pks.im>
1098
+ Will merge to 'next'?
1099
+ source: <20260519-pks-setup-wo-the-repository-v3-0-a00d8ea8b07f@pks.im>
1100
1101
1102
* kh/doc-trailers (2026-04-13) 9 commits
@@ -1166,27 +1151,10 @@ Release tarballs are available at:
1151
"git push" learned to take a "remote group" name to push to, which
1152
causes pushes to multiple places, just like "git fetch" would do.
1153
1169
- Waiting for response(s) to review comment(s).
1170
- cf. <d6566004-f803-4824-b050-f086b6d6d76c@app.fastmail.com>
1154
+ Comments?
1155
source: <20260503153402.1333220-1-usmanakinyemi202@gmail.com>
1156
1157
1174
-* kh/name-rev-custom-format (2026-05-11) 5 commits
1175
- (merged to 'next' on 2026-05-12 at c944d6131e)
1176
- + format-rev: introduce builtin for on-demand pretty formatting
1177
- + name-rev: make dedicated --annotate-stdin --name-only test
1178
- + name-rev: factor code for sharing with a new command
1179
- + name-rev: run clang-format before factoring code
1180
- + name-rev: wrap both blocks in braces
1181
-
1182
- A new builtin "git format-rev" is introduced for pretty formatting
1183
- one revision expression per line or commit object names found in
1184
- running text.
1185
-
1186
- Will merge to 'master'.
1187
- source: <V5_CV_format-rev.6c9@msgid.xyz>
1188
-
1189
-
1158
* js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits
1159
- SQUASH???
1160
- doc: document autocorrect API
@@ -1261,26 +1229,9 @@ Release tarballs are available at:
1229
+ xdiff: cleanup xdl_clean_mmatch()
1230
+ xdiff: reduce size of action arrays
1231
+ Merge branch 'en/xdiff-cleanup-3' into pw/xdiff-shrink-memory-consumption
1264
- (this branch uses en/xdiff-cleanup-3.)
1232
1233
Shrink wasted memory in Myers diff that does not account for common
1234
prefix and suffix removal.
1235
1236
Will merge to 'master'.
1237
source: <cover.1777903579.git.phillip.wood@dunelm.org.uk>
1271
-
1272
-
1273
-* en/xdiff-cleanup-3 (2026-04-29) 6 commits
1274
- (merged to 'next' on 2026-05-12 at e4e72e0f34)
1275
- + xdiff/xdl_cleanup_records: make execution of action easier to follow
1276
- + xdiff/xdl_cleanup_records: make setting action easier to follow
1277
- + xdiff/xdl_cleanup_records: make limits more clear
1278
- + xdiff/xdl_cleanup_records: use unambiguous types
1279
- + xdiff: use unambiguous types in xdl_bogo_sqrt()
1280
- + xdiff/xdl_cleanup_records: delete local recs pointer
1281
- (this branch is used by pw/xdiff-shrink-memory-consumption.)
1282
-
1283
- Preparation of the xdiff/ codebase to work with Rust.
1284
-
1285
- Will merge to 'master'.
1286
- source: <pull.2156.v6.git.git.1777500495.gitgitgadget@gmail.com>