What's cooking (2026/07 #01)

Junio C Hamano committed Jul 1, 2026 at 14:30 UTC 6a990135b8488c3d78c83b9644aff608edb46e96
1 file changed +275 -144
whats-cooking.txt
+275 -144
@@ -1,23 +1,31 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Jun 2026, #11)
2 +Subject: What's cooking in git.git (Jul 2026, #01)
3 X-master-at: e9019fcafe0040228b8631c30f97ae1adb61bcdc
4 X-next-at: 602f6c329a7d99df269d382df353b4e1bbbbd8aa
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Jun 2026, #11)
7 +What's cooking in git.git (Jul 2026, #01)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
11 prefixed with '+' are in 'next' (being in 'next' is a sign that a
12 topic is stable enough to be used and is a candidate to be in a
13 future release). Commits prefixed with '-' are only in 'seen', and
14 -aren't considered "accepted" at all and may be annotated with a URL
14 +aren't considered "accepted" at all. They may be annotated with a URL
15 to a message that raises issues but they are by no means exhaustive.
16 A topic without enough support may be discarded after a long period
17 -of no activity (of course they can be resubmitted when new interests
18 -arise).
19 -
20 -Git 2.55 (final) has been tagged, with a few last-minute fixes.
17 +of no activity (of course, it can be resubmitted when new interest
18 +arises).
19 +
20 +Git 2.55 (final) has been tagged. The next release is tentatively
21 +called Git 2.56. This week is the 0th week of the cycle, which is
22 +time to see if there are any brown paper bag breakages and
23 +regressions we need to fix. Next week, I plan to start merging the
24 +topics that have been cooking in 'next' down to 'master'. It has
25 +been customary to rewind 'next' and rebuild it on top of 'master'
26 +soon after a major release, but IIRC, we didn't do so in Git 2.55;
27 +perhaps we can do without rebuilding it this cycle as well. We'll
28 +see.
29
30 Copies of the source code to Git live in many repositories, and the
31 following is a list of the ones I push into or their mirrors. Some
@@ -50,84 +58,167 @@ Release tarballs are available at:
58 --------------------------------------------------
59 [New Topics]
60
53 -* tb/repack-geometric-cruft (2026-06-28) 11 commits
54 - - SQUASH??? bare grep !???
55 - - repack: support combining '--geometric' with '--cruft'
56 - - pack-objects: support '--refs-snapshot' with 'follow-reachable'
57 - - pack-objects: introduce '--stdin-packs=follow-reachable'
58 - - pack-objects: extract `stdin_packs_add_all_pack_entries()`
59 - - repack-geometry: drop unused redundant-pack removal
60 - - repack: delete geometric packs via existing_packs
61 - - repack: teach MIDX retention about geometric rollups
62 - - repack: mark geometric progression of packs as retained
63 - - repack: extract `locate_existing_pack()` helper
64 - - repack: unconditionally exclude non-kept packs
61 +* kk/commit-reach-find-all-fix (2026-06-29) 2 commits
62 + - commit-reach: guard !FIND_ALL early exit with generation ordering check
63 + - t6600: add test for merge-base early exit with clock skew
64
66 - Teach `git repack` to accept `--geometric` and `--cruft`
67 - together. When both are given, the geometric repack rolls up non-cruft
68 - packs as usual, while a separate cruft pack is written to collect
69 - unreachable objects.
65 + The early-exit optimization in paint_down_to_common() has been gated
66 + on the queue being generation-ordered. This fixes a bug where git
67 + merge-base (without --all) could return incorrect results on
68 + repositories with v1 commit graphs and clock skew.
69
71 - Needs review.
72 - cf. <xmqqpl1d56dd.fsf@gitster.g>
73 - source: <cover.1782500507.git.me@ttaylorr.com>
70 + Comments?
71 + cf. <xmqqa4sdw55v.fsf@gitster.g>
72 + source: <pull.2162.git.1782739162.gitgitgadget@gmail.com>
73
74
76 -* jk/reftable-leakfix (2026-06-28) 1 commit
77 - - reftable: fix unlikely leak on API error
75 +* bl/t7412-use-test-path-helpers (2026-06-29) 1 commit
76 + - submodule absorbgitdirs tests: use test_* helper functions
77
79 - Leakfix.
78 + t7412 that tests "git submodule absorbgitdirs" has been modernized to
79 + use test_path_is_file, test_path_is_dir, and test_path_is_missing
80 + helper functions instead of raw "test -[fde]" commands.
81
81 - Will merge to 'next'?
82 - cf. <akIPBJLtPqDjQt-A@pks.im>
83 - source: <20260628090314.GA661068@coredump.intra.peff.net>
82 + Waiting for response(s) to review comment(s).
83 + cf. <akTKHfKPsP3-Rn31@pks.im>
84 + source: <20260630020220.1559190-1-bblima@usp.br>
85
86
86 -* sg/t3420-do-not-grep-in-missing-file (2021-10-10) 1 commit
87 - (merged to 'next' on 2026-06-29 at 2bf33c6a40)
88 - + t3420-rebase-autostash: don't try to grep non-existing files
87 +* jk/format-patch-leakfix (2026-06-29) 2 commits
88 + - format-patch: fix leak of rev_info in prepare_bases()
89 + - t: move LSan errors from stdout to stderr
90
90 - Test fix.
91 + A memory leak in the '--base' handling of 'git format-patch' has been
92 + plugged, and the leak-reporting of the test suite when running under a
93 + TAP harness has been improved.
94
92 - Will merge to 'master'.
93 - source: <20211010172809.1472914-1-szeder.dev@gmail.com>
95 + Will merge to 'next'?
96 + cf. <akOZy-BygZS8fqPM@pks.im>
97 + source: <20260630063944.GA3733670@coredump.intra.peff.net>
98 +
99 +
100 +* ps/setup-split-discovery-and-setup (2026-06-30) 16 commits
101 + - setup: mark `set_git_work_tree()` as file-local
102 + - setup: pass worktree to `init_db()`
103 + - setup: drop redundant configuration of `startup_info->have_repository`
104 + - setup: make repository discovery self-contained
105 + - setup: propagate prefix via repository discovery
106 + - setup: drop static `cwd` variable
107 + - setup: move prefix into repository
108 + - setup: embed repository format in discovery
109 + - setup: introduce explicit repository discovery
110 + - setup: split up concerns of `setup_git_env_internal()`
111 + - setup: unify setup of shallow file
112 + - setup: mark bogus worktree in `apply_repository_format()`
113 + - setup: rename `check_repository_format_gently()`
114 + - Merge branch 'jk/repo-info-path-keys' into ps/setup-split-discovery-and-setup
115 + - Merge branch 'ps/setup-drop-global-state' into ps/setup-split-discovery-and-setup
116 + - Merge branch 'ps/refs-onbranch-fixes' into ps/setup-split-discovery-and-setup
117 + (this branch uses jk/repo-info-path-keys, ps/refs-onbranch-fixes and ps/setup-drop-global-state.)
118 +
119 + The repository discovery and repository configuration phases, which
120 + were previously intertwined in 'setup.c', have been split. Repository
121 + discovery now populates a 'struct repo_discovery' without modifying
122 + the repository state, and repository configuration takes this
123 + structure to initialize the repository, paving the way for clean
124 + unification of repository configuration.
125
95 ---------------------------------------------------
96 -[Graduated to 'master']
126 + Needs review.
127 + source: <20260630-pks-setup-split-discovery-and-setup-v1-0-13864eb5a032@pks.im>
128 +
129 +
130 +* pw/rebase-drop-notes-with-commit (2026-06-30) 15 commits
131 + - amend! sequencer: simplify pick_one_commit()
132 + - amend! sequencer: remove unnecessary "or" in pick_one_commit()
133 + - fixup! sequencer: never reschedule on failed commit
134 + - fixup! sequencer: be more careful with external merge
135 + - sequencer: do not record dropped commits as rewritten
136 + - sequencer: use an enum to represent result of picking a commit
137 + - sequencer: return early from pick_one_commit() on success
138 + - sequencer: simplify pick_one_commit()
139 + - sequencer: remove unnecessary condition in pick_one_commit()
140 + - sequencer: simplify handing of fixup with conflicts
141 + - sequencer: remove unnecessary "or" in pick_one_commit()
142 + - sequencer: never reschedule on failed commit
143 + - sequencer: be more careful with external merge
144 + - sequencer: move definition of is_final_fixup()
145 + - t3400: restore coverage for note copying with apply backend
146 +
147 + The rebase post-rewrite notes-copying logic has been corrected. When a
148 + commit is dropped during rebase (e.g., because its changes are already
149 + upstream), we no longer record it as rewritten, preventing its notes
150 + from being copied to an unrelated commit.
151
98 -* jk/t5551-expensive-test-timeouts-fix (2026-06-28) 2 commits
99 - - t5551: put many-tags case into its own repo
100 - - t/lib-httpd: bump apache timeout
152 + Expecting a reroll.
153 + cf. <dce74d17-eefd-40bb-82f3-f6b3179cc2b6@gmail.com>
154 + source: <cover.1782833268.git.phillip.wood@dunelm.org.uk>
155
102 - The Apache timeout in HTTP tests has been increased to prevent test
103 - failures on heavily loaded CI runners. The tests creating an
104 - enormous number of refs have been isolated to their own
105 - repositories to avoid slowing down subsequent tests.
106 - cf. <akIPBJLtPqDjQt-A@pks.im>
107 - source: <20260628075716.GA3525066@coredump.intra.peff.net>
156
157 +* jk/bloom-leak-fixes (2026-06-30) 3 commits
158 + - line-log: drop extra copy of range with bloom filters
159 + - revision: avoid leaking bloom keyvecs with multiple traversals
160 + - bloom: make bloom-filter slab initialization idempotent
161
110 -* js/http-https-proxy-fix (2026-06-27) 1 commit
111 - (merged to 'next' on 2026-06-28 at a7fdf2ec97)
112 - + http: accept https:// proxies again
162 + Plug various memory leaks in the Bloom-filter code paths that are
163 + exposed when running tests with the
164 + `GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1` environment variable.
165
114 - We lost ability to use https:// proxies during this cycle; this is
115 - a hotfix for the regression.
116 -
117 - source: <pull.2161.git.1782580676734.gitgitgadget@gmail.com>
166 + Will merge to 'next'?
167 + cf. <xmqqo6gqobrt.fsf@gitster.g>
168 + source: <20260701063538.GA2579765@coredump.intra.peff.net>
169
170
120 -* ps/t4216-tap-fix (2026-06-19) 1 commit
121 - (merged to 'next' on 2026-06-25 at 42296fc12e)
122 - + t4216: fix no-op test that breaks TAP output
171 +* js/ci-dockerized-pid-limit (2026-07-01) 1 commit
172 + - ci(dockerized): reduce the PID limit for private repositories
173
124 - TAP output breakage fix.
125 - cf. <xmqq8q82fk8r.fsf@gitster.g>
126 - source: <20260619-pks-t4216-drop-unused-prereq-v1-1-2ce0d7bea088@pks.im>
174 + Dockerized CI jobs running in private GitHub repositories have been
175 + adjusted to use explicit process and file limits, preventing resource
176 + exhaustion errors on private runners.
177 +
178 + Waiting for response(s) to review comment(s).
179 + cf. <xmqq5x2yps4c.fsf@gitster.g>
180 + source: <pull.2164.git.1782889484346.gitgitgadget@gmail.com>
181 +
182 +
183 +* js/coverity-fixes (2026-07-01) 13 commits
184 + - mingw: make exit_process() own the process handle on all paths
185 + - fsmonitor: plug token-data leak on early daemon-startup failures
186 + - reftable/table: release filter on error path
187 + - imap-send: avoid leaking the IMAP upload buffer
188 + - worktree: fix resource leaks when branch creation fails
189 + - submodule: fix cwd leak in get_superproject_working_tree()
190 + - dir: free allocations on parse-error paths in read_one_dir()
191 + - line-log: avoid redundant copy that leaks in process_ranges
192 + - run_diff_files: avoid memory leak
193 + - run-command: avoid close(-1) in start_command() error paths
194 + - download_https_uri_to_file(): do not leak fd upon failure
195 + - loose: avoid closing invalid fd on error path
196 + - load_one_loose_object_map(): fix resource leak
197 +
198 + A collection of fixes for various resource leaks, invalid file
199 + descriptor closures, and process handle ownership issues flagged by
200 + Coverity.
201 +
202 + Waiting for response(s) to review comment(s).
203 + cf. <akTIMM6qLfDNdg-a@pks.im>
204 + source: <pull.2163.git.1782889472.gitgitgadget@gmail.com>
205
206 --------------------------------------------------
207 [Stalled]
208
209 +* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
210 + - http: preserve wwwauth_headers across redirects
211 +
212 + When cURL follows a redirect, the WWW-Authenticate headers from the
213 + redirect target were lost because credential_from_url() cleared the
214 + credential state. This has been fixed by preserving the collected
215 + headers across the redirect update.
216 +
217 + Expecting a reroll for too long, stalled.
218 + cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com>
219 + source: <20260602161150.1527493-1-aplattner@nvidia.com>
220 +
221 +
222 * jt/config-lock-timeout (2026-05-17) 1 commit
223 - config: retry acquiring config.lock, configurable via core.configLockTimeout
224
@@ -177,6 +268,49 @@ Release tarballs are available at:
268 --------------------------------------------------
269 [Cooking]
270
271 +* tb/repack-geometric-cruft (2026-06-28) 11 commits
272 + - SQUASH??? bare grep !???
273 + - repack: support combining '--geometric' with '--cruft'
274 + - pack-objects: support '--refs-snapshot' with 'follow-reachable'
275 + - pack-objects: introduce '--stdin-packs=follow-reachable'
276 + - pack-objects: extract `stdin_packs_add_all_pack_entries()`
277 + - repack-geometry: drop unused redundant-pack removal
278 + - repack: delete geometric packs via existing_packs
279 + - repack: teach MIDX retention about geometric rollups
280 + - repack: mark geometric progression of packs as retained
281 + - repack: extract `locate_existing_pack()` helper
282 + - repack: unconditionally exclude non-kept packs
283 +
284 + Teach `git repack` to accept `--geometric` and `--cruft`
285 + together. When both are given, the geometric repack rolls up non-cruft
286 + packs as usual, while a separate cruft pack is written to collect
287 + unreachable objects.
288 +
289 + Expecting a reroll.
290 + cf. <akTIMM6qLfDNdg-a@pks.im>
291 + source: <cover.1782500507.git.me@ttaylorr.com>
292 +
293 +
294 +* jk/reftable-leakfix (2026-06-28) 1 commit
295 + - reftable: fix unlikely leak on API error
296 +
297 + Leakfix.
298 +
299 + Will merge to 'next'.
300 + cf. <akIPBJLtPqDjQt-A@pks.im>
301 + source: <20260628090314.GA661068@coredump.intra.peff.net>
302 +
303 +
304 +* sg/t3420-do-not-grep-in-missing-file (2021-10-10) 1 commit
305 + (merged to 'next' on 2026-06-29 at 2bf33c6a40)
306 + + t3420-rebase-autostash: don't try to grep non-existing files
307 +
308 + Test fix.
309 +
310 + Will merge to 'master'.
311 + source: <20211010172809.1472914-1-szeder.dev@gmail.com>
312 +
313 +
314 * ad/gpg-strip-cr-before-lf (2026-06-24) 1 commit
315 - gpg-interface: fix strip_cr_before_lf to only remove CR before LF
316
@@ -184,7 +318,7 @@ Release tarballs are available at:
318 carriage return characters only when they immediately precede line
319 feeds, instead of unconditionally stripping all carriage returns.
320
187 - Needs review.
321 + Will merge to 'next'.
322 source: <20260624093618.17456-1-antonio.destefani08@gmail.com>
323
324
@@ -200,8 +334,10 @@ Release tarballs are available at:
334 interfaces instead of directly managing tmp_objdir for staging
335 incoming objects, bringing it closer to being ODB backend agnostic.
336
203 - Waiting for response(s) to review comment(s).
337 + Expecting a reroll.
338 cf. <aju_AmlKVi5UZaiQ@pks.im>
339 + cf. <akK05yZ6843K8Vdd@denethor>
340 + cf. <akLLB_J-pvJ7iR7c@denethor>
341 source: <20260624041920.2601961-1-jltobler@gmail.com>
342
343
@@ -219,7 +355,9 @@ Release tarballs are available at:
355 refactoring backend-specific object information retrieval into an
356 opt-in struct object_info_source structure.
357
222 - Needs review.
358 + Will merge to 'next'?
359 + cf. <akOod6X1a2axIXKZ@pks.im>
360 + cf. <xmqqv7b0rmt6.fsf@gitster.g>
361 source: <20260624-b4-pks-odb-drop-whence-v1-0-8d1877b790ac@pks.im>
362
363
@@ -252,7 +390,7 @@ Release tarballs are available at:
390 "git push origin/main" and "git branch origin main" could both be
391 an obvious typo, in which case offer the obvious typofix.
392
255 - Will merge to 'next'?
393 + Will merge to 'next'.
394 cf. <xmqqfr272lq7.fsf@gitster.g>
395 source: <pull.2331.v3.git.git.1782583345.gitgitgadget@gmail.com>
396
@@ -262,39 +400,39 @@ Release tarballs are available at:
400
401 Code clean-up with leakfix for a write file stream.
402
265 - Needs review.
403 + Will merge to 'next'?
404 + cf. <akO1mhi2u2PntLbt@pks.im>
405 source: <xmqqmrwdxrat.fsf@gitster.g>
406
407
269 -* ty/migrate-excludes-file (2026-06-27) 1 commit
408 +* ty/migrate-excludes-file (2026-06-30) 1 commit
409 - environment: move excludes_file into repo_config_values
410
411 Move excludes_file global variable into per-repository structure.
412
274 - Waiting for response(s) to review comment(s).
275 - cf. <xmqqbjcv2h3j.fsf@gitster.g>
276 - cf. <CAP8UFD3Z0M_1NEXGcAxNZKpRUQiSkHZLTEvNNYushKA_PoPgjA@mail.gmail.com>
277 - source: <20260627160813.1074201-2-cat@malon.dev>
413 + Needs review.
414 + source: <20260630164401.2906091-2-cat@malon.dev>
415
416
280 -* kk/merge-base-exhaustion (2026-06-28) 8 commits
281 - - commit-reach: move min_generation check into paint_queue_get()
282 - - commit-reach: terminate merge-base walk when one paint side is exhausted
283 - - commit-reach: remove unused nonstale_queue dedup wrappers
284 - - commit-reach: introduce struct paint_state with per-side counters
285 - - commit-reach: add trace2 instrumentation to paint_down_to_common()
286 - - t6099, t6600: add side-exhaustion regression tests
287 - - t6600: add test cases for side-exhaustion edge cases
288 - - Documentation/technical: add paint-down-to-common doc
417 +* kk/merge-base-exhaustion (2026-07-01) 10 commits
418 + . commit-reach: remove commit-date ordering fallback
419 + . commit-reach: move min_generation check into paint_queue_get()
420 + . commit-reach: terminate merge-base walk when one paint side is exhausted
421 + . commit-reach: introduce struct paint_state with per-side counters
422 + . t6600: add clock-skew topologies and step counts for edge cases
423 + . commit-reach: add trace2 instrumentation to paint_down_to_common()
424 + . t6099, t6600: add side-exhaustion regression tests
425 + . t6600: add test cases for side-exhaustion edge cases
426 + . test-lib-functions: improve diagnostic output for trace2 data assertions
427 + . Documentation/technical: add paint-down-to-common doc
428
429 The merge-base computation has been optimized by stopping the walk
430 early when one side's exclusive commits in the queue are exhausted,
431 yielding significant speedups for queries with one-sided histories.
432
294 - Expecting a reroll.
295 - cf. <48bfdb11-2624-4aa6-8fbd-d3f894c33bcc@gmail.com>
296 - cf. <CAL71e4N92t8170UBW3rMA6B-rEUeOm-R_HSioB957mUKOpwRyQ@mail.gmail.com>
297 - source: <pull.2149.v4.git.1782649547.gitgitgadget@gmail.com>
433 + Needs review.
434 + passes t6600 standalone, breaks when merged to 'seen'.
435 + source: <pull.2149.v5.git.1782923832.gitgitgadget@gmail.com>
436
437
438 * dk/meson-enable-use-nsec-build (2026-06-20) 1 commit
@@ -328,8 +466,7 @@ Release tarballs are available at:
466 source: <20260625-pks-connected-generic-promisor-checks-v3-0-7308f3b9dc44@pks.im>
467
468
331 -* ps/libgit-in-subdir (2026-06-26) 4 commits
332 - - fixup??? Move libgit.a sources into separate "lib/" directory
469 +* ps/libgit-in-subdir (2026-06-30) 3 commits
470 - Move libgit.a sources into separate "lib/" directory
471 - t/helper: prepare "test-example-tap.c" for introduction of "lib/"
472 - Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir
@@ -340,10 +477,8 @@ Release tarballs are available at:
477 library code.
478
479 Waiting for response(s) to review comment(s).
343 - cf. <32bb1cf6-1e37-dc0c-dfb2-e78a30763342@gmx.de>
344 - cf. <xmqqwlvl6sr5.fsf@gitster.g>
345 - cf. <aj9wcFEb6oCRnfn2@szeder.dev>
346 - source: <20260622-pks-libgit-in-subdir-v2-0-cb946c51ee7b@pks.im>
480 + cf. <cbbb08fc-fd4d-45ef-927b-05ac44602ff1@gmail.com>
481 + source: <20260701-pks-libgit-in-subdir-v3-0-5e4860056094@pks.im>
482
483
484 * ps/odb-generalize-prepare (2026-06-22) 3 commits
@@ -357,8 +492,8 @@ Release tarballs are available at:
492 flag, and a new `odb_prepare()` wrapper has been introduced to
493 allow pre-opening object database sources.
494
360 - Waiting for response(s) to review comment(s).
361 - cf. <87ldc14i4n.fsf@emacs.iotcl.com>
495 + Will merge to 'next'?
496 + cf. <87ik704f1j.fsf@emacs.iotcl.com>
497 source: <20260622-b4-pks-odb-generalize-prepare-v1-0-d2a5c5d13144@pks.im>
498
499
@@ -371,7 +506,7 @@ Release tarballs are available at:
506 and how the resolution of such critiques should be recorded in the
507 final commit messages.
508
374 - Will cook in 'next'.
509 + Will merge to 'master'.
510 cf. <ajjwYGWZ6hQWr600@pks.im>
511 source: <xmqqeci0g4mz.fsf@gitster.g>
512
@@ -433,6 +568,7 @@ Release tarballs are available at:
568 Waiting for response(s) to review comment(s).
569 cf. <xmqqse65zyhw.fsf@gitster.g>
570 cf. <akIQLM6xZTHBudWT@pks.im>
571 + cf. <3b3af3ef-a043-4af9-964e-429237789c97@gmail.com>
572 source: <pull.2337.v6.git.git.1782635349.gitgitgadget@gmail.com>
573
574
@@ -451,12 +587,12 @@ Release tarballs are available at:
587 provide a default for the per-remote `remote.<name>.followRemoteHEAD`
588 setting.
589
454 - Will cook in 'next'.
590 + Will merge to 'master'.
591 cf. <xmqqcxxp1j2t.fsf@gitster.g>
592 source: <20260619094751.2996804-1-m@lfurio.us>
593
594
459 -* ps/refs-writing-subcommands (2026-06-17) 5 commits
595 +* ps/refs-writing-subcommands (2026-06-30) 5 commits
596 - builtin/refs: add "rename" subcommand
597 - builtin/refs: add "create" subcommand
598 - builtin/refs: add "update" subcommand
@@ -467,8 +603,9 @@ Release tarballs are available at:
603 "update", and "rename" subcommands to create, delete, update, and
604 rename references, respectively.
605
470 - Needs review.
471 - source: <20260617-pks-refs-writing-subcommands-v2-0-07f3d18336f9@pks.im>
606 + Will merge to 'next'?
607 + cf. <xmqqcxx7susi.fsf@gitster.g>
608 + source: <20260630-pks-refs-writing-subcommands-v3-0-deb04de1ecef@pks.im>
609
610
611 * po/hash-object-size-t (2026-06-16) 6 commits
@@ -484,7 +621,7 @@ Release tarballs are available at:
621 and other LLP64 platforms has been improved by converting object header
622 buffers and data-handling functions from 'unsigned long' to 'size_t'.
623
487 - Will cook in 'next'.
624 + Will merge to 'master'.
625 cf. <ajOQthRjhD3hRM9w@pks.im>
626 source: <pull.2138.v2.git.1781621398.gitgitgadget@gmail.com>
627
@@ -500,7 +637,7 @@ Release tarballs are available at:
637 The trailer sections in SubmittingPatches have been updated to
638 encourage use of standard trailers.
639
503 - Will cook in 'next'.
640 + Will merge to 'master'.
641 cf. <xmqq4ij0vo8f.fsf@gitster.g>
642 source: <V3_CV_SubPatches_trailers.9ec@msgid.xyz>
643
@@ -513,7 +650,7 @@ Release tarballs are available at:
650 which the path being tracked gets renamed differently in multiple
651 history lines, better.
652
516 - Will cook in 'next'.
653 + Will merge to 'master'.
654 source: <ajjU4w2B0NlZffw1@collabora.com>
655
656
@@ -554,6 +691,7 @@ Release tarballs are available at:
691
692 Waiting for response(s) to review comment(s).
693 cf. <aj93BE8MYatQAjoy@szeder.dev>
694 + cf. <xmqqqzlpt543.fsf@gitster.g>
695 source: <pull.2135.v2.git.1781323575.gitgitgadget@gmail.com>
696
697
@@ -561,7 +699,7 @@ Release tarballs are available at:
699 (merged to 'next' on 2026-06-17 at 43ed8b3969)
700 + cat-file: speed up default format
701
564 - Will cook in 'next'.
702 + Will merge to 'master'.
703 cf. <20260615165326.GA91269@coredump.intra.peff.net>
704 source: <5a7ed929-6fe0-496c-83bd-65dee57c2241@web.de>
705
@@ -575,8 +713,8 @@ Release tarballs are available at:
713 into prio_queue itself, speeding up commit traversal workflows and
714 simplifying callers.
715
578 - On hold, waiting for kk/prio-queue-get-put-fusion to land first.
579 - cf. <CAL71e4MYNiScZjTwkApjDAjRh2LM0_SP59h5HCTywV-Pua03tw@mail.gmail.com>
716 + Will merge to 'next'?
717 + cf. <xmqqh5mjrbgq.fsf@gitster.g>
718 source: <pull.2140.v4.git.1780945851.gitgitgadget@gmail.com>
719
720
@@ -591,7 +729,8 @@ Release tarballs are available at:
729 connectivity checks across many candidate refs with shared
730 history.
731
594 - Needs review.
732 + Comments?
733 + cf. <xmqqqzlpulkp.fsf@gitster.g>
734 source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com>
735
736
@@ -608,6 +747,7 @@ Release tarballs are available at:
747 cf. <xmqq5x358byf.fsf@gitster.g>
748 cf. <b5d70a0b-ef32-49c9-84ba-8a64b7809574@gmail.com>
749 cf. <f8b520d1-edeb-9e45-c503-025c8b5833c3@gmx.de>
750 + cf. <akOpOXeD_gS5U7rH@pks.im>
751 source: <20260626-toon-git-replay-drop-merges-v5-0-5e120738b9d0@iotcl.com>
752
753
@@ -621,13 +761,14 @@ Release tarballs are available at:
761 + builtin/init: simplify logic to configure worktree
762 + builtin/init: stop modifying global `git_work_tree_cfg` variable
763 + Merge branch 'ps/setup-centralize-odb-creation' into ps/setup-drop-global-state
764 + (this branch is used by ps/setup-split-discovery-and-setup.)
765
766 Continuation of "setup.c" refactoring to drop remaining global state
767 (`git_work_tree_cfg`, `is_bare_repository_cfg`). The most notable
768 outcome is that `is_bare_repository()` has been updated to no longer
769 implicitly rely on `the_repository`.
770
630 - Will cook in 'next'.
771 + Will merge to 'master'.
772 cf. <airVOrTboNDDGBak@denethor>
773 cf. <87ldckyygk.fsf@emacs.iotcl.com>
774 source: <20260611-b4-pks-setup-drop-global-state-v2-0-a6f7269c841d@pks.im>
@@ -647,6 +788,7 @@ Release tarballs are available at:
788 + setup: stop applying repository format twice
789 + setup: inline `check_and_apply_repository_format()`
790 + Merge branch 'ps/setup-centralize-odb-creation' into ps/refs-onbranch-fixes
791 + (this branch is used by ps/setup-split-discovery-and-setup.)
792
793 Reference backend configuration is now loaded lazily to avoid
794 recursive calls during repository initialization when "onbranch"
@@ -684,7 +826,7 @@ Release tarballs are available at:
826 The packed object source has been refactored into a proper struct
827 odb_source.
828
687 - Will cook in 'next'.
829 + Will merge to 'master'.
830 cf. <ajK2QKdW-TdflfR0@denethor>
831 source: <20260617-pks-odb-source-packed-v3-0-b5c7583cd795@pks.im>
832
@@ -698,7 +840,7 @@ Release tarballs are available at:
840 their ref iterator, avoiding a loose-ref scaling regression in
841 repositories with many unrelated loose references.
842
701 - Will cook in 'next'.
843 + Will merge to 'master'.
844 cf. <xmqqik7fsv2m.fsf@gitster.g>
845 source: <20260612-fix-git-branch-regression-v4-1-f150038c02f4@gmail.com>
846
@@ -713,26 +855,26 @@ Release tarballs are available at:
855 been migrated into struct repo_config_values to tie them to
856 per-repository configuration state.
857
716 - Will cook in 'next'.
858 + Will merge to 'master'.
859 cf. <CAP8UFD35Tiy1_fqpjq8P-z=ZhzR3MTiThqfCs977652umRoSEQ@mail.gmail.com>
860 cf. <xmqqse6uwdnz.fsf@gitster.g>
861 source: <20260610124353.149874-2-cat@malon.dev>
862 source: <20260620140957.667820-1-cat@malon.dev>
863
864
723 -* ps/cat-file-remote-object-info (2026-06-25) 13 commits
865 +* ps/cat-file-remote-object-info (2026-07-01) 13 commits
866 - cat-file: make remote-object-info allow-list dynamic
725 - - cat-file: validate remote atoms with allow_list
867 + - cat-file: validate remote atoms with an allow-list
868 - cat-file: add remote-object-info to batch-command
869 - transport: add client support for object-info
870 - serve: advertise object-info feature
871 - fetch-pack: move fetch initialization
730 - - connect: refactor packet writing
731 - - fetch-pack: move function to connect.c
732 - - fetch-pack: prepare function to be moved
733 - - t1006: split test utility functions into new "lib-cat-file.sh"
872 + - connect: make `write_fetch_command_and_capabilities()` more generic
873 + - fetch-pack: move `write_fetch_command_and_capabilities()` to connect.c
874 + - fetch-pack: drop static `advertise_sid` variable
875 + - t1006: split test utility functions into new 'lib-cat-file.sh'
876 - cat-file: declare loop counter inside for()
735 - - git-compat-util: add strtoul_szt() with error handling
877 + - git-compat-util: add `strtoumax_szt()` with error handling
878 - transport-helper: fix memory leak of helper on disconnect
879
880 The `remote-object-info` command has been added to `git cat-file
@@ -745,21 +887,8 @@ Release tarballs are available at:
887 inapplicable or unsupported fields.
888
889 Waiting for response(s) to review comment(s).
748 - cf. <CAOLa=ZScS3Gmm5BAgJF69phpaDXGnP_j9jx+bMhn_tfF65RXEg@mail.gmail.com>
749 - source: <20260625-ps-eric-work-rebase-v14-0-09f7ffe21a53@gmail.com>
750 -
751 -
752 -* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
753 - - http: preserve wwwauth_headers across redirects
754 -
755 - When cURL follows a redirect, the WWW-Authenticate headers from the
756 - redirect target were lost because credential_from_url() cleared the
757 - credential state. This has been fixed by preserving the collected
758 - headers across the redirect update.
759 -
760 - Expecting a reroll.
761 - cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com>
762 - source: <20260602161150.1527493-1-aplattner@nvidia.com>
890 + cf. <xmqq7bneo9mh.fsf@gitster.g>
891 + source: <20260701-ps-eric-work-rebase-v15-0-c88a43b63917@gmail.com>
892
893
894 * ps/doc-recommend-b4 (2026-06-15) 3 commits
@@ -772,7 +901,7 @@ Release tarballs are available at:
901 documentation has been updated to recommend using it as a
902 streamlined method for submitting patches.
903
775 - Will cook in 'next'.
904 + Will merge to 'master'.
905 cf. <87eci7yomp.fsf@emacs.iotcl.com>
906 source: <20260615-pks-b4-v4-0-22cfca8f19c5@pks.im>
907
@@ -823,7 +952,7 @@ Release tarballs are available at:
952 faster packaging by falling back to path-walk when bitmaps cannot
953 fully satisfy the request.
954
826 - Will cook in 'next'.
955 + Will merge to 'master'.
956 cf. <xmqqwlvq1qyy.fsf@gitster.g>
957 source: <cover.1782082975.git.me@ttaylorr.com>
958
@@ -837,7 +966,8 @@ Release tarballs are available at:
966 configuration) has been migrated into 'repo_config_values' to tie it
967 to a specific repository instance.
968
840 - Needs review.
969 + Comments?
970 + cf. <xmqqcxx9ukvw.fsf@gitster.g>
971 source: <20260619162105.648495-1-cat@malon.dev>
972
973
@@ -859,6 +989,7 @@ Release tarballs are available at:
989 + repo: add path.gitdir with absolute and relative suffix formatting
990 + repo: add path.commondir with absolute and relative suffix formatting
991 + path: extract format_path() and use in rev-parse
992 + (this branch is used by ps/setup-split-discovery-and-setup.)
993
994 The "git repo info" command has been taught new keys to output both
995 absolute and relative paths for "gitdir" and "commondir", supported by
@@ -869,7 +1000,7 @@ Release tarballs are available at:
1000 source: <20260624033748.108281-1-jayatheerthkulkarni2005@gmail.com>
1001
1002
872 -* ps/history-drop (2026-06-29) 11 commits
1003 +* ps/history-drop (2026-07-01) 11 commits
1004 - builtin/history: implement "drop" subcommand
1005 - builtin/history: split handling of ref updates into two phases
1006 - replay: expose `replay_result_queue_update()`
@@ -887,7 +1018,7 @@ Release tarballs are available at:
1018 parent.
1019
1020 Needs review.
890 - source: <20260629-b4-pks-history-drop-v7-0-6e9392a957d8@pks.im>
1021 + source: <20260701-b4-pks-history-drop-v8-0-19b5cdf1facd@pks.im>
1022
1023
1024 * jk/setup-gitfile-diag-fix (2026-06-16) 1 commit
@@ -898,7 +1029,7 @@ Release tarballs are available at:
1029 been fixed, avoiding a potential NULL-pointer crash when reporting
1030 that a .git file does not point to a valid repository.
1031
901 - Will cook in 'next'.
1032 + Will merge to 'master'.
1033 cf. <xmqqjyry4hax.fsf@gitster.g>
1034 source: <20260616123516.GA2301231@coredump.intra.peff.net>
1035
@@ -931,8 +1062,7 @@ Release tarballs are available at:
1062 the path with a dot, matching standard shell-completion behavior.
1063
1064 Waiting for response(s) to review comment(s).
934 - cf. <xmqq1pe0g08t.fsf@gitster.g>
935 - cf. <xmqqbjd37i4y.fsf@gitster.g>
1065 + cf. <xmqqik71t3nr.fsf@gitster.g>
1066 source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
1067
1068
@@ -968,7 +1098,7 @@ Release tarballs are available at:
1098 diverged from its push branch has been updated to suggest "git pull
1099 <remote> <branch>".
1100
971 - Will cook in 'next'.
1101 + Will merge to 'master'.
1102 cf. <xmqq7bo6xuok.fsf@gitster.g>
1103 source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com>
1104
@@ -1006,7 +1136,7 @@ Release tarballs are available at:
1136 remotes via the promisor.acceptFromServerURL configuration
1137 variable.
1138
1009 - Will cook in 'next'.
1139 + Will merge to 'master'.
1140 cf. <877bo7294j.fsf@emacs.iotcl.com>
1141 cf. <xmqqh5naxwfc.fsf@gitster.g>
1142 source: <20260527140820.1438165-1-christian.couder@gmail.com>
@@ -1036,7 +1166,7 @@ Release tarballs are available at:
1166 "ort" merge backend handles merging corrupt trees better by
1167 aborting when it should.
1168
1039 - Will cook in 'next'.
1169 + Will merge to 'master'.
1170 cf. <xmqq5x3ldu4h.fsf@gitster.g>
1171 source: <pull.2096.v2.git.1781419047.gitgitgadget@gmail.com>
1172
@@ -1050,7 +1180,7 @@ Release tarballs are available at:
1180 improved to correctly abbreviate object IDs for more commands and
1181 avoid misinterpreting refs as object IDs.
1182
1053 - Will cook in 'next'.
1183 + Will merge to 'master'.
1184 source: <cover.1782230024.git.phillip.wood@dunelm.org.uk>
1185
1186
@@ -1065,8 +1195,9 @@ Release tarballs are available at:
1195 appearing falsely related to unrelated commits rendered immediately
1196 above them.
1197
1068 - Waiting for response(s) to review comment(s).
1198 + Expecting a reroll.
1199 The peek-ahead approach may need to be scratched.
1200 cf. <CAN5EUNSj-2hkEBF7N_M6RLsuujDNFNUF3w53zR7SN1_5i2BRyg@mail.gmail.com>
1201 cf. <CAL71e4OQ_kGb+UwHgikHG236-8BVtc7P9OdpV4i4UzYRCoPczw@mail.gmail.com>
1202 + cf. <CAN5EUNTQV68_eofa7BGb0BukMe=U2d4-FEVmJwW4dObQ2r6LuA@mail.gmail.com>
1203 source: <20260620-ps-pre-commit-indent-v6-0-cdc6d8fd5fbc@gmail.com>