What's cooking (2026/07 #03)
I hate sending the "what's cooking" report too often, but at the beginning of new cycle it would be OK.
Junio C Hamano committed
Jul 7, 2026 at 10:10 UTC
4cfa0b034b3bbe1c581db88518bdae33d4ad80f0
1 file changed
+645
-614
whats-cooking.txt
+645
-614
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (Jul 2026, #02)
3
-X-master-at: e9019fcafe0040228b8631c30f97ae1adb61bcdc
4
-X-next-at: c42f45431d0ffbb231a771bbd65f8a334855ceed
2
+Subject: What's cooking in git.git (Jul 2026, #03)
3
+X-master-at: f85a7e662054a7b0d9070e432508831afa214b47
4
+X-next-at: 00534a21ce949ef80a5b8b9d7fc20b7d381038e9
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (Jul 2026, #02)
7
+What's cooking in git.git (Jul 2026, #03)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -17,15 +17,7 @@ A topic without enough support may be discarded after a long period
17
of no activity (of course, it can be resubmitted when new interest
18
arises).
19
20
-As the zeroth week of the post-Git 2.55 cycle has passed without any
21
-reports of unexpected regressions, let's start merging things
22
-down. I plan to merge the topics that have been cooking in the
23
-'next' branch down to the 'master' branch early this week. The
24
-'next' branch may have to be frozen for a few days while I decide
25
-whether we want to rewind and rebuild it during the week, and we'll
26
-go from there. In the meantime, please help advance the topics
27
-waiting outside the 'next' branch by providing reviews,
28
-encouragement and testing.
20
+The first batch of topics have now graduated to the 'master' branch.
21
22
Copies of the source code to Git live in many repositories, and the
23
following is a list of the ones I push into or their mirrors. Some
@@ -55,9 +47,479 @@ Release tarballs are available at:
47
48
https://www.kernel.org/pub/software/scm/git/
49
50
+--------------------------------------------------
51
+[Graduated to 'master']
52
+
53
+* cc/promisor-auto-config-url-more (2026-05-27) 8 commits
54
+ (merged to 'next' on 2026-06-15 at d1c99e75cc)
55
+ + doc: promisor: improve acceptFromServer entry
56
+ + promisor-remote: auto-configure unknown remotes
57
+ + promisor-remote: trust known remotes matching acceptFromServerUrl
58
+ + promisor-remote: introduce promisor.acceptFromServerUrl
59
+ + promisor-remote: add 'local_name' to 'struct promisor_info'
60
+ + urlmatch: add url_normalize_pattern() helper
61
+ + urlmatch: change 'allow_globs' arg to bool
62
+ + t5710: simplify 'mkdir X' followed by 'git -C X init'
63
+
64
+ The handling of promisor-remote protocol capability has been updated
65
+ to allow the other side to add to the list of promisor remotes via the
66
+ 'promisor.acceptFromServerURL' configuration variable.
67
+
68
+ Graduated to 'master'.
69
+ cf. <877bo7294j.fsf@emacs.iotcl.com>
70
+ cf. <xmqqh5naxwfc.fsf@gitster.g>
71
+ source: <20260527140820.1438165-1-christian.couder@gmail.com>
72
+
73
+
74
+* en/ort-harden-against-corrupt-trees (2026-06-13) 5 commits
75
+ (merged to 'next' on 2026-06-18 at e51bee59ca)
76
+ + cache-tree: fix verify_cache() to catch non-adjacent D/F conflicts
77
+ + merge-ort: abort merge when trees have duplicate entries
78
+ + merge-ort: free diff pairs queue in clear_or_reinit_internal_opts()
79
+ + merge-ort: drop unnecessary show_all_errors from collect_merge_info()
80
+ + merge-ort: propagate callback errors from traverse_trees_wrapper()
81
+
82
+ The 'ort' merge backend has been hardened against corrupt trees by
83
+ ensuring it aborts under appropriate error conditions.
84
+
85
+ Graduated to 'master'.
86
+ cf. <xmqq5x3ldu4h.fsf@gitster.g>
87
+ source: <pull.2096.v2.git.1781419047.gitgitgadget@gmail.com>
88
+
89
+
90
+* hn/status-pull-advice-qualified (2026-05-21) 1 commit
91
+ (merged to 'next' on 2026-06-15 at 898a4df940)
92
+ + remote: qualify "git pull" advice for non-upstream compareBranches
93
+
94
+ Advice shown by 'git status' when the local branch is behind or has
95
+ diverged from its push branch has been updated to suggest 'git pull
96
+ <remote> <branch>'.
97
+
98
+ Graduated to 'master'.
99
+ cf. <xmqq7bo6xuok.fsf@gitster.g>
100
+ source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com>
101
+
102
+
103
+* jc/submittingpatches-design-critiques (2026-06-20) 1 commit
104
+ (merged to 'next' on 2026-06-22 at 7495b5f9d6)
105
+ + SubmittingPatches: address design critiques
106
+
107
+ The documentation in SubmittingPatches has been updated to clarify how
108
+ patch contributors should respond to design and viability critiques,
109
+ and how the resolution of such critiques should be recorded in the
110
+ final commit messages.
111
+
112
+ Graduated to 'master'.
113
+ cf. <ajjwYGWZ6hQWr600@pks.im>
114
+ source: <xmqqeci0g4mz.fsf@gitster.g>
115
+
116
+
117
+* jk/repo-info-path-keys (2026-06-23) 3 commits
118
+ (merged to 'next' on 2026-06-29 at fbf9652169)
119
+ + repo: add path.gitdir with absolute and relative suffix formatting
120
+ + repo: add path.commondir with absolute and relative suffix formatting
121
+ + path: extract format_path() and use in rev-parse
122
+ (this branch is used by ps/setup-split-discovery-and-setup.)
123
+
124
+ The 'git repo info' command has been taught new keys to output both
125
+ absolute and relative paths for 'gitdir' and 'commondir', supported by
126
+ a new path-formatting helper extracted from 'git rev-parse'.
127
+
128
+ Graduated to 'master'.
129
+ cf. <xmqqy0g3iz38.fsf@gitster.g>
130
+ source: <20260624033748.108281-1-jayatheerthkulkarni2005@gmail.com>
131
+
132
+
133
+* jk/setup-gitfile-diag-fix (2026-06-16) 1 commit
134
+ (merged to 'next' on 2026-06-18 at b63b3d1f25)
135
+ + read_gitfile(): simplify NOT_A_REPO error message
136
+
137
+ A regression in the error diagnosis code for invalid '.git' files has
138
+ been fixed, avoiding a potential 'NULL'-pointer crash when reporting
139
+ that a '.git' file does not point to a valid repository.
140
+
141
+ Graduated to 'master'.
142
+ cf. <xmqqjyry4hax.fsf@gitster.g>
143
+ source: <20260616123516.GA2301231@coredump.intra.peff.net>
144
+
145
+
146
+* kh/submittingpatches-trailers (2026-06-18) 5 commits
147
+ (merged to 'next' on 2026-06-22 at 2cd4a152c9)
148
+ + SubmittingPatches: note that trailer order matters
149
+ + SubmittingPatches: be consistent with trailer markup
150
+ + SubmittingPatches: document Based-on-patch-by trailer
151
+ + SubmittingPatches: discourage common Linux trailers
152
+ + SubmittingPatches: encourage trailer use for substantial help
153
+
154
+ The trailer sections in SubmittingPatches have been updated to
155
+ encourage use of standard trailers.
156
+
157
+ Graduated to 'master'.
158
+ cf. <xmqq4ij0vo8f.fsf@gitster.g>
159
+ source: <V3_CV_SubPatches_trailers.9ec@msgid.xyz>
160
+
161
+
162
+* mh/fetch-follow-remote-head-config (2026-06-19) 8 commits
163
+ (merged to 'next' on 2026-06-22 at 423079e1c8)
164
+ + fetch: fixup a misaligned comment
165
+ + fetch: add configuration variable fetch.followRemoteHEAD
166
+ + fetch: refactor do_fetch handling of followRemoteHEAD
167
+ + fetch: return 0 on known git_fetch_config
168
+ + fetch: rename function report_set_head
169
+ + t5510: cleanup remote in followRemoteHEAD dangling ref test
170
+ + doc: explain fetchRemoteHEADWarn advice
171
+ + fetch: fixup set_head advice for warn-if-not-branch
172
+
173
+ The 'fetch.followRemoteHEAD' configuration variable has been added to
174
+ provide a default for the per-remote 'remote.<name>.followRemoteHEAD'
175
+ setting.
176
+
177
+ Graduated to 'master'.
178
+ cf. <xmqqcxxp1j2t.fsf@gitster.g>
179
+ source: <20260619094751.2996804-1-m@lfurio.us>
180
+
181
+
182
+* mv/log-follow-mergy (2026-06-21) 1 commit
183
+ (merged to 'next' on 2026-06-22 at f7e984a003)
184
+ + log: improve --follow following renames for non-linear history
185
+
186
+ 'git log --follow' has been updated to better handle non-linear
187
+ history, in which the path being tracked gets renamed differently in
188
+ multiple history lines.
189
+
190
+ Graduated to 'master'.
191
+ source: <ajjU4w2B0NlZffw1@collabora.com>
192
+
193
+
194
+* po/hash-object-size-t (2026-06-16) 6 commits
195
+ (merged to 'next' on 2026-06-21 at b780a276b9)
196
+ + hash-object: add a >4GB/LLP64 test case using filtered input
197
+ + hash-object: add another >4GB/LLP64 test case
198
+ + hash-object --stdin: verify that it works with >4GB/LLP64
199
+ + hash algorithms: use size_t for section lengths
200
+ + object-file.c: use size_t for header lengths
201
+ + hash-object: demonstrate a >4GB/LLP64 problem
202
+
203
+ Support for hashing loose or packed objects larger than 4GB on Windows
204
+ and other LLP64 platforms has been improved by converting object header
205
+ buffers and data-handling functions from 'unsigned long' to 'size_t'.
206
+
207
+ Graduated to 'master'.
208
+ cf. <ajOQthRjhD3hRM9w@pks.im>
209
+ source: <pull.2138.v2.git.1781621398.gitgitgadget@gmail.com>
210
+
211
+
212
+* ps/connected-generic-promisor-checks (2026-06-25) 5 commits
213
+ (merged to 'next' on 2026-06-29 at 10eef65b98)
214
+ + connected: search promisor objects generically
215
+ + connected: split out promisor-based connectivity check
216
+ + odb/source-packed: support flags when iterating an object prefix
217
+ + odb/source-packed: extract logic to skip certain packs
218
+ + Merge branch 'ps/odb-source-packed' into ps/connected-generic-promisor-checks
219
+ (this branch uses ps/odb-source-packed.)
220
+
221
+ The connectivity check has been refactored to search for promisor
222
+ objects in a generic way using the object database interface,
223
+ rather than iterating packfiles directly. This allows connectivity
224
+ checks to work properly in repositories that do not use packfiles.
225
+
226
+ Graduated to 'master'.
227
+ cf. <CAP8UFD07AzNtP3rRj4btYfFfakX0kkLXKpO9T=a3Mds3YWEsXw@mail.gmail.com>
228
+ source: <20260625-pks-connected-generic-promisor-checks-v3-0-7308f3b9dc44@pks.im>
229
+
230
+
231
+* ps/doc-recommend-b4 (2026-06-15) 3 commits
232
+ (merged to 'next' on 2026-06-17 at dd9a463369)
233
+ + b4: introduce configuration for the Git project
234
+ + MyFirstContribution: recommend the use of b4
235
+ + MyFirstContribution: recommend shallow threading of cover letters
236
+
237
+ Project-specific configuration for b4 has been introduced, and the
238
+ documentation has been updated to recommend using it as a
239
+ streamlined method for submitting patches.
240
+
241
+ Graduated to 'master'.
242
+ cf. <87eci7yomp.fsf@emacs.iotcl.com>
243
+ source: <20260615-pks-b4-v4-0-22cfca8f19c5@pks.im>
244
+
245
+
246
+* ps/odb-source-packed (2026-06-16) 18 commits
247
+ (merged to 'next' on 2026-06-19 at dcf0c084e4)
248
+ + odb/source-packed: drop pointer to "files" parent source
249
+ + midx: refactor interfaces to work on "packed" source
250
+ + odb/source-packed: stub out remaining functions
251
+ + odb/source-packed: wire up `freshen_object()` callback
252
+ + odb/source-packed: wire up `find_abbrev_len()` callback
253
+ + odb/source-packed: wire up `count_objects()` callback
254
+ + odb/source-packed: wire up `for_each_object()` callback
255
+ + odb/source-packed: wire up `read_object_stream()` callback
256
+ + odb/source-packed: wire up `read_object_info()` callback
257
+ + packfile: use higher-level interface to implement `has_object_pack()`
258
+ + odb/source-packed: wire up `reprepare()` callback
259
+ + odb/source-packed: wire up `close()` callback
260
+ + odb/source-packed: start converting to a proper `struct odb_source`
261
+ + odb/source-packed: store pointer to "files" instead of generic source
262
+ + packfile: move packed source into "odb/" subsystem
263
+ + packfile: split out packfile list logic
264
+ + packfile: rename `struct packfile_store` to `odb_source_packed`
265
+ + Merge branch 'ps/odb-source-loose' into ps/odb-source-packed
266
+ (this branch is used by ps/connected-generic-promisor-checks, ps/libgit-in-subdir, ps/odb-drop-whence and ps/odb-generalize-prepare.)
267
+
268
+ The packed object source has been refactored into a proper 'struct
269
+ odb_source'.
270
+
271
+ Graduated to 'master'.
272
+ cf. <ajK2QKdW-TdflfR0@denethor>
273
+ source: <20260617-pks-odb-source-packed-v3-0-b5c7583cd795@pks.im>
274
+
275
+
276
+* ps/refs-onbranch-fixes (2026-06-25) 12 commits
277
+ (merged to 'next' on 2026-06-29 at 7b4929e311)
278
+ + refs: protect against chicken-and-egg recursion
279
+ + refs/reftable: lazy-load configuration to fix chicken-and-egg
280
+ + reftable: split up write options
281
+ + refs/files: lazy-load configuration to fix chicken-and-egg
282
+ + refs: move parsing of "core.logAllRefUpdates" back into ref stores
283
+ + repository: free main reference database
284
+ + chdir-notify: drop unused `chdir_notify_reparent()`
285
+ + refs: unregister reference stores from "chdir_notify"
286
+ + setup: don't apply "GIT_REFERENCE_BACKEND" without a repository
287
+ + setup: stop applying repository format twice
288
+ + setup: inline `check_and_apply_repository_format()`
289
+ + Merge branch 'ps/setup-centralize-odb-creation' into ps/refs-onbranch-fixes
290
+ (this branch is used by ps/setup-split-discovery-and-setup.)
291
+
292
+ Reference backend configuration has been updated to load lazily to
293
+ avoid recursive calls during repository initialization when 'onbranch'
294
+ configuration conditions are evaluated. This has also fixed a memory
295
+ leak and allowed the unused 'chdir_notify_reparent()' machinery to be
296
+ dropped.
297
+
298
+ Graduated to 'master'.
299
+ cf. <xmqqse6ae45i.fsf@gitster.g>
300
+ source: <20260625-b4-pks-refs-avoid-chdir-notify-reparent-v6-0-41fbca3cf5e3@pks.im>
301
+
302
+
303
+* ps/setup-drop-global-state (2026-06-10) 8 commits
304
+ (merged to 'next' on 2026-06-15 at d9a8b88d47)
305
+ + treewide: drop USE_THE_REPOSITORY_VARIABLE
306
+ + environment: stop using `the_repository` in `is_bare_repository()`
307
+ + environment: split up concerns of `is_bare_repository_cfg`
308
+ + builtin/init: stop modifying `is_bare_repository_cfg`
309
+ + setup: remove global `git_work_tree_cfg` variable
310
+ + builtin/init: simplify logic to configure worktree
311
+ + builtin/init: stop modifying global `git_work_tree_cfg` variable
312
+ + Merge branch 'ps/setup-centralize-odb-creation' into ps/setup-drop-global-state
313
+ (this branch is used by ps/setup-split-discovery-and-setup.)
314
+
315
+ The refactoring of 'setup.c' has been continued to drop remaining
316
+ global state ('git_work_tree_cfg', 'is_bare_repository_cfg'), updating
317
+ 'is_bare_repository()' to no longer implicitly rely on
318
+ 'the_repository'.
319
+
320
+ Graduated to 'master'.
321
+ cf. <airVOrTboNDDGBak@denethor>
322
+ cf. <87ldckyygk.fsf@emacs.iotcl.com>
323
+ source: <20260611-b4-pks-setup-drop-global-state-v2-0-a6f7269c841d@pks.im>
324
+
325
+
326
+* pw/status-rebase-todo (2026-06-23) 2 commits
327
+ (merged to 'next' on 2026-06-23 at a0fcde09dc)
328
+ + status: improve rebase todo list parsing
329
+ + sequencer: factor out parsing of todo commands
330
+
331
+ The display of the rebase todo list in 'git status' has been improved
332
+ to correctly abbreviate object IDs for more commands and avoid
333
+ misinterpreting refs as object IDs.
334
+
335
+ Graduated to 'master'.
336
+ source: <cover.1782230024.git.phillip.wood@dunelm.org.uk>
337
+
338
+
339
+* rs/cat-file-default-format-optim (2026-06-14) 1 commit
340
+ (merged to 'next' on 2026-06-17 at 43ed8b3969)
341
+ + cat-file: speed up default format
342
+
343
+ The default format path of 'git cat-file --batch' has been optimized
344
+ to use 'strbuf_add_oid_hex()' and 'strbuf_add_uint()' instead of
345
+ 'strbuf_addf()', yielding a noticeable speedup.
346
+
347
+ Graduated to 'master'.
348
+ cf. <20260615165326.GA91269@coredump.intra.peff.net>
349
+ source: <5a7ed929-6fe0-496c-83bd-65dee57c2241@web.de>
350
+
351
+
352
+* sg/t3420-do-not-grep-in-missing-file (2021-10-10) 1 commit
353
+ (merged to 'next' on 2026-06-29 at 2bf33c6a40)
354
+ + t3420-rebase-autostash: don't try to grep non-existing files
355
+
356
+ A test checking interactions between 'git rebase --quit' and autostash
357
+ in 't3420-rebase-autostash.sh' has been corrected to use
358
+ 'test_path_is_missing' instead of '! grep' on a file that shouldn't
359
+ exist in the conflicted state.
360
+
361
+ Graduated to 'master'.
362
+ source: <20211010172809.1472914-1-szeder.dev@gmail.com>
363
+
364
+
365
+* tb/pack-path-walk-bitmap-delta-islands (2026-06-21) 5 commits
366
+ (merged to 'next' on 2026-06-22 at 59cf1663e7)
367
+ + pack-objects: support `--delta-islands` with `--path-walk`
368
+ + pack-objects: extract `record_tree_depth()` helper
369
+ + pack-objects: support reachability bitmaps with `--path-walk`
370
+ + t/perf: drop p5311's lookup-table permutation
371
+ + Merge branch 'ds/path-walk-filters' into tb/pack-path-walk-bitmap-delta-islands
372
+
373
+ The 'git pack-objects' command has been updated to support
374
+ reachability bitmaps and delta-islands concurrently with the '--path-
375
+ walk' option, allowing faster packaging by falling back to path-walk
376
+ when bitmaps cannot fully satisfy the request.
377
+
378
+ Graduated to 'master'.
379
+ cf. <xmqqwlvq1qyy.fsf@gitster.g>
380
+ source: <cover.1782082975.git.me@ttaylorr.com>
381
+
382
+
383
+* td/ref-filter-restore-prefix-iteration (2026-06-12) 1 commit
384
+ (merged to 'next' on 2026-06-19 at a19dbb4193)
385
+ + ref-filter: restore prefix-scoped iteration
386
+
387
+ Commands that list branches and tags (like 'git branch' and 'git tag')
388
+ have been optimized to pass the namespace prefix when initializing
389
+ their ref iterator, avoiding a loose-ref scaling regression in
390
+ repositories with many unrelated loose references.
391
+
392
+ Graduated to 'master'.
393
+ cf. <xmqqik7fsv2m.fsf@gitster.g>
394
+ source: <20260612-fix-git-branch-regression-v4-1-f150038c02f4@gmail.com>
395
+
396
+
397
+* ty/move-protect-hfs-ntfs (2026-06-20) 2 commits
398
+ (merged to 'next' on 2026-06-20 at d8ca0d5180)
399
+ + environment: use 'repo->initialized' for repo_protect_hfs() and repo_protect_ntfs()
400
+ (merged to 'next' on 2026-06-15 at c2a30ca954)
401
+ + environment: move 'protect_hfs' and 'protect_ntfs' into 'repo_config_values'
402
+
403
+ The global configuration variables 'protect_hfs' and 'protect_ntfs'
404
+ have been migrated into 'struct repo_config_values' to tie them to
405
+ per-repository configuration state.
406
+
407
+ Graduated to 'master'.
408
+ cf. <CAP8UFD35Tiy1_fqpjq8P-z=ZhzR3MTiThqfCs977652umRoSEQ@mail.gmail.com>
409
+ cf. <xmqqse6uwdnz.fsf@gitster.g>
410
+ source: <20260610124353.149874-2-cat@malon.dev>
411
+ source: <20260620140957.667820-1-cat@malon.dev>
412
+
413
+
414
+* wy/doc-clarify-review-replies (2026-06-21) 2 commits
415
+ (merged to 'next' on 2026-06-29 at 21ae0599dc)
416
+ + doc: advise batching patch rerolls
417
+ + doc: encourage review replies before rerolling
418
+
419
+ Documentation on community contribution guidelines has been updated to
420
+ encourage replying to review comments before rerolling, and to advise
421
+ a default limit of at most one reroll per day to give reviewers across
422
+ different time zones enough time to participate.
423
+
424
+ Graduated to 'master'.
425
+ cf. <ajvDuUiDsmyf5LnX@pks.im>
426
+ source: <cover.1782028813.git.wy@wyuan.org>
427
+
428
--------------------------------------------------
429
[New Topics]
430
431
+* ds/sparse-index-ita-crash (2026-07-06) 1 commit
432
+ - sparse-index: avoid crash on intent-to-add entry outside the cone
433
+
434
+ A crash in the sparse-index collapse code when encountering an
435
+ invalidated cache-tree node (due to an intent-to-add path) has been
436
+ fixed by avoiding collapsing such subtrees.
437
+
438
+ Needs review.
439
+ source: <pull.2167.git.1783345853272.gitgitgadget@gmail.com>
440
+
441
+
442
+* ij/subtree-reject-v2-config (2026-07-06) 2 commits
443
+ - git-subtree: Bail out if we find output from Rust rewrite (test)
444
+ - git-subtree: Bail out if we find output from Rust rewrite
445
+
446
+ The shell script implementation of 'git subtree' has been updated to
447
+ check for the presence of the configuration file of the new Rust
448
+ implementation, preventing users from accidentally running the old
449
+ script on repositories already managed by the new tool.
450
+
451
+ Expecting a reroll.
452
+ cf. <27211.50096.133710.528147@chiark.greenend.org.uk>
453
+ source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
454
+
455
+
456
+* kk/reftable-tombstone-quadratic-fix (2026-07-06) 2 commits
457
+ - reftable: fix quadratic behavior when re-creating deleted refs
458
+ - t: add tests for ref tombstone scenarios
459
+
460
+ The performance of ref updates and reads using the reftable backend in
461
+ the presence of many deletion tombstone records has been optimized by
462
+ removing the tombstone suppression flag from the merged iterator and
463
+ instead skipping tombstones at higher-level call sites where iteration
464
+ bounds are known.
465
+
466
+ Needs review.
467
+ source: <pull.2166.git.1783344957.gitgitgadget@gmail.com>
468
+
469
+
470
+* rs/blame-abbrev-marks (2026-07-06) 1 commit
471
+ - blame: reserve mark column only if necessary
472
+
473
+ The alignment of commit object name abbreviations in 'git blame'
474
+ output has been optimized to reserve a column for marks (caret,
475
+ question mark, or asterisk) only when such marks are actually shown.
476
+
477
+ Will merge to 'next'?
478
+ cf. <xmqqzf0397u1.fsf@gitster.g>
479
+ source: <92991b5e-0667-4315-89d5-1514a5499297@web.de>
480
+
481
+
482
+* jm/t0213-skip-emulated-ancestry-tests (2026-07-06) 1 commit
483
+ - t0213: skip ancestry tests under user-mode emulation
484
+
485
+ The 'TRACE2_ANCESTRY' prerequisite in the 't0213' test script has been
486
+ refined to avoid failures under user-mode emulation. It now verifies
487
+ that the ancestry collector reports the expected process names rather
488
+ than the emulator binary name.
489
+
490
+ Needs review.
491
+ source: <pull.2168.git.1783359242130.gitgitgadget@gmail.com>
492
+
493
+--------------------------------------------------
494
+[Stalled]
495
+
496
+* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
497
+ - http: preserve wwwauth_headers across redirects
498
+
499
+ When 'cURL' follows a redirect, the 'WWW-Authenticate' headers from
500
+ the redirect target were lost because 'credential_from_url()' cleared
501
+ the credential state. This has been fixed by preserving the collected
502
+ headers across the redirect update.
503
+
504
+ Waiting for response(s) to review comment(s) for too long, stalled.
505
+ cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com>
506
+ source: <20260602161150.1527493-1-aplattner@nvidia.com>
507
+
508
+
509
+* jt/config-lock-timeout (2026-05-17) 1 commit
510
+ - config: retry acquiring config.lock, configurable via core.configLockTimeout
511
+
512
+ Configuration file locking has been updated to retry for a short
513
+ period, avoiding failures when multiple processes attempt to update
514
+ the configuration simultaneously.
515
+
516
+ Waiting for response(s) to review comment(s) for too long, stalled.
517
+ cf. <agrIrGwSMFlKTx9x@pks.im>
518
+ source: <20260517132111.1014901-1-joerg@thalheim.io>
519
+
520
+--------------------------------------------------
521
+[Cooking]
522
+
523
* bc/parse-options-exit-0-on-help (2026-07-01) 4 commits
524
- parse-options: exit 0 on -h
525
- rev-parse: have --parseopt callers exit 0 on --help
@@ -66,8 +528,8 @@ Release tarballs are available at:
528
529
Option parsing with 'git rev-parse --parseopt' and most git
530
subcommands has been updated to exit with 0 (instead of 129) when the
69
- help option (-h or --help) is requested directly by the user, aligning
70
- with standard Unix convention.
531
+ help option ('-h' or '--help') is requested directly by the user,
532
+ aligning with standard Unix convention.
533
534
Expecting a reroll.
535
cf. <akZ6H84Tzzgu8L5W@fruit.crustytoothpaste.net>
@@ -89,8 +551,8 @@ Release tarballs are available at:
551
* zy/apply-abandoned-header-fix (2026-07-01) 1 commit
552
- apply: avoid leaking abandoned git-header state
553
92
- A candidate git diff header parsed by "git apply" is now isolated in a
93
- temporary structure, preventing any partially parsed state from
554
+ A candidate git diff header parsed by 'git apply' has been isolated in
555
+ a temporary structure, preventing any partially parsed state from
556
polluting the main patch structure and causing assertions to trip if
557
the header is ultimately rejected.
558
@@ -110,10 +572,10 @@ Release tarballs are available at:
572
- csum-file: drop discard_hashfile()
573
574
Various code paths that initialize a cryptographic hash context but
113
- bail out or finish without calling git_hash_final() have been
114
- taught to call git_hash_discard() to release allocated resources,
115
- fixing memory leaks when Git is built with non-default backends
116
- like OpenSSL or libgcrypt.
575
+ bail out or finish without calling 'git_hash_final()' have been taught
576
+ to call 'git_hash_discard()' to release allocated resources, fixing
577
+ memory leaks when Git is built with non-default backends like
578
+ 'OpenSSL' or 'libgcrypt'.
579
580
Will merge to 'next'?
581
cf. <aktIIKuReMxJmDsi@pks.im>
@@ -127,20 +589,21 @@ Release tarballs are available at:
589
modernized to use 'test_path_is_file' and 'test_path_is_missing'
590
instead of raw 'test -f' and '! test -f' calls.
591
130
- Waiting for response(s) to review comment(s).
592
+ Expecting a reroll.
593
cf. <akdwp_a2EuhVoGVW@pks.im>
594
+ cf. <CAO=vGZpMe3dxyzFVwR7BWBxaAZ-z9Kw3CqQ0kAe5ZZGSQszkzw@mail.gmail.com>
595
source: <20260702140704.65805-1-marcelomlage@usp.br>
596
597
135
-* ps/t-fixes-for-git-test-long (2026-07-03) 9 commits
598
+* ps/t-fixes-for-git-test-long (2026-07-05) 9 commits
599
- gitlab-ci: enable "GIT_TEST_LONG"
600
- gitlab-ci: disable RAM disk on macOS jobs
601
- t: use `test_bool_env` to parse GIT_TEST_LONG
602
- t7900: clean up large EXPENSIVE repository
140
- - t7508: skip EXPENSIVE test that is broken without SIZE_T_IS_32BIT
603
+ - t7508: skip EXPENSIVE test that is broken without SIZE_T_IS_64BIT
604
- t5608: reduce maximum disk usage
605
- t4141: fix inefficient use of dd(1)
143
- - t0021: skip EXPENSIVE test that is broken without SIZE_T_IS_32BIT
606
+ - t0021: skip EXPENSIVE test that is broken without SIZE_T_IS_64BIT
607
- README: add GitLab CI badge to make it more discoverable
608
609
Various test scripts have been updated to clean up large temporary
@@ -149,9 +612,9 @@ Release tarballs are available at:
612
sufficient resources (like 32-bit platforms and Windows CI
613
runners), and the long test suite has been enabled in GitLab CI.
614
152
- Waiting for response(s) to review comment(s).
153
- cf. <xmqqse60ht57.fsf@gitster.g>
154
- source: <20260703-b4-pks-t-fixes-for-GIT-TEST-LONG-v2-0-79076a7e0c62@pks.im>
615
+ Will merge to 'next'?
616
+ cf. <20260707043026.GB677056@coredump.intra.peff.net>
617
+ source: <20260706-b4-pks-t-fixes-for-GIT-TEST-LONG-v3-0-4f6c5a37fd1f@pks.im>
618
619
620
* ih/precompose-flex-array (2026-07-04) 1 commit
@@ -162,66 +625,38 @@ Release tarballs are available at:
625
preventing fortified libc checks from failing when name is
626
reallocated to be larger than NAME_MAX bytes.
627
165
- Will merge to 'next'?
628
+ Will merge to 'next'.
629
cf. <20260703050800.GA29216@tb-raspi4>
630
source: <20260704233724.16928-1-ihar.hrachyshka@gmail.com>
631
632
170
-* sn/osxkeychain-rust-universal (2026-07-04) 2 commits
633
+* sn/osxkeychain-rust-universal (2026-07-06) 3 commits
634
+ - contrib: wire up osxkeychain in contrib/Makefile on macOS
635
- Makefile: support universal macOS builds via RUST_TARGETS
636
- Makefile: add $(RUST_LIB) prerequisite to osxkeychain
637
174
- The build system has been updated to support building universal
175
- macOS binaries when Rust is enabled, by compiling separate static
176
- archives for each target triple listed in RUST_TARGETS and
177
- combining them using the macOS lipo tool. Additionally, the
178
- git-credential-osxkeychain helper has been updated to link against
179
- $(RUST_LIB) when Rust is enabled.
180
-
181
- Waiting for response(s) to review comment(s).
182
- cf. <akuIQADP_aRb5pY6@pks.im>
183
- source: <pull.2288.v4.git.git.1783188355.gitgitgadget@gmail.com>
184
-
185
---------------------------------------------------
186
-[Stalled]
187
-
188
-* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
189
- - http: preserve wwwauth_headers across redirects
190
-
191
- When cURL follows a redirect, the WWW-Authenticate headers from the
192
- redirect target were lost because credential_from_url() cleared the
193
- credential state. This has been fixed by preserving the collected
194
- headers across the redirect update.
195
-
196
- Expecting a reroll for too long, stalled.
197
- cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com>
198
- source: <20260602161150.1527493-1-aplattner@nvidia.com>
199
-
200
-
201
-* jt/config-lock-timeout (2026-05-17) 1 commit
202
- - config: retry acquiring config.lock, configurable via core.configLockTimeout
203
-
204
- Configuration file locking now retries for a short period, avoiding
205
- failures when multiple processes attempt to update the configuration
206
- simultaneously.
638
+ The build system has been updated to support building universal macOS
639
+ binaries when 'Rust' is enabled, by compiling separate static archives
640
+ for each target triple listed in 'RUST_TARGETS' and combining them
641
+ using the macOS 'lipo' tool. Additionally, the 'git-credential-
642
+ osxkeychain' helper has been updated to link against '$(RUST_LIB)'
643
+ when 'Rust' is enabled.
644
208
- Waiting for response(s) to review comment(s) for too long, stalled.
209
- cf. <agrIrGwSMFlKTx9x@pks.im>
210
- source: <20260517132111.1014901-1-joerg@thalheim.io>
645
+ Needs review.
646
+ source: <pull.2288.v6.git.git.1783378333.gitgitgadget@gmail.com>
647
212
---------------------------------------------------
213
-[Cooking]
648
649
* cl/conditional-config-on-worktree-path (2026-07-02) 2 commits
650
- config: add "worktree" and "worktree/i" includeIf conditions
651
- config: refactor include_by_gitdir() into include_by_path()
652
219
- The [includeIf "condition"] conditional inclusion facility for
220
- configuration files has learned to use the location of the worktree in
221
- its condition.
653
+ The '[includeIf "condition"]' conditional inclusion facility for
654
+ configuration files has been taught to use the location of the
655
+ worktree in its condition.
656
657
Waiting for response(s) to review comment(s).
658
cf. <akeW4yFC8uuu2o8a@pks.im>
659
+ cf. <CAC1kPDNBecLbmZwjfR5-CsNheF3rcbZ5=SQ+cwjzpFMjFr9KGQ@mail.gmail.com>
660
source: <20260703-includeif-worktree-v6-0-a13893ad9a7f@black-desk.cn>
661
662
@@ -229,10 +664,10 @@ Release tarballs are available at:
664
- commit-reach: guard !FIND_ALL early exit with generation ordering check
665
- t6600: add test for merge-base early exit with clock skew
666
232
- The early-exit optimization in paint_down_to_common() has been gated
233
- on the queue being generation-ordered. This fixes a bug where git
234
- merge-base (without --all) could return incorrect results on
235
- repositories with v1 commit graphs and clock skew.
667
+ The early-exit optimization in 'paint_down_to_common()' has been gated
668
+ on the queue being generation-ordered, fixing a bug where 'git merge-
669
+ base' (without '--all') could return incorrect results on repositories
670
+ with v1 commit graphs and clock skew.
671
672
Comments?
673
cf. <xmqqa4sdw55v.fsf@gitster.g>
@@ -242,9 +677,10 @@ Release tarballs are available at:
677
* bl/t7412-use-test-path-helpers (2026-06-29) 1 commit
678
- submodule absorbgitdirs tests: use test_* helper functions
679
245
- t7412 that tests "git submodule absorbgitdirs" has been modernized to
246
- use test_path_is_file, test_path_is_dir, and test_path_is_missing
247
- helper functions instead of raw "test -[fde]" commands.
680
+ 't7412' that tests 'git submodule absorbgitdirs' has been modernized
681
+ to use 'test_path_is_file', 'test_path_is_dir', and
682
+ 'test_path_is_missing' helper functions instead of raw 'test -[fde]'
683
+ commands.
684
685
Waiting for response(s) to review comment(s).
686
cf. <akTKHfKPsP3-Rn31@pks.im>
@@ -252,7 +688,7 @@ Release tarballs are available at:
688
689
690
* jk/format-patch-leakfix (2026-06-29) 2 commits
255
- (merged to 'next' on 2026-07-05 at 072cbaa461)
691
+ (merged to 'next' on 2026-07-06 at 35aff0d609)
692
+ format-patch: fix leak of rev_info in prepare_bases()
693
+ t: move LSan errors from stdout to stderr
694
@@ -282,16 +718,16 @@ Release tarballs are available at:
718
- Merge branch 'jk/repo-info-path-keys' into ps/setup-split-discovery-and-setup
719
- Merge branch 'ps/setup-drop-global-state' into ps/setup-split-discovery-and-setup
720
- Merge branch 'ps/refs-onbranch-fixes' into ps/setup-split-discovery-and-setup
285
- (this branch uses jk/repo-info-path-keys, ps/refs-onbranch-fixes and ps/setup-drop-global-state.)
721
722
The repository discovery and repository configuration phases, which
723
were previously intertwined in 'setup.c', have been split. Repository
289
- discovery now populates a 'struct repo_discovery' without modifying
290
- the repository state, and repository configuration takes this
291
- structure to initialize the repository, paving the way for clean
292
- unification of repository configuration.
724
+ discovery has been updated to populate a 'struct repo_discovery'
725
+ without modifying the repository state, which is then taken by
726
+ repository configuration to initialize the repository, paving the way
727
+ for clean unification of repository configuration.
728
729
Needs review.
730
+ (a newer iteration v2 exists as <20260707-pks-setup-split-discovery-and-setup-v2-0-aab372cd227c@pks.im>)
731
source: <20260630-pks-setup-split-discovery-and-setup-v1-0-13864eb5a032@pks.im>
732
733
@@ -314,7 +750,7 @@ Release tarballs are available at:
750
751
The rebase post-rewrite notes-copying logic has been corrected. When a
752
commit is dropped during rebase (e.g., because its changes are already
317
- upstream), we no longer record it as rewritten, preventing its notes
753
+ upstream), it is no longer recorded as rewritten, preventing its notes
754
from being copied to an unrelated commit.
755
756
Expecting a reroll.
@@ -327,9 +763,9 @@ Release tarballs are available at:
763
- revision: avoid leaking bloom keyvecs with multiple traversals
764
- bloom: make bloom-filter slab initialization idempotent
765
330
- Plug various memory leaks in the Bloom-filter code paths that are
331
- exposed when running tests with the
332
- `GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1` environment variable.
766
+ Various memory leaks in the Bloom-filter code paths that are exposed
767
+ when running tests with the 'GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1'
768
+ environment variable have been plugged.
769
770
Will merge to 'next'.
771
cf. <b641aed4-ad52-477b-b1d8-9d8e470be46f@gmail.com>
@@ -344,7 +780,7 @@ Release tarballs are available at:
780
adjusted to use explicit process and file limits, preventing resource
781
exhaustion errors on private runners.
782
347
- Will merge to 'next'?
783
+ Will merge to 'next'.
784
cf. <xmqqh5medmzh.fsf@gitster.g>
785
source: <pull.2164.v2.git.1783155124926.gitgitgadget@gmail.com>
786
@@ -363,9 +799,8 @@ Release tarballs are available at:
799
- loose: avoid closing invalid fd on error path
800
- load_one_loose_object_map(): fix resource leak
801
366
- A collection of fixes for various resource leaks, invalid file
367
- descriptor closures, and process handle ownership issues flagged by
368
- Coverity.
802
+ Various resource leaks, invalid file descriptor closures, and process
803
+ handle ownership issues flagged by Coverity have been fixed.
804
805
Needs review.
806
source: <pull.2163.v2.git.1783239870.gitgitgadget@gmail.com>
@@ -384,10 +819,10 @@ Release tarballs are available at:
819
- repack: extract `locate_existing_pack()` helper
820
- repack: unconditionally exclude non-kept packs
821
387
- Teach `git repack` to accept `--geometric` and `--cruft` together.
388
- When both are given, the geometric repack rolls up non-cruft packs as
389
- usual, while a separate cruft pack is written to collect unreachable
390
- objects.
822
+ 'git repack' has been taught to accept '--geometric' and '--cruft'
823
+ together. When both are given, the geometric repack rolls up non-cruft
824
+ packs as usual, while a separate cruft pack is written to collect
825
+ unreachable objects.
826
827
Expecting a reroll.
828
cf. <aj8cOhH6hGVZIFft@nand.local>
@@ -395,33 +830,20 @@ Release tarballs are available at:
830
831
832
* jk/reftable-leakfix (2026-06-28) 1 commit
398
- (merged to 'next' on 2026-07-05 at e224acf508)
833
+ (merged to 'next' on 2026-07-06 at 55ce81f2d5)
834
+ reftable: fix unlikely leak on API error
835
401
- A memory leak in the reftable_writer_new() initialization function has
402
- been fixed by delaying the allocation of struct reftable_writer until
403
- after input options are validated.
836
+ A memory leak in the 'reftable_writer_new()' initialization function
837
+ has been fixed by delaying the allocation of 'struct reftable_writer'
838
+ until after input options are validated.
839
840
Will merge to 'master'.
841
cf. <akIPBJLtPqDjQt-A@pks.im>
842
source: <20260628090314.GA661068@coredump.intra.peff.net>
843
844
410
-* sg/t3420-do-not-grep-in-missing-file (2021-10-10) 1 commit
411
- (merged to 'next' on 2026-06-29 at 2bf33c6a40)
412
- + t3420-rebase-autostash: don't try to grep non-existing files
413
-
414
- A test checking interactions between git rebase --quit and
415
- autostash in t3420-rebase-autostash.sh has been corrected to use
416
- test_path_is_missing instead of ! grep on a file that shouldn't
417
- exist in the conflicted state.
418
-
419
- Will merge to 'master'.
420
- source: <20211010172809.1472914-1-szeder.dev@gmail.com>
421
-
422
-
845
* ad/gpg-strip-cr-before-lf (2026-06-24) 1 commit
424
- (merged to 'next' on 2026-07-05 at 25ae7a9822)
846
+ (merged to 'next' on 2026-07-06 at b099249efd)
847
+ gpg-interface: fix strip_cr_before_lf to only remove CR before LF
848
849
The GPG and SSH signature parsing code has been corrected to strip
@@ -440,9 +862,9 @@ Release tarballs are available at:
862
- object-file: propagate files transaction errors
863
- object-file: rename files transaction prepare function
864
443
- git-receive-pack has been refactored to use ODB transaction interfaces
444
- instead of directly managing tmp_objdir for staging incoming objects,
445
- bringing it closer to being ODB backend agnostic.
865
+ 'git receive-pack' has been refactored to use ODB transaction
866
+ interfaces instead of directly managing 'tmp_objdir' for staging
867
+ incoming objects, bringing it closer to being ODB backend agnostic.
868
869
Expecting a reroll.
870
cf. <aju_AmlKVi5UZaiQ@pks.im>
@@ -459,11 +881,10 @@ Release tarballs are available at:
881
- odb: make backend-specific fields optional
882
- packfile: thread odb_source_packed through packed_object_info()
883
- Merge branch 'ps/odb-source-packed' into ps/odb-drop-whence
462
- (this branch uses ps/odb-source-packed.)
884
464
- The whence field in struct object_info has been removed,
465
- refactoring backend-specific object information retrieval into an
466
- opt-in struct object_info_source structure.
885
+ The 'whence' field in 'struct object_info' has been removed,
886
+ refactoring backend-specific object information retrieval into an opt-
887
+ in 'struct object_info_source' structure.
888
889
Will merge to 'next'.
890
cf. <xmqqv7b0rmt6.fsf@gitster.g>
@@ -493,12 +914,13 @@ Release tarballs are available at:
914
915
916
* hn/branch-push-slip-advice (2026-06-27) 2 commits
496
- (merged to 'next' on 2026-07-05 at 9620e1e4b2)
917
+ (merged to 'next' on 2026-07-06 at acdff65ac5)
918
+ push: suggest <remote> <branch> for a slash slip
919
+ branch: suggest <remote>/<branch> on upstream slip
920
921
When 'git push origin/main' or 'git branch origin main' is run, the
501
- tool recognizes it as a potential typo and offers a typofix.
922
+ command is now recognized as a potential typo, and advice has been
923
+ added to offer a typofix.
924
925
Will merge to 'master'.
926
cf. <xmqqfr272lq7.fsf@gitster.g>
@@ -506,10 +928,11 @@ Release tarballs are available at:
928
929
930
* jc/history-message-prep-fix (2026-06-29) 1 commit
509
- (merged to 'next' on 2026-07-05 at c42f45431d)
931
+ (merged to 'next' on 2026-07-06 at 00534a21ce)
932
+ history: streamline message preparation and plug file stream leak
933
512
- Code clean-up with leakfix for a write file stream.
934
+ A write file stream resource leak has been fixed as part of a code
935
+ cleanup.
936
937
Will merge to 'master'.
938
cf. <akO1mhi2u2PntLbt@pks.im>
@@ -519,9 +942,13 @@ Release tarballs are available at:
942
* ty/migrate-excludes-file (2026-07-01) 1 commit
943
- environment: move excludes_file into repo_config_values
944
522
- Move excludes_file global variable into per-repository structure.
945
+ The 'excludes_file' and various other global configuration variables
946
+ (including 'editor_program', 'pager_program', 'askpass_program', and
947
+ 'push_default') have been migrated into the per-repository structure.
948
524
- Needs review.
949
+ Waiting for response(s) to review comment(s).
950
+ (a newer iteration v7 exists as <20260706142530.3681520-1-cat@malon.dev>)
951
+ cf. <xmqqpl10auhw.fsf@gitster.g>
952
source: <20260701180813.776173-2-cat@malon.dev>
953
954
@@ -549,7 +976,7 @@ Release tarballs are available at:
976
* dk/meson-enable-use-nsec-build (2026-06-20) 1 commit
977
- meson: wire up USE_NSEC build knob
978
552
- The USE_NSEC build knob, which enables support for sub-second file
979
+ The 'USE_NSEC' build knob, which enables support for sub-second file
980
timestamp resolution, has been wired up to the Meson build system.
981
982
Expecting a reroll.
@@ -559,32 +986,12 @@ Release tarballs are available at:
986
source: <c4c5ade901ff95b0f95939ea818870e4f3d59da1.1781971201.git.ben.knoble+github@gmail.com>
987
988
562
-* ps/connected-generic-promisor-checks (2026-06-25) 5 commits
563
- (merged to 'next' on 2026-06-29 at 10eef65b98)
564
- + connected: search promisor objects generically
565
- + connected: split out promisor-based connectivity check
566
- + odb/source-packed: support flags when iterating an object prefix
567
- + odb/source-packed: extract logic to skip certain packs
568
- + Merge branch 'ps/odb-source-packed' into ps/connected-generic-promisor-checks
569
- (this branch uses ps/odb-source-packed.)
570
-
571
- The connectivity check has been refactored to search for promisor
572
- objects in a generic way using the object database interface,
573
- rather than iterating packfiles directly. This allows connectivity
574
- checks to work properly in repositories that do not use packfiles.
575
-
576
- Will merge to 'master'.
577
- cf. <CAP8UFD07AzNtP3rRj4btYfFfakX0kkLXKpO9T=a3Mds3YWEsXw@mail.gmail.com>
578
- source: <20260625-pks-connected-generic-promisor-checks-v3-0-7308f3b9dc44@pks.im>
579
-
580
-
989
* ps/libgit-in-subdir (2026-06-30) 3 commits
990
- Move libgit.a sources into separate "lib/" directory
991
- t/helper: prepare "test-example-tap.c" for introduction of "lib/"
992
- Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir
585
- (this branch uses ps/odb-source-packed.)
993
587
- The source files for libgit.a have been moved into a new "lib/"
994
+ The source files for 'libgit.a' have been moved into a new 'lib/'
995
directory to clean up the top-level directory and clearly separate
996
library code.
997
@@ -594,58 +1001,28 @@ Release tarballs are available at:
1001
1002
1003
* ps/odb-generalize-prepare (2026-06-22) 3 commits
597
- (merged to 'next' on 2026-07-05 at e33360c151)
1004
+ (merged to 'next' on 2026-07-06 at 6132517517)
1005
+ odb: introduce `odb_prepare()`
1006
+ odb/source: generalize `reprepare()` callback
1007
+ Merge branch 'ps/odb-source-packed' into ps/odb-generalize-prepare
601
- (this branch uses ps/odb-source-packed.)
1008
603
- The `reprepare()` callback for object database sources has been
604
- generalized into a `prepare()` callback with an optional flush cache
605
- flag, and a new `odb_prepare()` wrapper has been introduced to
606
- allow pre-opening object database sources.
1009
+ The 'reprepare()' callback for object database sources has been
1010
+ generalized into a 'prepare()' callback with an optional flush cache
1011
+ flag, and a new 'odb_prepare()' wrapper has been introduced to allow
1012
+ pre-opening object database sources.
1013
1014
Will merge to 'master'.
1015
cf. <87ik704f1j.fsf@emacs.iotcl.com>
1016
source: <20260622-b4-pks-odb-generalize-prepare-v1-0-d2a5c5d13144@pks.im>
1017
1018
613
-* jc/submittingpatches-design-critiques (2026-06-20) 1 commit
614
- (merged to 'next' on 2026-06-22 at 7495b5f9d6)
615
- + SubmittingPatches: address design critiques
616
-
617
- The documentation in SubmittingPatches has been updated to clarify how
618
- patch contributors should respond to design and viability critiques,
619
- and how the resolution of such critiques should be recorded in the
620
- final commit messages.
621
-
622
- Will merge to 'master'.
623
- cf. <ajjwYGWZ6hQWr600@pks.im>
624
- source: <xmqqeci0g4mz.fsf@gitster.g>
625
-
626
-
627
-* wy/doc-clarify-review-replies (2026-06-21) 2 commits
628
- (merged to 'next' on 2026-06-29 at 21ae0599dc)
629
- + doc: advise batching patch rerolls
630
- + doc: encourage review replies before rerolling
631
-
632
- Documentation on community contribution guidelines has been updated to
633
- encourage replying to review comments before rerolling, and to advise
634
- a default limit of at most one reroll per day to give reviewers across
635
- different time zones enough time to participate.
636
-
637
- Will merge to 'master'.
638
- cf. <ajvDuUiDsmyf5LnX@pks.im>
639
- source: <cover.1782028813.git.wy@wyuan.org>
640
-
641
-
1019
* ty/migrate-ignorecase (2026-06-19) 2 commits
1020
- config: use repo_ignore_case() to access core.ignorecase
1021
- environment: move ignore_case into repo_config_values
1022
646
- The global configuration variable ignore_case (representing the
647
- core.ignorecase configuration) has been migrated into struct
648
- repo_config_values to tie it to a specific repository instance.
1023
+ The global configuration variable 'ignore_case' (representing the
1024
+ 'core.ignorecase' configuration) has been migrated into 'struct
1025
+ repo_config_values' to tie it to a specific repository instance.
1026
1027
Waiting for comments from Johannes.
1028
cf. <xmqqzf0mzc7j.fsf@gitster.g>
@@ -661,110 +1038,43 @@ Release tarballs are available at:
1038
- diff: simplify the line-range filter by classifying removals immediately
1039
- diff: rename and group the line-range filter for clarity
1040
664
- "git log -L<range>:<path>" learned to limit various "diff" operations
665
- like --stat, --check, -G, to the specified range:path.
666
-
667
- Needs review.
668
- source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
669
-
670
-
671
-* hn/history-squash (2026-06-28) 4 commits
672
- - history: re-edit a squash with every message
673
- - history: add squash subcommand to fold a range
674
- - history: give commit_tree_ext a message template
675
- - history: extract helper for a commit's parent tree
676
-
677
- The experimental "git history" command has been taught a new
678
- "squash" subcommand to fold a range of commits into a single commit,
679
- replaying any descendants on top.
680
-
681
- Waiting for response(s) to review comment(s).
682
- cf. <xmqqse65zyhw.fsf@gitster.g>
683
- cf. <akIQLM6xZTHBudWT@pks.im>
684
- cf. <3b3af3ef-a043-4af9-964e-429237789c97@gmail.com>
685
- source: <pull.2337.v6.git.git.1782635349.gitgitgadget@gmail.com>
686
-
687
-
688
-* mh/fetch-follow-remote-head-config (2026-06-19) 8 commits
689
- (merged to 'next' on 2026-06-22 at 423079e1c8)
690
- + fetch: fixup a misaligned comment
691
- + fetch: add configuration variable fetch.followRemoteHEAD
692
- + fetch: refactor do_fetch handling of followRemoteHEAD
693
- + fetch: return 0 on known git_fetch_config
694
- + fetch: rename function report_set_head
695
- + t5510: cleanup remote in followRemoteHEAD dangling ref test
696
- + doc: explain fetchRemoteHEADWarn advice
697
- + fetch: fixup set_head advice for warn-if-not-branch
698
-
699
- The `fetch.followRemoteHEAD` configuration variable has been added to
700
- provide a default for the per-remote `remote.<name>.followRemoteHEAD`
701
- setting.
702
-
703
- Will merge to 'master'.
704
- cf. <xmqqcxxp1j2t.fsf@gitster.g>
705
- source: <20260619094751.2996804-1-m@lfurio.us>
706
-
707
-
708
-* ps/refs-writing-subcommands (2026-06-30) 5 commits
709
- - builtin/refs: add "rename" subcommand
710
- - builtin/refs: add "create" subcommand
711
- - builtin/refs: add "update" subcommand
712
- - builtin/refs: add "delete" subcommand
713
- - builtin/refs: drop `the_repository`
714
-
715
- The "git refs" toolbox has been extended with new "create", "delete",
716
- "update", and "rename" subcommands to create, delete, update, and
717
- rename references, respectively.
718
-
719
- Will merge to 'next'.
720
- cf. <xmqqcxx7susi.fsf@gitster.g>
721
- source: <20260630-pks-refs-writing-subcommands-v3-0-deb04de1ecef@pks.im>
722
-
723
-
724
-* po/hash-object-size-t (2026-06-16) 6 commits
725
- (merged to 'next' on 2026-06-21 at b780a276b9)
726
- + hash-object: add a >4GB/LLP64 test case using filtered input
727
- + hash-object: add another >4GB/LLP64 test case
728
- + hash-object --stdin: verify that it works with >4GB/LLP64
729
- + hash algorithms: use size_t for section lengths
730
- + object-file.c: use size_t for header lengths
731
- + hash-object: demonstrate a >4GB/LLP64 problem
732
-
733
- Support for hashing loose or packed objects larger than 4GB on Windows
734
- and other LLP64 platforms has been improved by converting object header
735
- buffers and data-handling functions from 'unsigned long' to 'size_t'.
1041
+ The 'git log -L<range>:<path>' command has been taught to limit
1042
+ various 'diff' operations, such as '--stat', '--check', and '-G', to
1043
+ the specified range:path.
1044
737
- Will merge to 'master'.
738
- cf. <ajOQthRjhD3hRM9w@pks.im>
739
- source: <pull.2138.v2.git.1781621398.gitgitgadget@gmail.com>
1045
+ Needs review.
1046
+ source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
1047
1048
742
-* kh/submittingpatches-trailers (2026-06-18) 5 commits
743
- (merged to 'next' on 2026-06-22 at 2cd4a152c9)
744
- + SubmittingPatches: note that trailer order matters
745
- + SubmittingPatches: be consistent with trailer markup
746
- + SubmittingPatches: document Based-on-patch-by trailer
747
- + SubmittingPatches: discourage common Linux trailers
748
- + SubmittingPatches: encourage trailer use for substantial help
1049
+* hn/history-squash (2026-07-06) 5 commits
1050
+ - history: re-edit a squash with every message
1051
+ - sequencer: extract helpers for the squash message markers
1052
+ - history: add squash subcommand to fold a range
1053
+ - history: give commit_tree_ext a message template
1054
+ - history: extract helper for a commit's parent tree
1055
750
- The trailer sections in SubmittingPatches have been updated to
751
- encourage use of standard trailers.
1056
+ The experimental 'git history' command has been taught a new 'squash'
1057
+ subcommand to fold a range of commits into a single commit, replaying
1058
+ any descendants on top.
1059
753
- Will merge to 'master'.
754
- cf. <xmqq4ij0vo8f.fsf@gitster.g>
755
- source: <V3_CV_SubPatches_trailers.9ec@msgid.xyz>
1060
+ Waiting for response(s) to review comment(s).
1061
+ cf. <38493ca6-8fdd-4b6c-9972-5145f3bf0aa4@gmail.com>
1062
+ source: <pull.2337.v7.git.git.1783327849.gitgitgadget@gmail.com>
1063
1064
758
-* mv/log-follow-mergy (2026-06-21) 1 commit
759
- (merged to 'next' on 2026-06-22 at f7e984a003)
760
- + log: improve --follow following renames for non-linear history
1065
+* ps/refs-writing-subcommands (2026-07-06) 5 commits
1066
+ - builtin/refs: add "rename" subcommand
1067
+ - builtin/refs: add "create" subcommand
1068
+ - builtin/refs: add "update" subcommand
1069
+ - builtin/refs: add "delete" subcommand
1070
+ - builtin/refs: drop `the_repository`
1071
762
- "git log --follow" has been updated to better handle non-linear
763
- history, in which the path being tracked gets renamed differently in
764
- multiple history lines.
1072
+ The 'git refs' toolbox has been extended with new 'create', 'delete',
1073
+ 'update', and 'rename' subcommands to create, delete, update, and
1074
+ rename references, respectively.
1075
766
- Will merge to 'master'.
767
- source: <ajjU4w2B0NlZffw1@collabora.com>
1076
+ Will merge to 'next'.
1077
+ source: <20260706-pks-refs-writing-subcommands-v4-0-d51f6ce7f830@pks.im>
1078
1079
1080
* wy/doc-myfirstcontribution-trim-quotes (2026-06-11) 1 commit
@@ -784,8 +1094,8 @@ Release tarballs are available at:
1094
- midx: pass custom '--base' through incremental writes
1095
- t5334: expose shared `nth_line()` helper
1096
787
- The `git multi-pack-index write --incremental` command has been
788
- corrected to properly honor the `--base` option. Previously, the
1097
+ The 'git multi-pack-index write --incremental' command has been
1098
+ corrected to properly honor the '--base' option. Previously, the
1099
custom base was ignored by the normal write path, and the pack
1100
exclusion logic incorrectly skipped packs from layers above the
1101
selected base, breaking reachability closure for bitmaps.
@@ -794,7 +1104,7 @@ Release tarballs are available at:
1104
source: <cover.1781294771.git.me@ttaylorr.com>
1105
1106
797
-* mm/test-grep-lint (2026-07-02) 6 commits
1107
+* mm/test-grep-lint (2026-07-05) 6 commits
1108
- t: add greplint to detect bare grep assertions
1109
- t: convert grep assertions to test_grep
1110
- t: fix Lexer line count for $() inside double-quoted strings
@@ -802,39 +1112,25 @@ Release tarballs are available at:
1112
- t: fix grep assertions missing file arguments
1113
- t/README: document test_grep helper
1114
805
- The test suite has been updated to use the test_grep helper instead
806
- of bare grep for test assertions, allowing file contents to be
807
- printed on failure for easier debugging. A new greplint linter has
808
- been introduced to detect and prevent new bare grep assertions from
1115
+ The test suite has been updated to use the 'test_grep' helper instead
1116
+ of bare 'grep' for test assertions, allowing file contents to be
1117
+ printed on failure for easier debugging. A new 'greplint' linter has
1118
+ been introduced to detect and prevent new bare 'grep' assertions from
1119
being added to the test suite.
1120
811
- Will merge to 'next'.
812
- cf. <xmqqqzlpt543.fsf@gitster.g>
813
- source: <pull.2135.v3.git.1783054466.gitgitgadget@gmail.com>
814
-
815
-
816
-* rs/cat-file-default-format-optim (2026-06-14) 1 commit
817
- (merged to 'next' on 2026-06-17 at 43ed8b3969)
818
- + cat-file: speed up default format
819
-
820
- The default format path of git cat-file --batch has been optimized
821
- to use strbuf_add_oid_hex() and strbuf_add_uint() instead of
822
- strbuf_addf(), yielding a noticeable speedup.
823
-
824
- Will merge to 'master'.
825
- cf. <20260615165326.GA91269@coredump.intra.peff.net>
826
- source: <5a7ed929-6fe0-496c-83bd-65dee57c2241@web.de>
1121
+ Needs review.
1122
+ source: <pull.2135.v4.git.1783314119.gitgitgadget@gmail.com>
1123
1124
1125
* kk/prio-queue-get-put-fusion (2026-06-08) 2 commits
830
- (merged to 'next' on 2026-07-05 at 935d102244)
1126
+ (merged to 'next' on 2026-07-06 at aa748c4564)
1127
+ prio-queue: fold lazy_queue into prio_queue for automatic get+put fusion
1128
+ prio-queue: rename .nr to .nr_ and add accessor helpers
1129
1130
The lazy priority queue optimization pattern (deferring actual removal
835
- in prio_queue_get() to allow get+put fusion) has been folded directly
836
- into prio_queue itself, speeding up commit traversal workflows and
837
- simplifying callers.
1131
+ in 'prio_queue_get()' to allow get+put fusion) has been folded
1132
+ directly into 'prio_queue' itself, speeding up commit traversal
1133
+ workflows and simplifying callers.
1134
1135
Will merge to 'master'.
1136
cf. <xmqqh5mjrbgq.fsf@gitster.g>
@@ -862,126 +1158,15 @@ Release tarballs are available at:
1158
- replay: resolve the replay base outside pick_regular_commit()
1159
- replay: add helper to put entry into replayed_commits
1160
865
- The git replay command has learned the --linearize option to drop
866
- merge commits and linearize the replayed history, mimicking git rebase
867
- --no-rebase-merges.
1161
+ The 'git replay' command has been taught the '--linearize' option to
1162
+ drop merge commits and linearize the replayed history, mimicking 'git
1163
+ rebase --no-rebase-merges'.
1164
1165
Waiting for response(s) to review comment(s).
1166
cf. <xmqqbjcnhjvk.fsf@gitster.g>
1167
source: <20260702-toon-git-replay-drop-merges-v6-0-78a07cdd0382@iotcl.com>
1168
1169
874
-* ps/setup-drop-global-state (2026-06-10) 8 commits
875
- (merged to 'next' on 2026-06-15 at d9a8b88d47)
876
- + treewide: drop USE_THE_REPOSITORY_VARIABLE
877
- + environment: stop using `the_repository` in `is_bare_repository()`
878
- + environment: split up concerns of `is_bare_repository_cfg`
879
- + builtin/init: stop modifying `is_bare_repository_cfg`
880
- + setup: remove global `git_work_tree_cfg` variable
881
- + builtin/init: simplify logic to configure worktree
882
- + builtin/init: stop modifying global `git_work_tree_cfg` variable
883
- + Merge branch 'ps/setup-centralize-odb-creation' into ps/setup-drop-global-state
884
- (this branch is used by ps/setup-split-discovery-and-setup.)
885
-
886
- Continuation of "setup.c" refactoring to drop remaining global state
887
- (`git_work_tree_cfg`, `is_bare_repository_cfg`). The most notable
888
- outcome is that `is_bare_repository()` has been updated to no longer
889
- implicitly rely on `the_repository`.
890
-
891
- Will merge to 'master'.
892
- cf. <airVOrTboNDDGBak@denethor>
893
- cf. <87ldckyygk.fsf@emacs.iotcl.com>
894
- source: <20260611-b4-pks-setup-drop-global-state-v2-0-a6f7269c841d@pks.im>
895
-
896
-
897
-* ps/refs-onbranch-fixes (2026-06-25) 12 commits
898
- (merged to 'next' on 2026-06-29 at 7b4929e311)
899
- + refs: protect against chicken-and-egg recursion
900
- + refs/reftable: lazy-load configuration to fix chicken-and-egg
901
- + reftable: split up write options
902
- + refs/files: lazy-load configuration to fix chicken-and-egg
903
- + refs: move parsing of "core.logAllRefUpdates" back into ref stores
904
- + repository: free main reference database
905
- + chdir-notify: drop unused `chdir_notify_reparent()`
906
- + refs: unregister reference stores from "chdir_notify"
907
- + setup: don't apply "GIT_REFERENCE_BACKEND" without a repository
908
- + setup: stop applying repository format twice
909
- + setup: inline `check_and_apply_repository_format()`
910
- + Merge branch 'ps/setup-centralize-odb-creation' into ps/refs-onbranch-fixes
911
- (this branch is used by ps/setup-split-discovery-and-setup.)
912
-
913
- Reference backend configuration is now loaded lazily to avoid
914
- recursive calls during repository initialization when "onbranch"
915
- configuration conditions are evaluated. This also fixes a memory
916
- leak and allows dropping the unused `chdir_notify_reparent()`
917
- machinery.
918
-
919
- Will merge to 'master'.
920
- cf. <xmqqse6ae45i.fsf@gitster.g>
921
- source: <20260625-b4-pks-refs-avoid-chdir-notify-reparent-v6-0-41fbca3cf5e3@pks.im>
922
-
923
-
924
-* ps/odb-source-packed (2026-06-16) 18 commits
925
- (merged to 'next' on 2026-06-19 at dcf0c084e4)
926
- + odb/source-packed: drop pointer to "files" parent source
927
- + midx: refactor interfaces to work on "packed" source
928
- + odb/source-packed: stub out remaining functions
929
- + odb/source-packed: wire up `freshen_object()` callback
930
- + odb/source-packed: wire up `find_abbrev_len()` callback
931
- + odb/source-packed: wire up `count_objects()` callback
932
- + odb/source-packed: wire up `for_each_object()` callback
933
- + odb/source-packed: wire up `read_object_stream()` callback
934
- + odb/source-packed: wire up `read_object_info()` callback
935
- + packfile: use higher-level interface to implement `has_object_pack()`
936
- + odb/source-packed: wire up `reprepare()` callback
937
- + odb/source-packed: wire up `close()` callback
938
- + odb/source-packed: start converting to a proper `struct odb_source`
939
- + odb/source-packed: store pointer to "files" instead of generic source
940
- + packfile: move packed source into "odb/" subsystem
941
- + packfile: split out packfile list logic
942
- + packfile: rename `struct packfile_store` to `odb_source_packed`
943
- + Merge branch 'ps/odb-source-loose' into ps/odb-source-packed
944
- (this branch is used by ps/connected-generic-promisor-checks, ps/libgit-in-subdir, ps/odb-drop-whence and ps/odb-generalize-prepare.)
945
-
946
- The packed object source has been refactored into a proper struct
947
- odb_source.
948
-
949
- Will merge to 'master'.
950
- cf. <ajK2QKdW-TdflfR0@denethor>
951
- source: <20260617-pks-odb-source-packed-v3-0-b5c7583cd795@pks.im>
952
-
953
-
954
-* td/ref-filter-restore-prefix-iteration (2026-06-12) 1 commit
955
- (merged to 'next' on 2026-06-19 at a19dbb4193)
956
- + ref-filter: restore prefix-scoped iteration
957
-
958
- Commands that list branches and tags (like git branch and git tag)
959
- have been optimized to pass the namespace prefix when initializing
960
- their ref iterator, avoiding a loose-ref scaling regression in
961
- repositories with many unrelated loose references.
962
-
963
- Will merge to 'master'.
964
- cf. <xmqqik7fsv2m.fsf@gitster.g>
965
- source: <20260612-fix-git-branch-regression-v4-1-f150038c02f4@gmail.com>
966
-
967
-
968
-* ty/move-protect-hfs-ntfs (2026-06-20) 2 commits
969
- (merged to 'next' on 2026-06-20 at d8ca0d5180)
970
- + environment: use 'repo->initialized' for repo_protect_hfs() and repo_protect_ntfs()
971
- (merged to 'next' on 2026-06-15 at c2a30ca954)
972
- + environment: move 'protect_hfs' and 'protect_ntfs' into 'repo_config_values'
973
-
974
- The global configuration variables protect_hfs and protect_ntfs have
975
- been migrated into struct repo_config_values to tie them to
976
- per-repository configuration state.
977
-
978
- Will merge to 'master'.
979
- cf. <CAP8UFD35Tiy1_fqpjq8P-z=ZhzR3MTiThqfCs977652umRoSEQ@mail.gmail.com>
980
- cf. <xmqqse6uwdnz.fsf@gitster.g>
981
- source: <20260610124353.149874-2-cat@malon.dev>
982
- source: <20260620140957.667820-1-cat@malon.dev>
983
-
984
-
1170
* ps/cat-file-remote-object-info (2026-07-01) 13 commits
1171
- cat-file: make remote-object-info allow-list dynamic
1172
- cat-file: validate remote atoms with an allow-list
@@ -997,44 +1182,25 @@ Release tarballs are available at:
1182
- git-compat-util: add `strtoumax_szt()` with error handling
1183
- transport-helper: fix memory leak of helper on disconnect
1184
1000
- The `remote-object-info` command has been added to `git cat-file
1001
- --batch-command`, allowing clients to request object metadata
1185
+ The 'remote-object-info' command has been added to 'git cat-file
1186
+ --batch-command', allowing clients to request object metadata
1187
(currently size) from a remote server via protocol v2 without
1003
- downloading the entire object.
1004
-
1005
- The client dynamically filters format placeholders based on
1006
- server-advertised capabilities and safely returns empty strings for
1007
- inapplicable or unsupported fields.
1188
+ downloading the entire object. Format placeholders are dynamically
1189
+ filtered on the client based on server-advertised capabilities,
1190
+ returning empty strings for inapplicable or unsupported fields.
1191
1009
- Waiting for response(s) to review comment(s).
1010
- cf. <xmqq7bneo9mh.fsf@gitster.g>
1011
- cf. <xmqqse62obwh.fsf@gitster.g>
1192
+ Expecting a reroll.
1193
+ cf. <CAN5EUNTYeDrQMor29eYMhJD0jcdRQq36ZA6BgupV8gG9xs9rFQ@mail.gmail.com>
1194
source: <20260701-ps-eric-work-rebase-v15-0-c88a43b63917@gmail.com>
1195
1196
1015
-* ps/doc-recommend-b4 (2026-06-15) 3 commits
1016
- (merged to 'next' on 2026-06-17 at dd9a463369)
1017
- + b4: introduce configuration for the Git project
1018
- + MyFirstContribution: recommend the use of b4
1019
- + MyFirstContribution: recommend shallow threading of cover letters
1020
-
1021
- Project-specific configuration for b4 has been introduced, and the
1022
- documentation has been updated to recommend using it as a
1023
- streamlined method for submitting patches.
1024
-
1025
- Will merge to 'master'.
1026
- cf. <87eci7yomp.fsf@emacs.iotcl.com>
1027
- source: <20260615-pks-b4-v4-0-22cfca8f19c5@pks.im>
1028
-
1029
-
1197
* sn/rebase-update-refs-symrefs (2026-06-03) 1 commit
1198
- rebase: skip branch symref aliases
1199
1033
- "git rebase --update-refs" has been taught to resolve local branch
1034
- symrefs to their referents before queuing updates. This correctly
1035
- skips aliases of the current branch and avoids duplicate updates for
1036
- underlying real branches, fixing failures when branch aliases (like a
1037
- default branch rename) are present.
1200
+ 'git rebase --update-refs' has been taught to resolve local branch
1201
+ symrefs to their referents before queuing updates, ensuring aliases of
1202
+ the current branch are skipped and duplicate updates are avoided to
1203
+ prevent failures when branch aliases are present.
1204
1205
Waiting for response(s) to review comment(s) for too long, stalled.
1206
cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
@@ -1049,7 +1215,7 @@ Release tarballs are available at:
1215
- userdiff: add diff.<driver>.process config
1216
- xdiff: support external hunks via xpparam_t
1217
1052
- A new `diff.<driver>.process` configuration has been introduced to
1218
+ A new 'diff.<driver>.process' configuration has been introduced to
1219
allow a long-running external process to act as a hunk provider,
1220
allowing external tools to control which lines Git considers changed
1221
while leaving all output formatting (word diff, color, blame, etc.) to
@@ -1060,24 +1226,6 @@ Release tarballs are available at:
1226
source: <pull.2120.v4.git.1781463564.gitgitgadget@gmail.com>
1227
1228
1063
-* tb/pack-path-walk-bitmap-delta-islands (2026-06-21) 5 commits
1064
- (merged to 'next' on 2026-06-22 at 59cf1663e7)
1065
- + pack-objects: support `--delta-islands` with `--path-walk`
1066
- + pack-objects: extract `record_tree_depth()` helper
1067
- + pack-objects: support reachability bitmaps with `--path-walk`
1068
- + t/perf: drop p5311's lookup-table permutation
1069
- + Merge branch 'ds/path-walk-filters' into tb/pack-path-walk-bitmap-delta-islands
1070
-
1071
- The pack-objects command now supports using reachability bitmaps and
1072
- delta-islands concurrently with the `--path-walk` option, allowing
1073
- faster packaging by falling back to path-walk when bitmaps cannot
1074
- fully satisfy the request.
1075
-
1076
- Will merge to 'master'.
1077
- cf. <xmqqwlvq1qyy.fsf@gitster.g>
1078
- source: <cover.1782082975.git.me@ttaylorr.com>
1079
-
1080
-
1229
* ty/migrate-trust-executable-bit (2026-06-19) 3 commits
1230
- environment: move trust_executable_bit into repo_config_values
1231
- read-cache: move 'ce_mode_from_stat()' to 'read-cache.c'
@@ -1095,7 +1243,7 @@ Release tarballs are available at:
1243
* kk/prio-queue-cascade-sift (2026-06-01) 1 commit
1244
- prio-queue: use cascade-down for faster extract-min
1245
1098
- prio_queue_get() has been optimized by using a cascade-down approach
1246
+ 'prio_queue_get()' has been optimized by using a cascade-down approach
1247
(promoting the smaller child at each level and sifting up the last
1248
element from the leaf vacancy), which halves the number of comparisons
1249
per extract-min operation in the common case.
@@ -1105,22 +1253,6 @@ Release tarballs are available at:
1253
source: <pull.2132.v2.git.1780301856444.gitgitgadget@gmail.com>
1254
1255
1108
-* jk/repo-info-path-keys (2026-06-23) 3 commits
1109
- (merged to 'next' on 2026-06-29 at fbf9652169)
1110
- + repo: add path.gitdir with absolute and relative suffix formatting
1111
- + repo: add path.commondir with absolute and relative suffix formatting
1112
- + path: extract format_path() and use in rev-parse
1113
- (this branch is used by ps/setup-split-discovery-and-setup.)
1114
-
1115
- The "git repo info" command has been taught new keys to output both
1116
- absolute and relative paths for "gitdir" and "commondir", supported by
1117
- a new path-formatting helper extracted from "git rev-parse".
1118
-
1119
- Will merge to 'master'.
1120
- cf. <xmqqy0g3iz38.fsf@gitster.g>
1121
- source: <20260624033748.108281-1-jayatheerthkulkarni2005@gmail.com>
1122
-
1123
-
1256
* ps/history-drop (2026-07-01) 11 commits
1257
- builtin/history: implement "drop" subcommand
1258
- builtin/history: split handling of ref updates into two phases
@@ -1134,7 +1266,7 @@ Release tarballs are available at:
1266
- reset: drop `USE_THE_REPOSITORY_VARIABLE`
1267
- read-cache: split out function to drop unmerged entries to stage 0
1268
1137
- The experimental "git history" command has been taught a new "drop"
1269
+ The experimental 'git history' command has been taught a new 'drop'
1270
subcommand to remove a commit and replay its descendants onto its
1271
parent.
1272
@@ -1144,19 +1276,6 @@ Release tarballs are available at:
1276
source: <20260701-b4-pks-history-drop-v8-0-19b5cdf1facd@pks.im>
1277
1278
1147
-* jk/setup-gitfile-diag-fix (2026-06-16) 1 commit
1148
- (merged to 'next' on 2026-06-18 at b63b3d1f25)
1149
- + read_gitfile(): simplify NOT_A_REPO error message
1150
-
1151
- A regression in the error diagnosis code for invalid .git files has
1152
- been fixed, avoiding a potential NULL-pointer crash when reporting
1153
- that a .git file does not point to a valid repository.
1154
-
1155
- Will merge to 'master'.
1156
- cf. <xmqqjyry4hax.fsf@gitster.g>
1157
- source: <20260616123516.GA2301231@coredump.intra.peff.net>
1158
-
1159
-
1279
* kh/doc-trailers (2026-06-10) 10 commits
1280
- doc: interpret-trailers: document comment line treatment
1281
- doc: interpret-trailers: commit to “trailer block” term
@@ -1169,10 +1288,10 @@ Release tarballs are available at:
1288
- doc: interpret-trailers: replace “lines” with “metadata”
1289
- doc: interpret-trailers: stop fixating on RFC 822
1290
1172
- Documentation for git interpret-trailers has been updated to
1173
- explain the format of trailer keys (alphanumeric characters and
1174
- hyphens), replace outdated terminology, define key terms upfront,
1175
- and document how comment lines in the input are treated.
1291
+ Documentation for 'git interpret-trailers' has been updated to explain
1292
+ the format of trailer keys (alphanumeric characters and hyphens),
1293
+ replace outdated terminology, define key terms upfront, and document
1294
+ how comment lines in the input are treated.
1295
1296
Expecting a reroll.
1297
cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
@@ -1183,8 +1302,8 @@ Release tarballs are available at:
1302
- completion: hide dotfiles by default for path completion
1303
- completion: hide dotfiles for selected path completion
1304
1186
- The path completion for commands like `git rm` and `git mv` is being
1187
- updated to hide dotfiles by default, unless the user explicitly starts
1305
+ Path completion for commands like 'git rm' and 'git mv' has been
1306
+ updated to hide dotfiles by default unless the user explicitly starts
1307
the path with a dot, matching standard shell-completion behavior.
1308
1309
Waiting for response(s) to review comment(s).
@@ -1196,8 +1315,9 @@ Release tarballs are available at:
1315
- commit: allow -c/-C for all kinds of --fixup
1316
- commit: allow -m/-F for all kinds of --fixup
1317
1199
- The -m/-F/-c/-C options to supply a commit log message from outside
1200
- the editor are now supported for all "git commit --fixup" variations.
1318
+ Support for '-m', '-F', '-c', or '-C' options to supply a commit log
1319
+ message from outside the editor has been added for all 'git commit
1320
+ --fixup' variations.
1321
1322
Comments?
1323
source: <cover.1779792311.git.erik@cervined.in>
@@ -1209,26 +1329,13 @@ Release tarballs are available at:
1329
- doc: replay: improve config description
1330
- doc: link to config for git-replay(1)
1331
1212
- Doc update for "git replay" to actually refer to its configuration
1213
- variables.
1332
+ Documentation for 'git replay' has been updated to refer to its
1333
+ configuration variables.
1334
1335
Comments?
1336
source: <V3_CV_doc_replay_config.780@msgid.xyz>
1337
1338
1219
-* hn/status-pull-advice-qualified (2026-05-21) 1 commit
1220
- (merged to 'next' on 2026-06-15 at 898a4df940)
1221
- + remote: qualify "git pull" advice for non-upstream compareBranches
1222
-
1223
- Advice shown by "git status" when the local branch is behind or has
1224
- diverged from its push branch has been updated to suggest "git pull
1225
- <remote> <branch>".
1226
-
1227
- Will merge to 'master'.
1228
- cf. <xmqq7bo6xuok.fsf@gitster.g>
1229
- source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com>
1230
-
1231
-
1339
* hn/branch-delete-merged (2026-06-24) 7 commits
1340
- branch: add --dry-run for --delete-merged
1341
- branch: add branch.<name>.deleteMerged opt-out
@@ -1238,112 +1345,36 @@ Release tarballs are available at:
1345
- branch: convert delete_branches() to a flags argument
1346
- branch: add --forked filter for --list mode
1347
1241
- "git branch" command learned "--delete-merged" option to remove
1242
- local branches that have already been merged to the remote-tracking
1243
- branches they track.
1348
+ The 'git branch' command has been taught the '--delete-merged' option
1349
+ to remove local branches that have already been merged to the remote-
1350
+ tracking branches they track.
1351
1352
Needs review.
1353
source: <pull.2285.v18.git.git.1782338106.gitgitgadget@gmail.com>
1354
1355
1249
-* cc/promisor-auto-config-url-more (2026-05-27) 8 commits
1250
- (merged to 'next' on 2026-06-15 at d1c99e75cc)
1251
- + doc: promisor: improve acceptFromServer entry
1252
- + promisor-remote: auto-configure unknown remotes
1253
- + promisor-remote: trust known remotes matching acceptFromServerUrl
1254
- + promisor-remote: introduce promisor.acceptFromServerUrl
1255
- + promisor-remote: add 'local_name' to 'struct promisor_info'
1256
- + urlmatch: add url_normalize_pattern() helper
1257
- + urlmatch: change 'allow_globs' arg to bool
1258
- + t5710: simplify 'mkdir X' followed by 'git -C X init'
1259
-
1260
- The handling of promisor-remote protocol capability has been
1261
- loosened to allow the other side to add to the list of promisor
1262
- remotes via the promisor.acceptFromServerURL configuration
1263
- variable.
1264
-
1265
- Will merge to 'master'.
1266
- cf. <877bo7294j.fsf@emacs.iotcl.com>
1267
- cf. <xmqqh5naxwfc.fsf@gitster.g>
1268
- source: <20260527140820.1438165-1-christian.couder@gmail.com>
1269
-
1270
-
1356
* hn/checkout-track-fetch (2026-06-24) 2 commits
1357
- checkout: extend --track with a "fetch" mode to refresh start-point
1358
- branch: expose helpers for finding the remote owning a tracking ref
1359
1275
- "git checkout --track=..." learned to optionally fetch the branch
1276
- from the remote the new branch will work with.
1360
+ The 'git checkout --track=...' command has been taught to optionally
1361
+ fetch the branch from the remote the new branch will work with.
1362
1363
Comments?
1279
- cf. <12998c3a-ff69-4a98-9ed6-18aa0224e75e@gmail.com>
1280
- cf. <CAL71e4MiijEiM26TKJcOYT7L4pfQeMM_F2oT3U3igP-wOZm2Ag@mail.gmail.com>
1364
+ cf. <xmqq5x37h6fj.fsf@gitster.g>
1365
source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
1366
1367
1284
-* en/ort-harden-against-corrupt-trees (2026-06-13) 5 commits
1285
- (merged to 'next' on 2026-06-18 at e51bee59ca)
1286
- + cache-tree: fix verify_cache() to catch non-adjacent D/F conflicts
1287
- + merge-ort: abort merge when trees have duplicate entries
1288
- + merge-ort: free diff pairs queue in clear_or_reinit_internal_opts()
1289
- + merge-ort: drop unnecessary show_all_errors from collect_merge_info()
1290
- + merge-ort: propagate callback errors from traverse_trees_wrapper()
1291
-
1292
- "ort" merge backend handles merging corrupt trees better by
1293
- aborting when it should.
1294
-
1295
- Will merge to 'master'.
1296
- cf. <xmqq5x3ldu4h.fsf@gitster.g>
1297
- source: <pull.2096.v2.git.1781419047.gitgitgadget@gmail.com>
1298
-
1299
-
1300
-* pw/status-rebase-todo (2026-06-23) 2 commits
1301
- (merged to 'next' on 2026-06-23 at a0fcde09dc)
1302
- + status: improve rebase todo list parsing
1303
- + sequencer: factor out parsing of todo commands
1304
-
1305
- The display of the rebase todo list in "git status" has been
1306
- improved to correctly abbreviate object IDs for more commands and
1307
- avoid misinterpreting refs as object IDs.
1308
-
1309
- Will merge to 'master'.
1310
- source: <cover.1782230024.git.phillip.wood@dunelm.org.uk>
1311
-
1312
-
1368
* ps/shift-root-in-graph (2026-07-04) 3 commits
1369
- graph: indent visual root in graph
1370
- graph: add a 2 commit buffer for lookahead
1371
- lib-log-graph: move check_graph function
1372
1318
- "git log --graph" has been modified to visually distinguish
1319
- parentless "root" commits (and commits that become roots due to
1320
- history simplification) by indenting them, preventing them from
1321
- appearing falsely related to unrelated commits rendered immediately
1322
- above them.
1373
+ 'git log --graph' has been modified to visually distinguish parentless
1374
+ 'root' commits (and commits that become roots due to history
1375
+ simplification) by indenting them, preventing them from appearing
1376
+ falsely related to unrelated commits rendered immediately above them.
1377
1324
- Needs review.
1378
+ Expecting a reroll.
1379
+ cf. <CAN5EUNQoLtJ9cGwe8RNJTTdngM=qoak2=5F+yc7TH94TmQn7uw@mail.gmail.com>
1380
source: <20260704-ps-pre-commit-indent-v7-0-a94706cc8376@gmail.com>
1326
-
1327
---------------------------------------------------
1328
-[Discarded]
1329
-
1330
-* js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits
1331
- . SQUASH???
1332
- . doc: document autocorrect API
1333
- . parseopt: add tests for subcommand autocorrection
1334
- . parseopt: enable subcommand autocorrection for git-remote and git-notes
1335
- . parseopt: autocorrect mistyped subcommands
1336
- . autocorrect: provide config resolution API
1337
- . autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT
1338
- . autocorrect: use mode and delay instead of magic numbers
1339
- . help: move tty check for autocorrection to autocorrect.c
1340
- . help: make autocorrect handling reusable
1341
- . parseopt: extract subcommand handling from parse_options_step()
1342
-
1343
- The parse-options library learned to auto-correct misspelled
1344
- subcommand names.
1345
-
1346
- Discarded after waiting for response(s) to review comment(s) for too long.
1347
- cf. <xmqq33yzd9yf.fsf@gitster.g>
1348
- cf. <SY0P300MB0801E50FCB7EB2F45CD15208CE042@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>
1349
- source: <SY0P300MB0801677A2A1E0FD38D06A841CE2A2@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>