What's cooking (2026/06 #04)
Junio C Hamano committed
Jun 11, 2026 at 06:27 UTC
ec29228757424d51159f579f794720a737765a50
1 file changed
+474
-419
whats-cooking.txt
+474
-419
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (Jun 2026, #03)
3
-X-master-at: 600fe743028cbfb640855f659e9851522214bc0b
4
-X-next-at: 3af1d1dc617ff77b2d2d43d1d742f19887db26f5
2
+Subject: What's cooking in git.git (Jun 2026, #04)
3
+X-master-at: 3e65291872de10c3f0bf05ea8c24187e7a71ebf0
4
+X-next-at: 7b1980befcad838a440dd908397520459faf403d
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (Jun 2026, #03)
7
+What's cooking in git.git (Jun 2026, #04)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -17,6 +17,11 @@ 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
+A preview release Git 2.55-rc0 has been tagged and pushed out. There
21
+may be a few more topics in 'next' and possibly outside 'next' that
22
+we may want to include in the release that I didn't manage or I
23
+forgot (please let me know).
24
+
25
Copies of the source code to Git live in many repositories, and the
26
following is a list of the ones I push into or their mirrors. Some
27
repositories have only a subset of branches.
@@ -48,80 +53,353 @@ Release tarballs are available at:
53
--------------------------------------------------
54
[Graduated to 'master']
55
51
-* aj/stash-patch-optimize-temporary-index (2026-05-22) 1 commit
52
- (merged to 'next' on 2026-05-31 at d1b1dd94f5)
53
- + stash: reuse cached index entries in --patch temporary index
56
+* gh/jump-auto-mode (2026-05-21) 1 commit
57
+ (merged to 'next' on 2026-06-02 at f70dd05c9c)
58
+ + git-jump: pick a mode automatically when invoked without arguments
59
+
60
+ The 'git-jump' command (in contrib/) has been taught to automatically
61
+ pick a mode (merge, diff, or ws) when invoked without arguments.
62
+ cf. <20260522052821.GC861761@coredump.intra.peff.net>
63
+ source: <pull.2108.v3.git.1779371110195.gitgitgadget@gmail.com>
64
+
65
+
66
+* hn/macos-linker-warning (2026-06-02) 1 commit
67
+ (merged to 'next' on 2026-06-04 at db2ca164c4)
68
+ + config.mak.uname: avoid macOS linker warning on Xcode 16.3+
69
+
70
+ A linker warning on macOS when building with Xcode 16.3 or newer has
71
+ been avoided by passing -fno-common to the compiler when a
72
+ sufficiently new linker is detected.
73
+ source: <pull.2313.v3.git.git.1780385878555.gitgitgadget@gmail.com>
74
+
75
+
76
+* ib/doc-push-default-simple (2026-05-25) 1 commit
77
+ (merged to 'next' on 2026-06-02 at 5c1ff2a769)
78
+ + doc: clarify push.default=simple behavior
79
+
80
+ The documentation for `push.default = simple` has been clarified to
81
+ better explain its behavior, making it clear that it pushes the
82
+ current branch to a same-named branch on the remote, and detailing
83
+ the upstream requirements for centralized workflows.
84
+ cf. <pull.2115.v2.git.1779767888508.gitgitgadget@gmail.com>
85
+ source: <pull.2115.v2.git.1779767888508.gitgitgadget@gmail.com>
86
+
87
+
88
+* jc/doc-monitor-ghci (2026-05-24) 1 commit
89
+ (merged to 'next' on 2026-06-02 at 46fb5fe1c2)
90
+ + SubmittingPatches: proactively monitor GHCI pages
91
+
92
+ Encourage original authors to monitor the CI status.
93
+ source: <xmqq1pf0gpp3.fsf@gitster.g>
94
55
- "git stash -p" has been optimized by reusing cached index
56
- entries in its temporary index, avoiding unnecessary lstat()
57
- calls on unchanged files.
58
- cf. <xmqqse7m6deh.fsf@gitster.g>
59
- source: <pull.2306.v2.git.git.1779491545531.gitgitgadget@gmail.com>
95
96
+* kk/wildmatch-windows-ls-files-prereq (2026-05-28) 1 commit
97
+ (merged to 'next' on 2026-06-04 at 6dc748aa63)
98
+ + t3070: skip ls-files tests with backslash patterns on Windows
99
62
-* ar/receive-pack-worktree-env (2026-05-25) 1 commit
63
- (merged to 'next' on 2026-05-27 at 9c246d1969)
64
- + receive-pack: fix updateInstead with core.worktree
100
+ In t3070-wildmatch, "via ls-files" test variants with patterns
101
+ containing backslash escapes are now skipped on Windows, avoiding 36
102
+ test failures caused by pathspec separator conversion.
103
+ cf. <xmqqecivjn7k.fsf@gitster.g>
104
+ source: <pull.2128.git.1779958849319.gitgitgadget@gmail.com>
105
66
- The GIT_WORK_TREE variable prepared to invoke the push-to-checkout
67
- hook was leaking into the environment even when there was no hook
68
- used and broke the default push-to-deploy (i.e., let "git checkout"
69
- update the working tree only when the working tree is clean).
70
- source: <20260525162311.66240-2-hi@alyssa.is>
106
107
+* lp/http-fetch-pack-index-leak-fix (2026-06-01) 2 commits
108
+ (merged to 'next' on 2026-06-04 at f4090b5068)
109
+ + http: fix memory leak in fetch_and_setup_pack_index()
110
+ + http: cleanup function fetch_and_setup_pack_index()
111
73
-* ds/restore-sparse-index (2026-05-26) 2 commits
74
- (merged to 'next' on 2026-05-31 at e85a961bc7)
75
- + restore: avoid sparse index expansion
76
- + t1092: test 'git restore' with sparse index
112
+ A memory leak in `fetch_and_setup_pack_index()` when verification of
113
+ the downloaded pack index fails has been plugged. Also an obsolete
114
+ `unlink()` call on parse failure has been cleaned up.
115
+ cf. <20260529053659.GC1099450@coredump.intra.peff.net>
116
+ source: <cover.1780321770.git.lorenzo.pegorari2002@gmail.com>
117
78
- 'git restore --staged' has been optimized to avoid unnecessarily expanding
79
- the sparse index when operating on paths within the sparse checkout
80
- definition, by handling sparse directory entries at the tree level.
81
- source: <pull.2121.v2.git.1779827195.gitgitgadget@gmail.com>
118
119
+* mm/doc-word-diff (2026-05-28) 1 commit
120
+ (merged to 'next' on 2026-06-04 at 9fa723ec63)
121
+ + doc: clarify that --word-diff operates on line-level hunks
122
+
123
+ The documentation for "--word-diff" has been extended with a bit of
124
+ implementation detail of where these different words come from.
125
+ source: <pull.2113.v2.git.1779996106005.gitgitgadget@gmail.com>
126
+
127
+
128
+* mm/line-log-cleanup (2026-05-28) 3 commits
129
+ (merged to 'next' on 2026-06-04 at 02f8bea278)
130
+ + line-log: allow non-patch diff formats with -L
131
+ + line-log: integrate -L output with the standard log-tree pipeline
132
+ + revision: move -L setup before output_format-to-diff derivation
133
84
-* ja/doc-synopsis-style-again (2026-05-25) 6 commits
85
- (merged to 'next' on 2026-05-31 at cc4fe82d87)
86
- + doc: convert git-imap-send synopsis and options to new style
87
- + doc: convert git-apply synopsis and options to new style
88
- + doc: convert git-am synopsis and options to new style
89
- + doc: convert git-grep synopsis and options to new style
90
- + doc: git bisect: clarify the usage of the synopsis vs actual command
91
- + doc: convert git-bisect to synopsis style
134
+ The `git log -L` implementation has been refactored to use the
135
+ standard diff output pipeline, enabling pickaxe and diff-filter to
136
+ work as expected. Additionally, metadata-only diff formats like
137
+ --raw and --name-only are now supported with -L.
138
+ cf. <B59BA5B1-184D-48A8-8BAD-11EB6F8EB50C@gmail.com>
139
+ source: <pull.2094.v3.git.1780001267.gitgitgadget@gmail.com>
140
+
141
+
142
+* ps/odb-source-loose (2026-06-01) 19 commits
143
+ (merged to 'next' on 2026-06-04 at 660909ad66)
144
+ + odb/source-loose: drop pointer to the "files" source
145
+ + odb/source-loose: stub out remaining callbacks
146
+ + odb/source-loose: wire up `write_object_stream()` callback
147
+ + object-file: refactor writing objects to use loose source
148
+ + odb/source-loose: wire up `write_object()` callback
149
+ + loose: refactor object map to operate on `struct odb_source_loose`
150
+ + odb/source-loose: wire up `freshen_object()` callback
151
+ + odb/source-loose: drop `odb_source_loose_has_object()`
152
+ + odb/source-loose: wire up `count_objects()` callback
153
+ + odb/source-loose: wire up `find_abbrev_len()` callback
154
+ + odb/source-loose: wire up `for_each_object()` callback
155
+ + odb/source-loose: wire up `read_object_stream()` callback
156
+ + odb/source-loose: wire up `read_object_info()` callback
157
+ + odb/source-loose: wire up `close()` callback
158
+ + odb/source-loose: wire up `reprepare()` callback
159
+ + odb/source-loose: start converting to a proper `struct odb_source`
160
+ + odb/source-loose: store pointer to "files" instead of generic source
161
+ + odb/source-loose: move loose source into "odb/" subsystem
162
+ + Merge branch 'ps/odb-in-memory' into ps/odb-source-loose
163
+ (this branch is used by ps/odb-source-packed.)
164
+
165
+ The loose object source has been refactored into a proper `struct
166
+ odb_source`.
167
+ source: <20260601-b4-pks-odb-source-loose-v2-0-90ff159430af@pks.im>
168
+
169
+
170
+* rs/strbuf-add-oid-hex (2026-05-13) 1 commit
171
+ (merged to 'next' on 2026-06-02 at 4876f95de0)
172
+ + hex: add and use strbuf_add_oid_hex()
173
+
174
+ Formatting object name in full hexadecimal form has been optimized
175
+ by using a new strbuf_add_oid_hex() helper function.
176
+ cf. <20260513160155.GA103037@coredump.intra.peff.net>
177
+ source: <183aa0fd-d455-4ec9-9c42-d511fac8b3e4@web.de>
178
+
179
+
180
+* rs/strbuf-add-uint (2026-05-12) 4 commits
181
+ (merged to 'next' on 2026-06-02 at f5be02d8ec)
182
+ + ls-tree: use strbuf_add_uint()
183
+ + ls-files: use strbuf_add_uint()
184
+ + cat-file: use strbuf_add_uint()
185
+ + strbuf: add strbuf_add_uint()
186
+
187
+ Adding a decimal integer with strbuf_addf("%u") appears commonly;
188
+ they have been optimized by using a custom formatter.
189
+ cf. <20260512184619.GD70851@coredump.intra.peff.net>
190
+ source: <20260512115603.80780-1-l.s.r@web.de>
191
+
192
+
193
+* st/daemon-sockaddr-fixes (2026-05-27) 3 commits
194
+ (merged to 'next' on 2026-06-04 at 17684e6158)
195
+ + daemon: guard NULL REMOTE_PORT in execute() logging
196
+ + daemon: fix IPv6 address truncation in ip2str()
197
+ + daemon: fix IPv6 address corruption in lookup_hostname()
198
+
199
+ Correct use of sockaddr API in "git daemon".
200
+ source: <pull.2300.v3.git.git.1779937016.gitgitgadget@gmail.com>
201
+
202
+
203
+* tb/bitmap-build-performance (2026-05-27) 9 commits
204
+ (merged to 'next' on 2026-06-02 at d1a84a996a)
205
+ + pack-bitmap: build pseudo-merge bitmaps after regular bitmaps
206
+ + pack-bitmap: remember pseudo-merge parents
207
+ + pack-bitmap: sort bitmaps before XORing
208
+ + pack-bitmap: cache object positions during fill
209
+ + pack-bitmap: consolidate `find_object_pos()` success path
210
+ + pack-bitmap: reuse stored selected bitmaps
211
+ + pack-bitmap: check subtree bits before recursing
212
+ + pack-bitmap: pass object position to `fill_bitmap_tree()`
213
+ + Merge branch 'tb/pseudo-merge-bugfixes' into tb/bitmap-build-performance
214
93
- A batch of documentation pages has been updated to use the modern
94
- synopsis style.
95
- cf. <pull.2117.v2.git.1779704908.gitgitgadget@gmail.com>
96
- source: <pull.2117.v2.git.1779704908.gitgitgadget@gmail.com>
215
+ Reachability bitmap generation has been significantly optimized. By
216
+ reordering tree traversal, caching object positions, and refining how
217
+ pseudo-merge bitmaps are constructed, the performance of "git repack
218
+ --write-midx-bitmaps" is improved, especially for large repositories
219
+ and when using pseudo-merges.
220
+ cf. <20260529083439.GD1106035@coredump.intra.peff.net>
221
+ source: <cover.1779911733.git.me@ttaylorr.com>
222
223
99
-* kh/free-commit-list (2026-05-28) 2 commits
100
- (merged to 'next' on 2026-05-31 at 154f83b192)
101
- + commit: remove deprecated functions
102
- + *: replace deprecated free_commit_list
224
+* th/promisor-quiet-per-repo (2026-04-06) 1 commit
225
+ (merged to 'next' on 2026-06-02 at 02a749d7fe)
226
+ + promisor-remote: fix promisor.quiet to use the correct repository
227
104
- Code clean-up.
105
- source: <V2_CV_commit.h_remove_deprecated.732@msgid.xyz>
228
+ The "promisor.quiet" configuration variable was not used from
229
+ relevant submodules when commands like "grep --recurse-submodules"
230
+ triggered a lazy fetch, which has been corrected.
231
+ cf. <c87f1f12-d0cc-4150-8f43-4dc9cc1fe24f@malon.dev>
232
+ source: <20260406183041.783800-1-vikingtc4@gmail.com>
233
234
108
-* kk/commit-reach-optim (2026-05-25) 3 commits
109
- (merged to 'next' on 2026-05-31 at eeb8d0c207)
110
- + commit-reach: replace queue_has_nonstale() scan with O(1) tracking
111
- + commit-reach: deduplicate queue entries in paint_down_to_common
112
- + object.h: fix stale entries in object flag allocation table
235
+* ua/push-remote-group (2026-05-03) 3 commits
236
+ (merged to 'next' on 2026-06-02 at ba5d6aebaa)
237
+ + push: support pushing to a remote group
238
+ + remote: move remote group resolution to remote.c
239
+ + remote: fix sign-compare warnings in push_cas_option
240
114
- The check for non-stale commits in the priority queue used by
115
- `paint_down_to_common` and `ahead_behind` has been optimized by
116
- replacing an O(N) scan with an O(1) counter, yielding performance
117
- improvements in repositories with wide histories.
118
- cf. <xmqqzf1ncded.fsf@gitster.g>
119
- source: <pull.2124.v2.git.1779719286.gitgitgadget@gmail.com>
241
+ "git push" learned to take a "remote group" name to push to, which
242
+ causes pushes to multiple places, just like "git fetch" would do.
243
+ cf. <20260518182721.155070-1-usmanakinyemi202@gmail.com>
244
+ source: <20260503153402.1333220-1-usmanakinyemi202@gmail.com>
245
246
--------------------------------------------------
247
[New Topics]
248
124
-* ps/odb-source-packed (2026-06-04) 17 commits
249
+* kk/prio-queue-get-put-fusion (2026-06-08) 2 commits
250
+ - prio-queue: fold lazy_queue into prio_queue for automatic get+put fusion
251
+ - prio-queue: rename .nr to .nr_ and add accessor helpers
252
+
253
+ The lazy priority queue optimization pattern (deferring actual removal
254
+ in prio_queue_get() to allow get+put fusion) has been folded directly
255
+ into prio_queue itself, speeding up commit traversal workflows and
256
+ simplifying callers.
257
+
258
+ Comments?
259
+ source: <pull.2140.v4.git.1780945851.gitgitgadget@gmail.com>
260
+
261
+
262
+* kk/remove-get-reachable-subset (2026-06-11) 1 commit
263
+ - commit-reach: remove get_reachable_subset()
264
+
265
+ API clean-up.
266
+
267
+ Needs review.
268
+ source: <pull.2144.v2.git.1781178567862.gitgitgadget@gmail.com>
269
+
270
+
271
+* td/ref-filter-memoize-contains (2026-06-08) 2 commits
272
+ - ref-filter: memoize --contains with generations
273
+ - commit-reach: handle cycles in contains walk
274
+
275
+ 'git branch --contains' and 'git for-each-ref --contains' have
276
+ been optimized to use the memoized commit traversal previously
277
+ used only by 'git tag --contains', significantly speeding up
278
+ connectivity checks across many candidate refs with shared
279
+ history.
280
+
281
+ Waiting for response(s) to review comment(s).
282
+ cf. <CAOLa=ZRFSuGrqFXhTuQ7Dk5GCQQGHom++78xwONoiNdt1h_gWQ@mail.gmail.com>
283
+ source: <20260608-ref-filter-memoized-contains-v2-0-e72720344a7c@gmail.com>
284
+
285
+
286
+* tc/replay-linearize (2026-06-10) 3 commits
287
+ - replay: offer an option to linearize the commit topology
288
+ - replay: add helper to put entry into mapped_commits
289
+ - replay: refactor enum replay_mode into a bool
290
+
291
+ git replay learns --linearize option to drop merge commits and
292
+ linearize the replayed history, mimicking git rebase
293
+ --no-rebase-merges.
294
+
295
+ Waiting for response(s) to review comment(s).
296
+ cf. <xmqqjys6wcpo.fsf@gitster.g>
297
+ source: <20260610-toon-git-replay-drop-merges-v2-0-5714a71c6d83@iotcl.com>
298
+
299
+
300
+* td/describe-tag-iteration (2026-06-10) 1 commit
301
+ - describe: limit default ref iteration to tags
302
+
303
+ 'git describe' has been taught to pass the 'refs/tags/' prefix down to
304
+ the ref iterator when '--all' is not requested, avoiding unnecessary
305
+ iteration over non-tag refs.
306
+
307
+ Needs review.
308
+ source: <20260610-describe-tag-ref-scope-v3-1-5aa63ab279f7@gmail.com>
309
+
310
+
311
+* ta/doc-config-adoc-fixes (2026-06-10) 3 commits
312
+ - doc: git-config: escape erroneous highlight markup
313
+ - doc: config/sideband: fix description list delimiter
314
+ - doc: config: terminate runaway lists
315
+
316
+ Various AsciiDoc markup fixes in 'git config' documentation and
317
+ related files to ensure lists and formatting are rendered correctly.
318
+
319
+ Comments?
320
+ cf. <20260611083139.GA2237523@coredump.intra.peff.net>
321
+ source: <20260610225513.6269-1-taahol@utu.fi>
322
+
323
+
324
+* ps/setup-drop-global-state (2026-06-10) 8 commits
325
+ - treewide: drop USE_THE_REPOSITORY_VARIABLE
326
+ - environment: stop using `the_repository` in `is_bare_repository()`
327
+ - environment: split up concerns of `is_bare_repository_cfg`
328
+ - builtin/init: stop modifying `is_bare_repository_cfg`
329
+ - setup: remove global `git_work_tree_cfg` variable
330
+ - builtin/init: simplify logic to configure worktree
331
+ - builtin/init: stop modifying global `git_work_tree_cfg` variable
332
+ - Merge branch 'ps/setup-centralize-odb-creation' into ps/setup-drop-global-state
333
+ (this branch uses ps/setup-centralize-odb-creation.)
334
+
335
+ Continuation of "setup.c" refactoring to drop remaining global state
336
+ (`git_work_tree_cfg`, `is_bare_repository_cfg`). The most notable
337
+ outcome is that `is_bare_repository()` has been updated to no longer
338
+ implicitly rely on `the_repository`.
339
+
340
+ Comments?
341
+ source: <20260611-b4-pks-setup-drop-global-state-v2-0-a6f7269c841d@pks.im>
342
+
343
+
344
+* ps/refs-avoid-chdir-notify-reparent (2026-06-10) 10 commits
345
+ - refs: always use absolute paths for reference stores
346
+ - refs: drop local buffer in `refs_compute_filesystem_location()`
347
+ - refs: fix recursing `get_main_ref_store()` with "onbranch" config
348
+ - repository: free main reference database
349
+ - chdir-notify: drop unused `chdir_notify_reparent()`
350
+ - refs: unregister reference stores from "chdir_notify"
351
+ - setup: don't apply "GIT_REFERENCE_BACKEND" without a repository
352
+ - setup: stop applying repository format twice
353
+ - setup: inline `check_and_apply_repository_format()`
354
+ - Merge branch 'ps/setup-centralize-odb-creation' into ps/refs-avoid-chdir-notify-reparent
355
+ (this branch uses ps/setup-centralize-odb-creation.)
356
+
357
+ The reference backends have been converted to always use absolute
358
+ paths internally. This allows dropping the calls to
359
+ `chdir_notify_reparent()` and fixes a memory leak in how the
360
+ reference database is constructed with an "onbranch" condition.
361
+
362
+ Waiting for response(s) to review comment(s).
363
+ cf. <20260611065346.GD2191159@coredump.intra.peff.net>
364
+ source: <20260610-b4-pks-refs-avoid-chdir-notify-reparent-v1-0-56c864b01c43@pks.im>
365
+
366
+
367
+* jc/t1400-fifo-cleanup (2026-06-10) 1 commit
368
+ - t1400: have fifo test clean after itself
369
+
370
+ source: <xmqqo6hit6rn.fsf@gitster.g>
371
+
372
+--------------------------------------------------
373
+[Stalled]
374
+
375
+* cs/subtree-split-recursion (2026-03-05) 3 commits
376
+ - contrib/subtree: reduce recursion during split
377
+ - contrib/subtree: functionalize split traversal
378
+ - contrib/subtree: reduce function side-effects
379
+
380
+ When processing large history graphs on Debian or Ubuntu, "git
381
+ subtree" can die with a "recursion depth reached" error.
382
+
383
+ Waiting for response(s) to review comment(s) for too long, consider discarding.
384
+ cf. <xmqqv7c13o5l.fsf@gitster.g>
385
+ source: <20260305-cs-subtree-split-recursion-v2-0-7266be870ba9@howdoi.land>
386
+
387
+--------------------------------------------------
388
+[Cooking]
389
+
390
+* jd/unpack-trees-wo-the-repository (2026-03-31) 1 commit
391
+ - unpack-trees: use repository from index instead of global
392
+
393
+ A handful of inappropriate uses of the_repository have been
394
+ rewritten to use the right repository structure instance in the
395
+ unpack-trees.c codepath.
396
+
397
+ Will merge to 'next'.
398
+ cf. <xmqqqzmfz91r.fsf@gitster.g>
399
+ source: <pull.2258.v2.git.git.1774971267.gitgitgadget@gmail.com>
400
+
401
+
402
+* ps/odb-source-packed (2026-06-09) 18 commits
403
- odb/source-packed: drop pointer to "files" parent source
404
- midx: refactor interfaces to work on "packed" source
405
- odb/source-packed: stub out remaining functions
@@ -137,18 +415,18 @@ Release tarballs are available at:
415
- odb/source-packed: start converting to a proper `struct odb_source`
416
- odb/source-packed: store pointer to "files" instead of generic source
417
- packfile: move packed source into "odb/" subsystem
418
+ - packfile: split out packfile list logic
419
- packfile: rename `struct packfile_store` to `odb_source_packed`
420
- Merge branch 'ps/odb-source-loose' into ps/odb-source-packed
142
- (this branch uses ps/odb-source-loose.)
421
422
The packed object source has been refactored into a proper struct
423
odb_source.
424
147
- Comments?
148
- source: <20260604-pks-odb-source-packed-v1-0-2e7ab31b4b5c@pks.im>
425
+ Needs review.
426
+ source: <20260609-pks-odb-source-packed-v2-0-839089132c8b@pks.im>
427
428
151
-* ps/transport-helper-tsan-fix (2026-06-04) 1 commit
429
+* ps/transport-helper-tsan-fix (2026-06-09) 1 commit
430
- transport-helper: fix TSAN race in transfer_debug()
431
432
The TSAN race in transfer_debug() within transport-helper.c has been
@@ -156,8 +434,10 @@ Release tarballs are available at:
434
bidirectional_transfer_loop() before spawning worker threads, allowing
435
the removal of a TSAN suppression.
436
159
- Comments?
160
- source: <20260604132327.277693-3-pushkarkumarsingh1970@gmail.com>
437
+ Will merge to 'next'?
438
+ cf. <20260609002833.GE358144@coredump.intra.peff.net>
439
+ cf. <20260611083320.GI2191159@coredump.intra.peff.net>
440
+ source: <20260609134741.4727-2-pushkarkumarsingh1970@gmail.com>
441
442
443
* ta/typofixes (2026-06-04) 1 commit
@@ -165,19 +445,21 @@ Release tarballs are available at:
445
446
Typofixes
447
168
- Comments?
448
+ Will merge to 'next'.
449
+ cf. <xmqqh5ncvfsu.fsf@gitster.g>
450
source: <20260604131457.19215-1-taahol@utu.fi>
451
452
453
* js/win-kill-child-more-gently (2026-06-04) 2 commits
173
- - mingw: really handle SIGINT
174
- - mingw: kill child processes in a gentler way
454
+ (merged to 'next' on 2026-06-11 at b4a2299e7e)
455
+ + mingw: really handle SIGINT
456
+ + mingw: kill child processes in a gentler way
457
458
Advanced emulation of kill() used on Windows in GfW has been
459
upstreamed to improve the symptoms like left-behind .lock files and
460
that fails to let the child clean-up itself when it gets killed.
461
180
- Comments?
462
+ Will merge to 'master'.
463
source: <pull.2130.git.1780590261.gitgitgadget@gmail.com>
464
465
@@ -190,31 +472,33 @@ Release tarballs are available at:
472
checks, and the existing GIT_GNUC_PREREQ macro has been modernized
473
to use explicit major/minor comparisons rather than bit-shifting.
474
193
- Comments?
475
+ Needs review.
476
source: <20260608124419.38905-1-dominik.loidolt@univie.ac.at>
477
478
479
* lo/doc-format-patch-subject-prefix (2026-06-04) 1 commit
198
- - Documentation: remove redundant 'instead' in --subject-prefix
480
+ (merged to 'next' on 2026-06-09 at 58b2a20f6d)
481
+ + Documentation: remove redundant 'instead' in --subject-prefix
482
483
Wording used in "format-patch --subject-prefix" documentation
484
has been improved.
485
203
- Will merge to 'next'.
486
+ Will merge to 'master'.
487
source: <20260604163510.36687-2-lucasseikioshiro@gmail.com>
488
489
490
* am/doc-tech-hash-typofix (2026-06-05) 1 commit
208
- - doc: fix typo in GIT_ALTERNATE_OBJECT_DIRECTORIES
491
+ (merged to 'next' on 2026-06-09 at aeaf2363f8)
492
+ + doc: fix typo in GIT_ALTERNATE_OBJECT_DIRECTORIES
493
494
Typofix.
495
212
- Will merge to 'next'.
496
+ Will merge to 'master'.
497
cf. <aiZo9FqsdKrhz0gA@pks.im>
498
source: <20260605172643.8796-1-amonakov@ispras.ru>
499
500
217
-* td/ref-filter-restore-prefix-iteration (2026-06-05) 1 commit
501
+* td/ref-filter-restore-prefix-iteration (2026-06-10) 1 commit
502
- ref-filter: restore prefix-scoped iteration
503
504
Commands that list branches and tags (like git branch and git tag)
@@ -222,19 +506,21 @@ Release tarballs are available at:
506
their ref iterator, avoiding a loose-ref scaling regression in
507
repositories with many unrelated loose references.
508
225
- Comments?
226
- source: <20260605-fix-git-branch-regression-v1-1-02f40ad40929@gmail.com>
509
+ Needs review.
510
+ source: <20260610-fix-git-branch-regression-v3-1-6fd48fad7a53@gmail.com>
511
512
229
-* ty/move-protect-hfs-ntfs (2026-06-06) 1 commit
513
+* ty/move-protect-hfs-ntfs (2026-06-10) 1 commit
514
- environment.c: move 'protect_hfs' and 'protect_ntfs' into 'repo_config_values'
515
516
The global configuration variables protect_hfs and protect_ntfs have
517
been migrated into struct repo_config_values to tie them to
518
per-repository configuration state.
519
236
- Comments?
237
- source: <20260606143412.15443-1-cat@malon.dev>
520
+ Will merge to 'next'?
521
+ cf. <CAP8UFD35Tiy1_fqpjq8P-z=ZhzR3MTiThqfCs977652umRoSEQ@mail.gmail.com>
522
+ cf. <xmqqse6uwdnz.fsf@gitster.g>
523
+ source: <20260610124353.149874-2-cat@malon.dev>
524
525
526
* ds/config-no-includes (2026-06-08) 3 commits
@@ -247,6 +533,7 @@ Release tarballs are available at:
533
to ignore configuration include directives.
534
535
Comments?
536
+ cf. <20260608225149.GB340696@coredump.intra.peff.net>
537
source: <pull.2139.git.1780927027.gitgitgadget@gmail.com>
538
539
@@ -274,38 +561,9 @@ Release tarballs are available at:
561
inapplicable or unsupported fields.
562
563
Comments?
564
+ cf. <CA+J6zkQ22en2HgH03EedKOfC+jLcHH2UbwpH0h_bDEAHR6B2pg@mail.gmail.com>
565
source: <20260608-ps-eric-work-rebase-v12-0-5338b766e658@gmail.com>
566
279
---------------------------------------------------
280
-[Stalled]
281
-
282
-* jd/unpack-trees-wo-the-repository (2026-03-31) 2 commits
283
- - unpack-trees: use repository from index instead of global
284
- - unpack-trees: use repository from index instead of global
285
-
286
- A handful of inappropriate uses of the_repository have been
287
- rewritten to use the right repository structure instance in the
288
- unpack-trees.c codepath.
289
-
290
- Waiting for response(s) to review comment(s) for too long, consider discarding.
291
- cf. <xmqqldf7y95a.fsf@gitster.g>
292
- source: <pull.2258.v2.git.git.1774971267.gitgitgadget@gmail.com>
293
-
294
-
295
-* cs/subtree-split-recursion (2026-03-05) 3 commits
296
- - contrib/subtree: reduce recursion during split
297
- - contrib/subtree: functionalize split traversal
298
- - contrib/subtree: reduce function side-effects
299
-
300
- When processing large history graphs on Debian or Ubuntu, "git
301
- subtree" can die with a "recursion depth reached" error.
302
-
303
- Waiting for response(s) to review comment(s) for too long, consider discarding.
304
- cf. <xmqqv7c13o5l.fsf@gitster.g>
305
- source: <20260305-cs-subtree-split-recursion-v2-0-7266be870ba9@howdoi.land>
306
-
307
---------------------------------------------------
308
-[Cooking]
567
568
* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
569
- http: preserve wwwauth_headers across redirects
@@ -330,33 +588,22 @@ Release tarballs are available at:
588
streamlined method for submitting patches.
589
590
Comments?
591
+ cf. <87a4t32a4g.fsf@emacs.iotcl.com>
592
source: <20260608-pks-b4-v3-0-f5e497d10c56@pks.im>
593
335
-
336
-* kk/streaming-walk-pqueue (2026-05-27) 3 commits
337
- - revision: use priority queue for non-limited streaming walks
338
- - revision: introduce rev_walk_mode to clarify get_revision_1()
339
- - pack-objects: call release_revisions() after cruft traversal
340
-
341
- Streaming revision walks have been optimized by using a priority queue
342
- for date-sorting commits, speeding up walks repositories with many
343
- merges.
344
-
345
- Will merge to 'next'?
346
- source: <pull.2127.git.1779897003.gitgitgadget@gmail.com>
347
-
348
-
349
-* kk/wildmatch-windows-ls-files-prereq (2026-05-28) 1 commit
350
- (merged to 'next' on 2026-06-04 at 6dc748aa63)
351
- + t3070: skip ls-files tests with backslash patterns on Windows
352
-
353
- In t3070-wildmatch, "via ls-files" test variants with patterns
354
- containing backslash escapes are now skipped on Windows, avoiding 36
355
- test failures caused by pathspec separator conversion.
594
+
595
+* kk/streaming-walk-pqueue (2026-05-27) 3 commits
596
+ (merged to 'next' on 2026-06-11 at 1466219fc9)
597
+ + revision: use priority queue for non-limited streaming walks
598
+ + revision: introduce rev_walk_mode to clarify get_revision_1()
599
+ + pack-objects: call release_revisions() after cruft traversal
600
+
601
+ Streaming revision walks have been optimized by using a priority queue
602
+ for date-sorting commits, speeding up walks repositories with many
603
+ merges.
604
605
Will merge to 'master'.
358
- cf. <xmqqecivjn7k.fsf@gitster.g>
359
- source: <pull.2128.git.1779958849319.gitgitgadget@gmail.com>
606
+ source: <pull.2127.git.1779897003.gitgitgadget@gmail.com>
607
608
609
* sn/rebase-update-refs-symrefs (2026-06-03) 1 commit
@@ -373,29 +620,16 @@ Release tarballs are available at:
620
source: <pull.2126.v2.git.1780482436865.gitgitgadget@gmail.com>
621
622
376
-* lp/http-fetch-pack-index-leak-fix (2026-06-01) 2 commits
377
- (merged to 'next' on 2026-06-04 at f4090b5068)
378
- + http: fix memory leak in fetch_and_setup_pack_index()
379
- + http: cleanup function fetch_and_setup_pack_index()
380
-
381
- A memory leak in `fetch_and_setup_pack_index()` when verification of
382
- the downloaded pack index fails has been plugged. Also an obsolete
383
- `unlink()` call on parse failure has been cleaned up.
384
-
385
- Will merge to 'master'.
386
- cf. <20260529053659.GC1099450@coredump.intra.peff.net>
387
- source: <cover.1780321770.git.lorenzo.pegorari2002@gmail.com>
388
-
389
-
623
* jk/describe-contains-all-match-fix (2026-06-01) 1 commit
391
- - describe: fix --exclude, --match with --contains and --all
624
+ (merged to 'next' on 2026-06-11 at a95871538b)
625
+ + describe: fix --exclude, --match with --contains and --all
626
627
The 'git describe --contains --all' command has been fixed to
628
properly honor the '--match' and '--exclude' options by passing
629
them down to 'git name-rev' with the appropriate reference
630
prefixes.
631
398
- Will merge to 'next'?
632
+ Will merge to 'master'.
633
source: <20260601233727.43558-1-jacob.e.keller@intel.com>
634
635
@@ -405,8 +639,7 @@ Release tarballs are available at:
639
Various typos, grammatical errors, and duplicated words in both
640
documentation and code comments have been corrected.
641
408
- Waiting for response(s) to review comment(s).
409
- cf. <xmqq8q8x3nox.fsf@gitster.g>
642
+ Will merge to 'next'.
643
source: <7b502e20e9495cd4720496bd6738a1fbeb453410.1780041658.git.wy@wyuan.org>
644
645
@@ -417,23 +650,11 @@ Release tarballs are available at:
650
delta cache instead of immediately freeing them, letting the existing
651
cache limit policy decide eviction.
652
420
- Waiting for response(s) to review comment(s).
421
- cf. <c4a32a6f-70bf-4ff4-abbf-d6e301246b5b@gmail.com>
653
+ Will replace with [v2] and then merge to 'next'.
654
+ cf. <20260611065748.GF2191159@coredump.intra.peff.net>
655
source: <pull.2131.v3.git.1780445118653.gitgitgadget@gmail.com>
656
657
425
-* hn/macos-linker-warning (2026-06-02) 1 commit
426
- (merged to 'next' on 2026-06-04 at db2ca164c4)
427
- + config.mak.uname: avoid macOS linker warning on Xcode 16.3+
428
-
429
- A linker warning on macOS when building with Xcode 16.3 or newer has
430
- been avoided by passing -fno-common to the compiler when a
431
- sufficiently new linker is detected.
432
-
433
- Will merge to 'master'.
434
- source: <pull.2313.v3.git.git.1780385878555.gitgitgadget@gmail.com>
435
-
436
-
658
* mm/diff-process-hunks (2026-05-29) 6 commits
659
. blame: consult diff process for no-hunk detection
660
. diff: bypass diff process with --no-ext-diff and in format-patch
@@ -465,13 +686,12 @@ Release tarballs are available at:
686
faster packaging by falling back to path-walk when bitmaps cannot
687
fully satisfy the request.
688
468
- Comments?
689
+ Needs review.
690
source: <cover.1780438896.git.me@ttaylorr.com>
691
692
472
-* ty/migrate-trust-executable-bit (2026-05-30) 4 commits
473
- - read-cache: pass 'istate' to stat/mode helper functions
474
- - environment: move 'trust_executable_bit' into repo_config_values
693
+* ty/migrate-trust-executable-bit (2026-06-10) 3 commits
694
+ - environment: move trust_executable_bit into repo_config_values
695
- read-cache: move 'ce_mode_from_stat()' to 'read-cache.c'
696
- read-cache: remove redundant extern declarations
697
@@ -479,18 +699,19 @@ Release tarballs are available at:
699
configuration) has been migrated into 'repo_config_values' to tie it
700
to a specific repository instance.
701
482
- Waiting for response(s) to review comment(s).
702
+ Needs review.
703
cf. <CAP8UFD1GJ=caPh-M97KLCfB1ZKtpomzosYN0uYBOnay+G23GcA@mail.gmail.com>
704
cf. <CAP8UFD20yij=1ZEYnR74DoCJ3g=b39yOsUxZecYuuf7nFGaKyA@mail.gmail.com>
485
- source: <20260530160520.77859-1-cat@malon.dev>
705
+ source: <20260610093635.139719-1-cat@malon.dev>
706
707
708
* ak/typofixes (2026-05-31) 1 commit
489
- - doc: fix typos via codespell
709
+ (merged to 'next' on 2026-06-09 at 40de2e7b90)
710
+ + doc: fix typos via codespell
711
712
Typofixes.
713
493
- Will merge to 'next'.
714
+ Will merge to 'master'.
715
cf. <3398ef40-1547-4324-2cfc-97b9e2b24854@gmx.de>
716
cf. <xmqq8q8p1ese.fsf@gitster.g>
717
source: <20260531184428.55905-1-algonell@gmail.com>
@@ -508,6 +729,7 @@ Release tarballs are available at:
729
730
Expecting a reroll.
731
cf. <CAL71e4Ob-B5MJ5DPY+_tzpj6nyrbQ5WutxED2T93SWJV6kJGPA@mail.gmail.com>
732
+ cf. <CAL71e4MYNiScZjTwkApjDAjRh2LM0_SP59h5HCTywV-Pua03tw@mail.gmail.com>
733
source: <pull.2132.v2.git.1780301856444.gitgitgadget@gmail.com>
734
735
@@ -519,7 +741,7 @@ Release tarballs are available at:
741
parent Git process from dying abruptly when a configured subprocess
742
(e.g., a clean/smudge filter) fails to start.
743
522
- Will merge to 'next'?
744
+ Will merge to 'next'.
745
source: <pull.2133.v2.git.1780348848489.gitgitgadget@gmail.com>
746
747
@@ -533,18 +755,20 @@ Release tarballs are available at:
755
absolute and relative paths for "gitdir" and "commondir", supported by
756
a new path-formatting helper extracted from "git rev-parse".
757
536
- Comments?
758
+ Expecting a reroll.
759
+ cf. <CA+rGoLf39iQH9X-xKW7HeTS3sMv-N-QzGiqm0Y=RYGOAqDcaoA@mail.gmail.com>
760
source: <20260605163012.181089-1-jayatheerthkulkarni2005@gmail.com>
761
762
540
-* ps/history-drop (2026-06-08) 9 commits
763
+* ps/history-drop (2026-06-10) 10 commits
764
- builtin/history: implement "drop" subcommand
765
- builtin/history: split handling of ref updates into two phases
766
- reset: stop assuming that the caller passes in a clean index
767
- reset: allow the caller to specify the current HEAD object
545
- - reset: introduce ability to skip reference updates
768
+ - reset: introduce ability to skip updating HEAD
769
- reset: introduce dry-run mode
547
- - reset: modernize flags passed to `reset_head()`
770
+ - reset: modernize flags passed to `reset_working_tree()`
771
+ - reset: rename `reset_head()`
772
- reset: drop `USE_THE_REPOSITORY_VARIABLE`
773
- read-cache: split out function to drop unmerged entries to stage 0
774
@@ -552,18 +776,19 @@ Release tarballs are available at:
776
subcommand to remove a commit and replay its descendants onto its
777
parent.
778
555
- Comments?
556
- source: <20260608-b4-pks-history-drop-v3-0-84ca8e43e937@pks.im>
779
+ Needs review.
780
+ source: <20260610-b4-pks-history-drop-v4-0-70d5f0ae8c25@pks.im>
781
782
783
* ls/doc-raw-timestamp-prefix (2026-06-02) 1 commit
560
- - doc: document and test `@` prefix for raw timestamps
784
+ (merged to 'next' on 2026-06-09 at 7198b6bb9d)
785
+ + doc: document and test `@` prefix for raw timestamps
786
787
Documentation and tests have been added to clarify that Git's internal
788
raw timestamp format requires a `@` prefix for values less than
789
100,000,000 to prevent ambiguity with other formats like YYYYMMDD.
790
566
- Will merge to 'next'.
791
+ Will merge to 'master'.
792
cf. xmqqmrxdxq1r.fsf@gitster.g>
793
source: <20260602081924.673763-2-dev@luna.gl>
794
@@ -581,59 +806,63 @@ Release tarballs are available at:
806
807
808
* jc/submitting-patches-cover-letter (2026-06-02) 2 commits
584
- - SubmittingPatches: describe cover letter
585
- - SubmittingPatches: separate typofixes section
809
+ (merged to 'next' on 2026-06-09 at 42b2538a2a)
810
+ + SubmittingPatches: describe cover letter
811
+ + SubmittingPatches: separate typofixes section
812
813
Guidelines on how to write a cover letter for a multi-patch series
814
have been added to SubmittingPatches, which also got a new marker
815
to separate the section for typofixes.
816
591
- Will merge to 'next'.
817
+ Will merge to 'master'.
818
cf. <c54f3571-ff7b-4caa-b75d-a739ed87ec9d@gmail.com>
819
cf. <aiEgUdnL8dkszKFn@pks.im>
820
source: <20260602144304.3341000-1-gitster@pobox.com>
821
822
823
* ps/t7527-fix-tap-output (2026-06-04) 8 commits
598
- - t: let prove fail when parsing invalid TAP output
599
- - t/lib-git-p4: silence output when killing p4d and its watchdog
600
- - t/test-lib: silence EBUSY errors on Windows during test cleanup
601
- - t7810: turn MB_REGEX check into a lazy prereq
602
- - t7527: fix broken TAP output
603
- - ci: unify Linux images across GitLab and GitHub
604
- - gitlab-ci: add missing Linux jobs
605
- - gitlab-ci: rearrange Linux jobs to match GitHub's order
824
+ (merged to 'next' on 2026-06-11 at b5a4cd26ee)
825
+ + t: let prove fail when parsing invalid TAP output
826
+ + t/lib-git-p4: silence output when killing p4d and its watchdog
827
+ + t/test-lib: silence EBUSY errors on Windows during test cleanup
828
+ + t7810: turn MB_REGEX check into a lazy prereq
829
+ + t7527: fix broken TAP output
830
+ + ci: unify Linux images across GitLab and GitHub
831
+ + gitlab-ci: add missing Linux jobs
832
+ + gitlab-ci: rearrange Linux jobs to match GitHub's order
833
834
A recent regression in t7527 that broke TAP output has been fixed,
835
some other test noise that also broke TAP output has been silenced,
836
and 'prove' is now configured to fail on invalid TAP output to
837
prevent future regressions.
838
612
- Comments?
839
+ Will merge to 'master'.
840
source: <20260604-pks-t7527-fix-tap-output-v3-0-7d766ed481e4@pks.im>
841
842
843
* ob/more-repo-config-values (2026-06-02) 8 commits
617
- - environment: move "warn_on_object_refname_ambiguity" into `struct repo_config_values`
618
- - environment: move "sparse_expect_files_outside_of_patterns" into `struct repo_config_values`
619
- - environment: move "core_sparse_checkout_cone" into `struct repo_config_values`
620
- - environment: move "precomposed_unicode" into `struct repo_config_values`
621
- - environment: move "pack_compression_level" into `struct repo_config_values`
622
- - environment: move `zlib_compression_level` into `struct repo_config_values`
623
- - environment: move "check_stat" into `struct repo_config_values`
624
- - environment: move "trust_ctime" into `struct repo_config_values`
844
+ (merged to 'next' on 2026-06-09 at 3d0b057aee)
845
+ + environment: move "warn_on_object_refname_ambiguity" into `struct repo_config_values`
846
+ + environment: move "sparse_expect_files_outside_of_patterns" into `struct repo_config_values`
847
+ + environment: move "core_sparse_checkout_cone" into `struct repo_config_values`
848
+ + environment: move "precomposed_unicode" into `struct repo_config_values`
849
+ + environment: move "pack_compression_level" into `struct repo_config_values`
850
+ + environment: move `zlib_compression_level` into `struct repo_config_values`
851
+ + environment: move "check_stat" into `struct repo_config_values`
852
+ + environment: move "trust_ctime" into `struct repo_config_values`
853
854
Many core configuration variables have been migrated from global
855
variables into 'repo_config_values' to tie them to a specific
856
repository instance, avoiding cross-repository state leakage.
857
630
- Will merge to 'next'.
858
+ Will merge to 'master'.
859
source: <20260602170921.35869-1-belkid98@gmail.com>
860
861
634
-* kh/doc-trailers (2026-04-13) 9 commits
862
+* kh/doc-trailers (2026-06-10) 10 commits
863
- doc: interpret-trailers: document comment line treatment
864
- doc: interpret-trailers: commit to “trailer block” term
865
+ - doc: interpret-trailers: join new-trailers again
866
- doc: interpret-trailers: add key format example
867
- doc: interpret-trailers: explain key format
868
- doc: interpret-trailers: explain the format after the intro
@@ -644,9 +873,8 @@ Release tarballs are available at:
873
874
Documentation updates.
875
647
- Expecting a reroll.
648
- cf. <5508ee49-2f78-4c3a-accf-a2350666bfb8@app.fastmail.com>
649
- source: <V2_CV_doc_int-tr_key_format.613@msgid.xyz>
876
+ Needs review.
877
+ source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
878
879
880
* za/completion-hide-dotfiles (2026-05-26) 1 commit
@@ -656,35 +884,11 @@ Release tarballs are available at:
884
updated to hide dotfiles by default, unless the user explicitly starts
885
the path with a dot, matching standard shell-completion behavior.
886
659
- Comments?
887
+ Waiting for response(s) to review comment(s).
888
cf. <xmqqqzmxlep3.fsf@gitster.g>
889
source: <pull.2311.v2.git.git.1779808987825.gitgitgadget@gmail.com>
890
891
664
-* ib/doc-push-default-simple (2026-05-25) 1 commit
665
- (merged to 'next' on 2026-06-02 at 5c1ff2a769)
666
- + doc: clarify push.default=simple behavior
667
-
668
- The documentation for `push.default = simple` has been clarified to
669
- better explain its behavior, making it clear that it pushes the
670
- current branch to a same-named branch on the remote, and detailing
671
- the upstream requirements for centralized workflows.
672
-
673
- Will merge to 'master'.
674
- cf. <pull.2115.v2.git.1779767888508.gitgitgadget@gmail.com>
675
- source: <pull.2115.v2.git.1779767888508.gitgitgadget@gmail.com>
676
-
677
-
678
-* jc/doc-monitor-ghci (2026-05-24) 1 commit
679
- (merged to 'next' on 2026-06-02 at 46fb5fe1c2)
680
- + SubmittingPatches: proactively monitor GHCI pages
681
-
682
- Encourage original authors to monitor the CI status.
683
-
684
- Will merge to 'master'.
685
- source: <xmqq1pf0gpp3.fsf@gitster.g>
686
-
687
-
892
* ec/commit-fixup-options (2026-05-26) 2 commits
893
- commit: allow -c/-C for all kinds of --fixup
894
- commit: allow -m/-F for all kinds of --fixup
@@ -692,68 +896,28 @@ Release tarballs are available at:
896
The -m/-F/-c/-C options to supply commit log message from outside the
897
editor are now supported for all "git commit --fixup" variations.
898
695
- Comments?
899
+ Needs review.
900
source: <cover.1779792311.git.erik@cervined.in>
901
902
699
-* gh/jump-auto-mode (2026-05-21) 1 commit
700
- (merged to 'next' on 2026-06-02 at f70dd05c9c)
701
- + git-jump: pick a mode automatically when invoked without arguments
702
-
703
- The 'git-jump' command (in contrib/) has been taught to automatically
704
- pick a mode (merge, diff, or ws) when invoked without arguments.
705
-
706
- Will merge to 'master'.
707
- cf. <20260522052821.GC861761@coredump.intra.peff.net>
708
- source: <pull.2108.v3.git.1779371110195.gitgitgadget@gmail.com>
709
-
710
-
711
-* ps/odb-source-loose (2026-06-01) 19 commits
712
- (merged to 'next' on 2026-06-04 at 660909ad66)
713
- + odb/source-loose: drop pointer to the "files" source
714
- + odb/source-loose: stub out remaining callbacks
715
- + odb/source-loose: wire up `write_object_stream()` callback
716
- + object-file: refactor writing objects to use loose source
717
- + odb/source-loose: wire up `write_object()` callback
718
- + loose: refactor object map to operate on `struct odb_source_loose`
719
- + odb/source-loose: wire up `freshen_object()` callback
720
- + odb/source-loose: drop `odb_source_loose_has_object()`
721
- + odb/source-loose: wire up `count_objects()` callback
722
- + odb/source-loose: wire up `find_abbrev_len()` callback
723
- + odb/source-loose: wire up `for_each_object()` callback
724
- + odb/source-loose: wire up `read_object_stream()` callback
725
- + odb/source-loose: wire up `read_object_info()` callback
726
- + odb/source-loose: wire up `close()` callback
727
- + odb/source-loose: wire up `reprepare()` callback
728
- + odb/source-loose: start converting to a proper `struct odb_source`
729
- + odb/source-loose: store pointer to "files" instead of generic source
730
- + odb/source-loose: move loose source into "odb/" subsystem
731
- + Merge branch 'ps/odb-in-memory' into ps/odb-source-loose
732
- (this branch is used by ps/odb-source-packed.)
733
-
734
- The loose object source has been refactored into a proper `struct
735
- odb_source`.
736
-
737
- Will merge to 'master'.
738
- source: <20260601-b4-pks-odb-source-loose-v2-0-90ff159430af@pks.im>
739
-
740
-
903
* ps/setup-centralize-odb-creation (2026-06-04) 9 commits
742
- - setup: construct object database in `apply_repository_format()`
743
- - repository: stop reading loose object map twice on repo init
744
- - setup: stop initializing object database without repository
745
- - setup: stop creating the object database in `setup_git_env()`
746
- - repository: stop initializing the object database in `repo_set_gitdir()`
747
- - setup: deduplicate logic to apply repository format
748
- - setup: drop `setup_git_env()`
749
- - t0001: plug test gaps for git-init(1) with GIT_OBJECT_DIRECTORY
750
- - Merge branch 'ps/setup-wo-the-repository' into ps/setup-centralize-odb-creation
904
+ (merged to 'next' on 2026-06-09 at a1f23cb38c)
905
+ + setup: construct object database in `apply_repository_format()`
906
+ + repository: stop reading loose object map twice on repo init
907
+ + setup: stop initializing object database without repository
908
+ + setup: stop creating the object database in `setup_git_env()`
909
+ + repository: stop initializing the object database in `repo_set_gitdir()`
910
+ + setup: deduplicate logic to apply repository format
911
+ + setup: drop `setup_git_env()`
912
+ + t0001: plug test gaps for git-init(1) with GIT_OBJECT_DIRECTORY
913
+ + Merge branch 'ps/setup-wo-the-repository' into ps/setup-centralize-odb-creation
914
+ (this branch is used by ps/refs-avoid-chdir-notify-reparent and ps/setup-drop-global-state.)
915
916
The setup logic to discover and configure repositories has been
917
refactored, and the initialization of the object database has been
918
centralized.
919
756
- Will merge to 'next'.
920
+ Will merge to 'master'.
921
cf. <CAOLa=ZQwVbLsOcajaxQwtkTPm=4St7EiGEEyL6_B0o3Tt1v1pw@mail.gmail.com>
922
source: <20260604-b4-pks-setup-centralize-odb-creation-v3-0-0691834f318a@pks.im>
923
@@ -767,33 +931,10 @@ Release tarballs are available at:
931
Doc update for "git replay" to actually refer to its configuration
932
variables.
933
770
- Comments?
934
+ Needs review.
935
source: <V3_CV_doc_replay_config.780@msgid.xyz>
936
937
774
-* tb/bitmap-build-performance (2026-05-27) 9 commits
775
- (merged to 'next' on 2026-06-02 at d1a84a996a)
776
- + pack-bitmap: build pseudo-merge bitmaps after regular bitmaps
777
- + pack-bitmap: remember pseudo-merge parents
778
- + pack-bitmap: sort bitmaps before XORing
779
- + pack-bitmap: cache object positions during fill
780
- + pack-bitmap: consolidate `find_object_pos()` success path
781
- + pack-bitmap: reuse stored selected bitmaps
782
- + pack-bitmap: check subtree bits before recursing
783
- + pack-bitmap: pass object position to `fill_bitmap_tree()`
784
- + Merge branch 'tb/pseudo-merge-bugfixes' into tb/bitmap-build-performance
785
-
786
- Reachability bitmap generation has been significantly optimized. By
787
- reordering tree traversal, caching object positions, and refining how
788
- pseudo-merge bitmaps are constructed, the performance of "git repack
789
- --write-midx-bitmaps" is improved, especially for large repositories
790
- and when using pseudo-merges.
791
-
792
- Will merge to 'master'.
793
- cf. <20260529083439.GD1106035@coredump.intra.peff.net>
794
- source: <cover.1779911733.git.me@ttaylorr.com>
795
-
796
-
938
* hn/status-pull-advice-qualified (2026-05-21) 1 commit
939
- remote: qualify "git pull" advice for non-upstream compareBranches
940
@@ -801,58 +942,22 @@ Release tarballs are available at:
942
diverged from its push branch has been updated to suggest "git pull
943
<remote> <branch>".
944
804
- Comments?
945
+ Will merge to 'next'?
946
+ cf. <xmqq7bo6xuok.fsf@gitster.g>
947
source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com>
948
949
808
-* rs/strbuf-add-uint (2026-05-12) 4 commits
809
- (merged to 'next' on 2026-06-02 at f5be02d8ec)
810
- + ls-tree: use strbuf_add_uint()
811
- + ls-files: use strbuf_add_uint()
812
- + cat-file: use strbuf_add_uint()
813
- + strbuf: add strbuf_add_uint()
814
-
815
- Adding a decimal integer with strbuf_addf("%u") appears commonly;
816
- they have been optimized by using a custom formatter.
817
-
818
- Will merge to 'master'.
819
- cf. <20260512184619.GD70851@coredump.intra.peff.net>
820
- source: <20260512115603.80780-1-l.s.r@web.de>
821
-
822
-
823
-* mm/doc-word-diff (2026-05-28) 1 commit
824
- (merged to 'next' on 2026-06-04 at 9fa723ec63)
825
- + doc: clarify that --word-diff operates on line-level hunks
826
-
827
- The documentation for "--word-diff" has been extended with a bit of
828
- implementation detail of where these different words come from.
829
-
830
- Will merge to 'master'.
831
- source: <pull.2113.v2.git.1779996106005.gitgitgadget@gmail.com>
832
-
833
-
834
-* rs/strbuf-add-oid-hex (2026-05-13) 1 commit
835
- (merged to 'next' on 2026-06-02 at 4876f95de0)
836
- + hex: add and use strbuf_add_oid_hex()
837
-
838
- Formatting object name in full hexadecimal form has been optimized
839
- by using a new strbuf_add_oid_hex() helper function.
840
-
841
- Will merge to 'master'.
842
- cf. <20260513160155.GA103037@coredump.intra.peff.net>
843
- source: <183aa0fd-d455-4ec9-9c42-d511fac8b3e4@web.de>
844
-
845
-
950
* hn/config-typo-advice (2026-06-02) 2 commits
847
- - config: improve diagnostic for "set" with missing value
848
- - config: add git_config_key_is_valid() for quiet validation
951
+ (merged to 'next' on 2026-06-09 at 5149e69e3e)
952
+ + config: improve diagnostic for "set" with missing value
953
+ + config: add git_config_key_is_valid() for quiet validation
954
955
"git config foo.bar=baz" is not likely to be a request to read the
956
value of such a variable with '=' in its name; rather it is plausible
957
that the user meant "git config set foo.bar baz". Give advice when
958
giving an error message.
959
855
- Will merge to 'next'.
960
+ Will merge to 'master'.
961
cf. <xmqq1penqfg2.fsf@gitster.g>
962
source: <pull.2302.v6.git.git.1780425808.gitgitgadget@gmail.com>
963
@@ -869,32 +974,21 @@ Release tarballs are available at:
974
source: <20260517132111.1014901-1-joerg@thalheim.io>
975
976
872
-* hn/branch-prune-merged (2026-06-05) 6 commits
873
- . branch: add --dry-run for --prune-merged
874
- . branch: add branch.<name>.pruneMerged opt-out
875
- . branch: add --prune-merged <branch>
876
- . branch: prepare delete_branches for a bulk caller
877
- . branch: let delete_branches warn instead of error on bulk refusal
878
- . branch: add --forked filter for --list mode
977
+* hn/branch-prune-merged (2026-06-09) 6 commits
978
+ - branch: add --dry-run for --prune-merged
979
+ - branch: add branch.<name>.pruneMerged opt-out
980
+ - branch: add --prune-merged <branch>
981
+ - branch: prepare delete_branches for a bulk caller
982
+ - branch: let delete_branches warn instead of error on bulk refusal
983
+ - branch: add --forked filter for --list mode
984
985
"git branch" command learned "--prune-merged" option to remove
986
local branches that have already been merged to the remote-tracking
987
branches they track.
988
884
- Breaks tests.
885
- source: <pull.2285.v13.git.git.1780684553.gitgitgadget@gmail.com>
886
-
887
-
888
-* st/daemon-sockaddr-fixes (2026-05-27) 3 commits
889
- (merged to 'next' on 2026-06-04 at 17684e6158)
890
- + daemon: guard NULL REMOTE_PORT in execute() logging
891
- + daemon: fix IPv6 address truncation in ip2str()
892
- + daemon: fix IPv6 address corruption in lookup_hostname()
893
-
894
- Correct use of sockaddr API in "git daemon".
895
-
896
- Will merge to 'master'.
897
- source: <pull.2300.v3.git.git.1779937016.gitgitgadget@gmail.com>
989
+ Needs review.
990
+ cf. <1c56bf9c-8273-4499-87c8-16ddf0112dca@gmail.com>
991
+ source: <pull.2285.v14.git.git.1780999917.gitgitgadget@gmail.com>
992
993
994
* cc/promisor-auto-config-url-more (2026-05-27) 8 commits
@@ -912,7 +1006,9 @@ Release tarballs are available at:
1006
remotes via the promisor.acceptFromServerURL configuration
1007
variable.
1008
915
- Comments?
1009
+ Will merge to 'next'?
1010
+ cf. <877bo7294j.fsf@emacs.iotcl.com>
1011
+ cf. <xmqqh5naxwfc.fsf@gitster.g>
1012
source: <20260527140820.1438165-1-christian.couder@gmail.com>
1013
1014
@@ -923,34 +1019,19 @@ Release tarballs are available at:
1019
"git checkout --track=..." learned to optionally fetch the branch
1020
from the remote the new branch will work with.
1021
926
- Comments?
1022
+ Needs review.
1023
source: <pull.2281.v13.git.git.1779565714.gitgitgadget@gmail.com>
1024
1025
1026
* mf/revision-max-count-oldest (2026-05-18) 1 commit
931
- - revision.c: implement --max-count-oldest
1027
+ (merged to 'next' on 2026-06-09 at 076600fa21)
1028
+ + revision.c: implement --max-count-oldest
1029
1030
"git rev-list" (and "git log" family of commands) learned a new "--max-count-oldest"
1031
that picks oldest N commits in the range instead of the usual newest.
1032
936
- Will merge to 'next'.
937
- source: <8210d60832b9a58aa4d71fc3790e44d8989564ce.1779152064.git.mroik@delayed.space>
938
-
939
-
940
-* mm/line-log-cleanup (2026-05-28) 3 commits
941
- (merged to 'next' on 2026-06-04 at 02f8bea278)
942
- + line-log: allow non-patch diff formats with -L
943
- + line-log: integrate -L output with the standard log-tree pipeline
944
- + revision: move -L setup before output_format-to-diff derivation
945
-
946
- The `git log -L` implementation has been refactored to use the
947
- standard diff output pipeline, enabling pickaxe and diff-filter to
948
- work as expected. Additionally, metadata-only diff formats like
949
- --raw and --name-only are now supported with -L.
950
-
1033
Will merge to 'master'.
952
- cf. <B59BA5B1-184D-48A8-8BAD-11EB6F8EB50C@gmail.com>
953
- source: <pull.2094.v3.git.1780001267.gitgitgadget@gmail.com>
1034
+ source: <xmqq4ijm3p2x.fsf@gitster.g>
1035
1036
1037
* en/ort-harden-against-corrupt-trees (2026-04-20) 5 commits
@@ -1004,36 +1085,10 @@ Release tarballs are available at:
1085
1086
Expecting a reroll.
1087
cf. <CAN5EUNQoKRqt3FGLmzRGpPU1nO5jCAogP8Wm9gBZXuPbMNbQAw@mail.gmail.com>
1088
+ cf. <CAN5EUNSFBC0+aoW1ceGjEiKWBRjzuzUEUjg8Xys5O9rDsJdkjg@mail.gmail.com>
1089
source: <20260427102838.44867-2-pabloosabaterr@gmail.com>
1090
1091
1010
-* th/promisor-quiet-per-repo (2026-04-06) 1 commit
1011
- (merged to 'next' on 2026-06-02 at 02a749d7fe)
1012
- + promisor-remote: fix promisor.quiet to use the correct repository
1013
-
1014
- The "promisor.quiet" configuration variable was not used from
1015
- relevant submodules when commands like "grep --recurse-submodules"
1016
- triggered a lazy fetch, which has been corrected.
1017
-
1018
- Will merge to 'master'.
1019
- cf. <c87f1f12-d0cc-4150-8f43-4dc9cc1fe24f@malon.dev>
1020
- source: <20260406183041.783800-1-vikingtc4@gmail.com>
1021
-
1022
-
1023
-* ua/push-remote-group (2026-05-03) 3 commits
1024
- (merged to 'next' on 2026-06-02 at ba5d6aebaa)
1025
- + push: support pushing to a remote group
1026
- + remote: move remote group resolution to remote.c
1027
- + remote: fix sign-compare warnings in push_cas_option
1028
-
1029
- "git push" learned to take a "remote group" name to push to, which
1030
- causes pushes to multiple places, just like "git fetch" would do.
1031
-
1032
- Will merge to 'master'.
1033
- cf. <20260518182721.155070-1-usmanakinyemi202@gmail.com>
1034
- source: <20260503153402.1333220-1-usmanakinyemi202@gmail.com>
1035
-
1036
-
1092
* js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits
1093
- SQUASH???
1094
- doc: document autocorrect API
@@ -1062,7 +1117,7 @@ Release tarballs are available at:
1117
The final step, split from earlier attempt by Dscho, to loosen the
1118
sideband restriction for now and tighten later at Git v3.0 boundary.
1119
1065
- On hold to help the base topic with wider exposure.
1120
+ Will retract.
1121
(this branch uses jc/neuter-sideband-fixup.)
1122
source: <20260305233452.3727126-8-gitster@pobox.com>
1123