What's cooking (2026/06 #01)

Junio C Hamano committed Jun 2, 2026 at 19:16 UTC 388f8b0ec31fbb880f137b54ea05a84f4a8369b0
1 file changed +635 -565
whats-cooking.txt
+635 -565
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (May 2026, #08)
3 -X-master-at: c69baaf57ba26cf117c2b6793802877f19738b0d
4 -X-next-at: 2f8565e1d14d2de4cfbc9da0132131bf0d0dc087
2 +Subject: What's cooking in git.git (Jun 2026, #01)
3 +X-master-at: 9ac3f193c05c2237e2b14ebaa1149e9fc8a1abe0
4 +X-next-at: 489fc7bff1292aad665a1434fe925a2c0ab9d02d
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (May 2026, #08)
7 +What's cooking in git.git (Jun 2026, #01)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -48,275 +48,571 @@ Release tarballs are available at:
48 --------------------------------------------------
49 [Graduated to 'master']
50
51 -* ds/fetch-negotiation-options (2026-05-19) 8 commits
52 - (merged to 'next' on 2026-05-21 at ff57fd9c97)
53 - + send-pack: pass negotiation config in push
54 - + remote: add remote.*.negotiationInclude config
55 - + fetch: add --negotiation-include option for negotiation
56 - + negotiator: add have_sent() interface
57 - + remote: add remote.*.negotiationRestrict config
58 - + transport: rename negotiation_tips
59 - + fetch: add --negotiation-restrict option
60 - + t5516: fix test order flakiness
51 +* ds/path-walk-filters (2026-05-22) 14 commits
52 + (merged to 'next' on 2026-05-25 at eccb829b10)
53 + + path-walk: support `combine` filter
54 + + path-walk: support `object:type` filter
55 + + path-walk: support `tree:0` filter
56 + + t6601: tag otherwise-unreachable trees
57 + + pack-objects: support sparse:oid filter with path-walk
58 + + path-walk: add pl_sparse_trees to control tree pruning
59 + + path-walk: support blob size limit filter
60 + + backfill: die on incompatible filter options
61 + + path-walk: support blobless filter
62 + + path-walk: always emit directly-requested objects
63 + + t/perf: add pack-objects filter and path-walk benchmark
64 + + pack-objects: pass --objects with --path-walk
65 + + t5620: make test work with path-walk var
66 + + Merge branch 'en/backfill-fixes-and-edges' into ds/path-walk-filters
67 + (this branch is used by tb/pack-path-walk-bitmap-delta-islands.)
68 +
69 + The "git pack-objects --path-walk" traversal has been integrated
70 + with several object filters, including blobless and sparse filters.
71 + source: <pull.2101.v5.git.1779474277.gitgitgadget@gmail.com>
72 +
73 +
74 +* ed/check-connected-close-err-fd (2026-05-16) 1 commit
75 + (merged to 'next' on 2026-05-22 at 00d592399e)
76 + + Merge branch 'ed/check-connected-close-err-fd-2.53' into ed/check-connected-close-err-fd
77 + (this branch uses ed/check-connected-close-err-fd-2.53.)
78
62 - The negotiation tip options in "git fetch" have been reworked to
63 - allow requiring certain refs to be sent as "have" lines, and to
64 - restrict negotiation to a specific set of refs.
65 - source: <pull.2085.v6.git.1779207896.gitgitgadget@gmail.com>
79 + File descriptor leak fix.
80 + (this branch uses ed/check-connected-close-err-fd-2.53.)
81
82
68 -* en/batch-prefetch (2026-05-14) 4 commits
69 - (merged to 'next' on 2026-05-20 at 722acf81c8)
70 - + grep: prefetch necessary blobs
71 - + builtin/log: prefetch necessary blobs for `git cherry`
72 - + patch-ids.h: add missing trailing parenthesis in documentation comment
73 - + promisor-remote: document caller filtering contract
83 +* ed/check-connected-close-err-fd-2.53 (2026-05-14) 1 commit
84 + (merged to 'next' on 2026-05-22 at 1017d0e022)
85 + + connected: close err_fd in promisor fast-path
86 + (this branch is used by ed/check-connected-close-err-fd.)
87 +
88 + File descriptor leak fix (for 2.54 maintenance track).
89 + source: <pull.2303.git.git.1778827194448.gitgitgadget@gmail.com>
90
75 - In a lazy clone, "git cherry" and "git grep" often fetch necessary
76 - blob objects one by one from promisor remotes. It has been corrected
77 - to collect necessary object names and fetch them in bulk to gain
78 - reasonable performance.
79 - cf. <0da4f159-8d4b-49e2-93c1-25aa0bf69371@gmail.com>
80 - source: <pull.2089.v3.git.1778775928.gitgitgadget@gmail.com>
91
92 +* jk/commit-graph-lazy-load-fallback (2026-05-18) 1 commit
93 + (merged to 'next' on 2026-05-22 at d1188df466)
94 + + commit: fall back to full read when maybe_tree is NULL
95 +
96 + The logic to lazy-load trees from the commit-graph has been made
97 + more robust by falling back to reading the commit object when
98 + the commit-graph is no longer available.
99 + source: <20260519061534.GA1709881@coredump.intra.peff.net>
100 +
101 +
102 +* jk/connect-service-enum (2026-05-21) 2 commits
103 + (merged to 'next' on 2026-05-24 at 293561cbc5)
104 + + transport-helper: fix typo in BUG() message
105 + (merged to 'next' on 2026-05-21 at fd80c61e21)
106 + + connect: use "service" enum for "name" argument
107
83 -* jk/sq-dequote-cleanup (2026-05-18) 3 commits
84 - (merged to 'next' on 2026-05-21 at fbedf2daea)
85 - + quote: simplify internals of dequoting
86 - + quote: drop sq_dequote_to_argv()
87 - + quote.h: bump strvec forward declaration to the top
108 + The "name" argument in git_connect() and related functions has been
109 + converted to a "service" enum to improve type safety and clarify its
110 + purpose.
111 + source: <20260519052219.GA1703179@coredump.intra.peff.net>
112 + source: <20260522044352.GA861761@coredump.intra.peff.net>
113
89 - Code simplification.
90 - source: <20260519011837.GA1615637@coredump.intra.peff.net>
114
115 +* jr/bisect-custom-terms-in-output (2026-05-14) 3 commits
116 + (merged to 'next' on 2026-05-22 at 1ccd1056c9)
117 + + rev-parse: use selected alternate terms to look up refs
118 + + bisect: print bisect terms in single quotes
119 + + bisect: use selected alternate terms in status output
120
93 -* jt/odb-transaction-write (2026-05-14) 7 commits
94 - (merged to 'next' on 2026-05-21 at 61108abe4d)
95 - + odb/transaction: make `write_object_stream()` pluggable
96 - + object-file: generalize packfile writes to use odb_write_stream
97 - + object-file: avoid fd seekback by checking object size upfront
98 - + object-file: remove flags from transaction packfile writes
99 - + odb: update `struct odb_write_stream` read() callback
100 - + odb/transaction: use pluggable `begin_transaction()`
101 - + odb: split `struct odb_transaction` into separate header
102 - (this branch is used by ps/odb-in-memory and ps/odb-source-loose.)
121 + "git bisect" now uses the selected terms (e.g., old/new) more
122 + consistently in its output.
123 + source: <20260514-bisect-terms-v4-0-b3e3cf1b06ce@schlaraffenlan.de>
124
104 - ODB transaction interface is being reworked to explicitly handle
105 - object writes.
106 - source: <20260514183740.1505171-1-jltobler@gmail.com>
125
126 +* kh/doc-hook (2026-05-21) 4 commits
127 + (merged to 'next' on 2026-05-25 at 5e41d13adf)
128 + + doc: hook: don’t self-link via config include
129 + + doc: config: include existing git-hook(1) section
130 + + doc: hook: consistently capitalize Git
131 + + doc: hook: remove stray backtick
132
109 -* kk/limit-list-optim (2026-05-14) 1 commit
110 - (merged to 'next' on 2026-05-19 at f17450dd1b)
111 - + revision: use priority queue in limit_list()
133 + Doc updates.
134 + cf. <2832179.mvXUDI8C0e@piment-oiseau>
135 + source: <CV_doc_hook.6f0@msgid.xyz>
136
113 - The limit_list() function that is one of the core part of the
114 - revision traversal infrastructure has been optimized by replacing
115 - its use of linear list with priority queue.
116 - source: <pull.2114.git.1778777491939.gitgitgadget@gmail.com>
137
138 +* kk/tips-reachable-from-bases-optim (2026-05-16) 2 commits
139 + (merged to 'next' on 2026-05-22 at 87d6b8e666)
140 + + t6600: add tests for duplicate tips in tips_reachable_from_bases()
141 + + commit-reach: use object flags for tips_reachable_from_bases()
142
119 -* kk/merge-octopus-optim (2026-05-11) 1 commit
120 - (merged to 'next' on 2026-05-20 at afe427dc66)
121 - + merge: use repo_in_merge_bases for octopus up-to-date check
143 + Revision traversal optimization.
144 + source: <pull.2116.v3.git.1778947182.gitgitgadget@gmail.com>
145
123 - The logic to determine that branches in an octopus merge are
124 - independent has been optimized.
125 - cf. <c5b333f1-0db6-4aec-a369-6503cb924e7f@gmail.com>
126 - source: <pull.2110.git.1778566286543.gitgitgadget@gmail.com>
146
147 +* ps/gitlab-ci-macOS-improvements (2026-05-21) 2 commits
148 + (merged to 'next' on 2026-05-22 at aaa3c7021e)
149 + + gitlab-ci: update macOS image
150 + + gitlab-ci: upgrade macOS runners
151
129 -* kn/refs-fsck-skip-lock-files (2026-05-17) 1 commit
130 - (merged to 'next' on 2026-05-21 at 91e30e3543)
131 - + refs/files: skip lock files during consistency checks
152 + Update GitLab CI jobs that exercise macOS.
153 + source: <20260521-b4-pks-gitlab-ci-updates-v1-0-53bb46ed33e0@pks.im>
154
133 - The consistency checks for the files reference backend have been updated
134 - to skip lock files earlier, avoiding unnecessary parsing of
135 - intermediate files.
136 - source: <20260517-refs-fsck-skip-lock-files-v3-1-b24dfd673c7e@gmail.com>
155
156 +* ps/graph-lane-limit (2026-03-27) 3 commits
157 + (merged to 'next' on 2026-05-22 at ca1c5e8432)
158 + + graph: add truncation mark to capped lanes
159 + + graph: add --graph-lane-limit option
160 + + graph: limit the graph width to a hard-coded max
161
139 -* pb/doc-diff-format-updates (2026-05-15) 3 commits
140 - (merged to 'next' on 2026-05-20 at fe8d31e9f9)
141 - + diff-format.adoc: mode and hash are 0* for unmerged paths from index only
142 - + diff-format.adoc: 'git diff-files' prints two lines for unmerged files
143 - + diff-format.adoc: remove mention of diff-tree specific output
162 + The graph output from commands like "git log --graph" can now be
163 + limited to a specified number of lanes, preventing overly wide output
164 + in repositories with many branches.
165 + cf. <bdff0a5d-b738-4053-9b72-08eba88156de@kdbg.org>
166 + source: <20260328001113.1275291-1-pabloosabaterr@gmail.com>
167
145 - Doc updates.
146 - source: <pull.2304.git.git.1778860091.gitgitgadget@gmail.com>
147 -
148 -
149 -* ps/odb-in-memory (2026-04-10) 18 commits
150 - (merged to 'next' on 2026-05-21 at c8709aa17f)
151 - + t/unit-tests: add tests for the in-memory object source
152 - + odb: generic in-memory source
153 - + odb/source-inmemory: stub out remaining functions
154 - + odb/source-inmemory: implement `freshen_object()` callback
155 - + odb/source-inmemory: implement `count_objects()` callback
156 - + odb/source-inmemory: implement `find_abbrev_len()` callback
157 - + odb/source-inmemory: implement `for_each_object()` callback
158 - + odb/source-inmemory: convert to use oidtree
159 - + oidtree: add ability to store data
160 - + cbtree: allow using arbitrary wrapper structures for nodes
161 - + odb/source-inmemory: implement `write_object_stream()` callback
162 - + odb/source-inmemory: implement `write_object()` callback
163 - + odb/source-inmemory: implement `read_object_stream()` callback
164 - + odb/source-inmemory: implement `read_object_info()` callback
165 - + odb: fix unnecessary call to `find_cached_object()`
166 - + odb/source-inmemory: implement `free()` callback
167 - + odb: introduce "in-memory" source
168 - + Merge branch 'jt/odb-transaction-write' into ps/odb-in-memory
169 - (this branch is used by ps/odb-source-loose; uses jt/odb-transaction-write.)
170 -
171 - Add a new odb "in-memory" source that is meant to only hold
172 - tentative objects (like the virtual blob object that represents the
173 - working tree file used by "git blame").
174 - source: <20260410-b4-pks-odb-source-inmemory-v3-0-22fd0fad58fe@pks.im>
175 -
176 -
177 -* ps/setup-wo-the-repository (2026-05-19) 18 commits
178 - (merged to 'next' on 2026-05-21 at d8fb5a7b3e)
179 - + setup: stop using `the_repository` in `init_db()`
180 - + setup: stop using `the_repository` in `create_reference_database()`
181 - + setup: stop using `the_repository` in `initialize_repository_version()`
182 - + setup: stop using `the_repository` in `check_repository_format()`
183 - + setup: stop using `the_repository` in `upgrade_repository_format()`
184 - + setup: stop using `the_repository` in `setup_git_directory()`
185 - + setup: stop using `the_repository` in `setup_git_directory_gently()`
186 - + setup: stop using `the_repository` in `setup_git_env()`
187 - + setup: stop using `the_repository` in `set_git_work_tree()`
188 - + setup: stop using `the_repository` in `setup_work_tree()`
189 - + setup: stop using `the_repository` in `enter_repo()`
190 - + setup: stop using `the_repository` in `verify_non_filename()`
191 - + setup: stop using `the_repository` in `verify_filename()`
192 - + setup: stop using `the_repository` in `path_inside_repo()`
193 - + setup: stop using `the_repository` in `prefix_path()`
194 - + setup: stop using `the_repository` in `is_inside_work_tree()`
195 - + setup: stop using `the_repository` in `is_inside_git_dir()`
196 - + setup: replace use of `the_repository` in static functions
197 - (this branch is used by ps/setup-centralize-odb-creation.)
198 -
199 - Many uses of the_repository has been updated to use a more
200 - appropriate struct repository instance in setup.c codepath.
201 - source: <20260519-pks-setup-wo-the-repository-v3-0-a00d8ea8b07f@pks.im>
202 -
203 -
204 -* ps/t3903-cover-stash-include-untracked (2026-05-16) 1 commit
205 - (merged to 'next' on 2026-05-20 at f1e7ac1cbd)
206 - + stash: add coverage for show --include-untracked
207 -
208 - Test coverage has been added to "git stash --include-untracked".
209 - source: <20260516183347.4323-2-pushkarkumarsingh1970@gmail.com>
210 -
211 -
212 -* rs/trailer-fold-optim (2026-05-15) 1 commit
213 - (merged to 'next' on 2026-05-20 at 38c9fb15c2)
214 - + trailer: change strbuf in-place in unfold_value()
215 -
216 - Code simplification.
217 - source: <816be07e-2cd6-48fe-ae93-57fa0f2543ed@web.de>
218 -
219 -
220 -* rs/use-builtin-add-overflow-explicitly-on-clang (2026-05-18) 2 commits
221 - (merged to 'next' on 2026-05-21 at c223b71079)
222 - + use __builtin_add_overflow() in st_add() with Clang
223 - + strbuf: use st_add3() in strbuf_grow()
224 -
225 - Micro optimization of codepaths that compute allocation sizes carefully.
226 - source: <20260518202502.25682-1-l.s.r@web.de>
227 -
228 -
229 -* tb/incremental-midx-part-3.3 (2026-05-19) 16 commits
230 - (merged to 'next' on 2026-05-21 at 6c11c1a739)
231 - + repack: allow `--write-midx=incremental` without `--geometric`
232 - + repack: introduce `--write-midx=incremental`
233 - + repack: implement incremental MIDX repacking
234 - + packfile: ensure `close_pack_revindex()` frees in-memory revindex
235 - + builtin/repack.c: convert `--write-midx` to an `OPT_CALLBACK`
236 - + repack-geometry: prepare for incremental MIDX repacking
237 - + repack-midx: extract `repack_fill_midx_stdin_packs()`
238 - + repack-midx: factor out `repack_prepare_midx_command()`
239 - + midx: expose `midx_layer_contains_pack()`
240 - + repack: track the ODB source via existing_packs
241 - + midx: support custom `--base` for incremental MIDX writes
242 - + midx: introduce `--no-write-chain-file` for incremental MIDX writes
243 - + midx: use `strvec` for `keep_hashes`
244 - + midx: build `keep_hashes` array in order
245 - + midx: use `strset` for retained MIDX files
246 - + midx-write: handle noop writes when converting incremental chains
247 -
248 - The repacking code has been refactored and compaction of MIDX layers
249 - have been implemented, and incremental strategy that does not require
250 - all-into-one repacking has been introduced.
251 - source: <cover.1779206239.git.me@ttaylorr.com>
252 -
253 -
254 -* tb/pseudo-merge-bugfixes (2026-05-11) 9 commits
255 - (merged to 'next' on 2026-05-19 at ecee155d5c)
256 - + pack-bitmap: prevent pattern leak on pseudo-merge re-assignment
257 - + Documentation: fix broken `sampleRate` in gitpacking(7)
258 - + pack-bitmap: reject pseudo-merge "sampleRate" of 0
259 - + pack-bitmap: parse commits in `find_pseudo_merge_group_for_ref()`
260 - + pack-bitmap: fix pseudo-merge lookup for shared commits
261 - + pack-bitmap: fix inverted binary search in `pseudo_merge_at()`
262 - + pack-bitmap-write: sort pseudo-merge commit lookup table in pack order
263 - + t5333: demonstrate various pseudo-merge bugs
264 - + t/helper: add 'test-tool bitmap write' subcommand
265 - (this branch is used by tb/bitmap-build-performance.)
266 -
267 - Fixes many bugs in pseudo-merge code.
268 - source: <cover.1778546804.git.me@ttaylorr.com>
168 +
169 +* pt/fsmonitor-linux (2026-04-15) 13 commits
170 + (merged to 'next' on 2026-05-22 at 5d99c1765d)
171 + + fsmonitor: convert shown khash to strset in do_handle_client
172 + + fsmonitor: add tests for Linux
173 + + fsmonitor: add timeout to daemon stop command
174 + + fsmonitor: close inherited file descriptors and detach in daemon
175 + + run-command: add close_fd_above_stderr option
176 + + fsmonitor: implement filesystem change listener for Linux
177 + + fsmonitor: rename fsm-settings-darwin.c to fsm-settings-unix.c
178 + + fsmonitor: rename fsm-ipc-darwin.c to fsm-ipc-unix.c
179 + + fsmonitor: use pthread_cond_timedwait for cookie wait
180 + + compat/win32: add pthread_cond_timedwait
181 + + fsmonitor: fix hashmap memory leak in fsmonitor_run_daemon
182 + + fsmonitor: fix khash memory leak in do_handle_client
183 + + t9210, t9211: disable GIT_TEST_SPLIT_INDEX for scalar clone tests
184 +
185 + The fsmonitor daemon has been implemented for Linux.
186 + cf. <xmqqa4u5nnxq.fsf@gitster.g>
187 + source: <pull.2147.v15.git.git.1776259657.gitgitgadget@gmail.com>
188 +
189 +
190 +* sa/cat-file-batch-mailmap-switch (2026-04-15) 1 commit
191 + (merged to 'next' on 2026-05-22 at 197a9bad73)
192 + + cat-file: add mailmap subcommand to --batch-command
193 +
194 + "git cat-file --batch" learns an in-line command "mailmap"
195 + that lets the user toggle use of mailmap.
196 + cf. <xmqqwlwy4v7t.fsf@gitster.g>
197 + source: <20260416033250.4327-2-siddharthasthana31@gmail.com>
198 +
199 +
200 +* sp/doc-range-diff-takes-notes (2026-05-20) 1 commit
201 + (merged to 'next' on 2026-05-22 at 020bec81b7)
202 + + Documentation/git-range-diff: add missing notes options in synopsis
203 +
204 + Docfix.
205 + source: <20260521052841.73775-1-siddh.raman.pant@oracle.com>
206 +
207 +
208 +* ta/approxidate-noon-fix (2026-05-21) 4 commits
209 + (merged to 'next' on 2026-05-25 at 2dd9ce3c54)
210 + + approxidate: use deferred mday adjustments for "specials"
211 + + approxidate: make "specials" respect fixed day-of-month
212 + + t0006: add support for approxidate test date adjustment
213 + + approxidate: make "today" wrap to midnight
214 +
215 + "Friday noon" asked in the morning on Sunday was parsed to be one
216 + day before the specified time, which has been corrected.
217 + source: <20260521105408.8222-1-taahol@utu.fi>
218 +
219 +
220 +* tc/generate-configlist-fix-for-older-ninja (2026-05-15) 1 commit
221 + (merged to 'next' on 2026-05-22 at 8322bfb8f2)
222 + + generate-configlist: collapse depfile for older Ninja
223 +
224 + Build update.
225 + source: <20260515-toon-fix-almalinux8-v3-1-b545a0647f0f@iotcl.com>
226
227 --------------------------------------------------
228 [New Topics]
229
273 -* za/completion-hide-dotfiles (2026-05-26) 1 commit
274 - - completion: hide dotfiles for selected path completion
230 +* kh/free-commit-list (2026-05-28) 2 commits
231 + (merged to 'next' on 2026-05-31 at 154f83b192)
232 + + commit: remove deprecated functions
233 + + *: replace deprecated free_commit_list
234
276 - The path completion for commands like `git rm` and `git mv`, is being
277 - updated to hide dotfiles by default, unless the user explicitly starts
278 - the path with a dot, matching standard shell-completion behavior.
235 + Code clean-up.
236 +
237 + Will merge to 'master'.
238 + source: <V2_CV_commit.h_remove_deprecated.732@msgid.xyz>
239 +
240 +
241 +* kk/streaming-walk-pqueue (2026-05-27) 3 commits
242 + - revision: use priority queue for non-limited streaming walks
243 + - revision: introduce rev_walk_mode to clarify get_revision_1()
244 + - pack-objects: call release_revisions() after cruft traversal
245 +
246 + Streaming revision walks have been optimized by using a priority queue
247 + for date-sorting commits, speeding up walks repositories with many
248 + merges.
249
250 Will merge to 'next'?
281 - source: <pull.2311.v2.git.git.1779808987825.gitgitgadget@gmail.com>
251 + source: <pull.2127.git.1779897003.gitgitgadget@gmail.com>
252 +
253 +
254 +* kk/wildmatch-windows-ls-files-prereq (2026-05-28) 1 commit
255 + - t3070: skip ls-files tests with backslash patterns on Windows
256 +
257 + In t3070-wildmatch, "via ls-files" test variants with patterns
258 + containing backslash escapes are now skipped on Windows, avoiding 36
259 + test failures caused by pathspec separator conversion.
260 +
261 + Will merge to 'next'.
262 + cf. <xmqqecivjn7k.fsf@gitster.g>
263 + source: <pull.2128.git.1779958849319.gitgitgadget@gmail.com>
264 +
265 +
266 +* sn/rebase-update-refs-symrefs (2026-05-27) 2 commits
267 + - rebase: skip branch symref aliases
268 + - t3404: add failing branch symref test
269 +
270 + "git rebase --update-refs" has been taught to resolve local branch
271 + symrefs to their referents before queuing updates. This correctly
272 + skips aliases of the current branch and avoids duplicate updates for
273 + underlying real branches, fixing failures when branch aliases (like a
274 + default branch rename) are present.
275 +
276 + Waiting for response(s) to review comment(s).
277 + cf. <xmqqwlwni7vk.fsf@gitster.g>
278 + cf. <f1b662d5-f9bb-4274-ad42-3a2227d2a060@gmail.com>
279 + source: <pull.2126.git.1779946921.gitgitgadget@gmail.com>
280 +
281 +
282 +* lp/http-fetch-pack-index-leak-fix (2026-06-01) 2 commits
283 + - http: fix memory leak in fetch_and_setup_pack_index()
284 + - http: cleanup function fetch_and_setup_pack_index()
285 +
286 + A memory leak in `fetch_and_setup_pack_index()` when verification of
287 + the downloaded pack index fails has been plugged. Also an obsolete
288 + `unlink()` call on parse failure has been cleaned up.
289 +
290 + Will merge to 'next'.
291 + cf. <20260529053659.GC1099450@coredump.intra.peff.net>
292 + source: <cover.1780321770.git.lorenzo.pegorari2002@gmail.com>
293 +
294 +
295 +* jk/describe-contains-all-match-fix (2026-06-01) 1 commit
296 + - describe: fix --exclude, --match with --contains and --all
297 +
298 + The 'git describe --contains --all' command has been fixed to
299 + properly honor the '--match' and '--exclude' options by passing
300 + them down to 'git name-rev' with the appropriate reference
301 + prefixes.
302 +
303 + Will merge to 'next'?
304 + source: <20260601233727.43558-1-jacob.e.keller@intel.com>
305 +
306 +
307 +* wy/docs-typofixes (2026-05-29) 1 commit
308 + - docs: fix typos and grammar
309 +
310 + Various typos, grammatical errors, and duplicated words in both
311 + documentation and code comments have been corrected.
312 +
313 + Waiting for response(s) to review comment(s).
314 + cf. <xmqq8q8x3nox.fsf@gitster.g>
315 + source: <7b502e20e9495cd4720496bd6738a1fbeb453410.1780041658.git.wy@wyuan.org>
316 +
317 +
318 +* ab/index-pack-retain-child-bases (2026-06-01) 1 commit
319 + - index-pack: retain child bases in delta cache
320 +
321 + "git index-pack" has been optimized by retaining child bases in the
322 + delta cache instead of immediately freeing them, letting the existing
323 + cache limit policy decide eviction.
324 +
325 + Comments?
326 + cf. <4882be43-9bc5-48cf-b74c-4a05453b2fef@gmail.com>
327 + cf. <20260602064519.GD695568@coredump.intra.peff.net>
328 + source: <pull.2131.v2.git.1780330402264.gitgitgadget@gmail.com>
329 +
330 +
331 +* hn/macos-linker-warning (2026-06-02) 1 commit
332 + - config.mak.uname: avoid macOS linker warning on Xcode 16.3+
333 +
334 + A linker warning on macOS when building with Xcode 16.3 or newer has
335 + been avoided by passing -fno-common to the compiler when a
336 + sufficiently new linker is detected.
337 +
338 + Will merge to 'next'.
339 + source: <pull.2313.v3.git.git.1780385878555.gitgitgadget@gmail.com>
340 +
341 +
342 +* mm/diff-process-hunks (2026-05-29) 6 commits
343 + - blame: consult diff process for no-hunk detection
344 + - diff: bypass diff process with --no-ext-diff and in format-patch
345 + - diff: add long-running diff process via diff.<driver>.process
346 + - sub-process: separate process lifecycle from hashmap management
347 + - userdiff: add diff.<driver>.process config
348 + - xdiff: support external hunks via xpparam_t
349 +
350 + A new `diff.<driver>.process` configuration has been introduced to
351 + allow a long-running external process to act as a hunk provider to
352 + allows external tools to control which lines Git considers changed
353 + while leaving all output formatting (word diff, color, blame, etc.) to
354 + Git's standard pipeline.
355 +
356 + Breaks CI.
357 + cf. <xmqq5x43dfk4.fsf@gitster.g>
358 + source: <pull.2120.v3.git.1780087700.gitgitgadget@gmail.com>
359 +
360 +
361 +* tb/pack-path-walk-bitmap-delta-islands (2026-05-27) 4 commits
362 + - pack-objects: support `--delta-islands` with `--path-walk`
363 + - pack-objects: extract `record_tree_depth()` helper
364 + - pack-objects: support reachability bitmaps with `--path-walk`
365 + - Merge branch 'ds/path-walk-filters' into tb/pack-path-walk-bitmap-delta-islands
366 +
367 + The pack-objects command now supports using reachability bitmaps and
368 + delta-islands concurrently with the `--path-walk` option, allowing
369 + faster packaging by falling back to path-walk when bitmaps cannot
370 + fully satisfy the request.
371 +
372 + Expecting a reroll.
373 + cf. <ahoRQZX6OXYKPCmd@nand.local>
374 + source: <cover.1779923907.git.me@ttaylorr.com>
375 +
376 +
377 +* ty/migrate-trust-executable-bit (2026-05-30) 4 commits
378 + - read-cache: pass 'istate' to stat/mode helper functions
379 + - environment: move 'trust_executable_bit' into repo_config_values
380 + - read-cache: move 'ce_mode_from_stat()' to 'read-cache.c'
381 + - read-cache: remove redundant extern declarations
382 +
383 + The 'trust_executable_bit' (coming from 'core.filemode'
384 + configuration) has been migrated into 'repo_config_values' to tie it
385 + to a specific repository instance.
386 +
387 + Waiting for response(s) to review comment(s).
388 + cf. <CAP8UFD1GJ=caPh-M97KLCfB1ZKtpomzosYN0uYBOnay+G23GcA@mail.gmail.com>
389 + cf. <CAP8UFD20yij=1ZEYnR74DoCJ3g=b39yOsUxZecYuuf7nFGaKyA@mail.gmail.com>
390 + source: <20260530160520.77859-1-cat@malon.dev>
391 +
392 +
393 +* ak/typofixes (2026-05-31) 2 commits
394 + - SQUASH???
395 + - doc: fix typos via codespell
396 +
397 + Typofixes.
398 +
399 + Waiting for response(s) to review comment(s).
400 + cf. <xmqqo6hv9i1w.fsf@gitster.g>
401 + source: <20260531184428.55905-1-algonell@gmail.com>
402 +
403 +
404 +* kk/prio-queue-cascade-sift (2026-06-01) 1 commit
405 + - prio-queue: use cascade-down for faster extract-min
406 +
407 + prio_queue_get() has been optimized by using a cascade-down approach
408 + (promoting the smaller child at each level and sifting up the last
409 + element from the leaf vacancy), which halves the number of comparisons
410 + per extract-min operation in the common case.
411 +
412 + Comments?
413 + source: <pull.2132.v2.git.1780301856444.gitgitgadget@gmail.com>
414 +
415 +
416 +* mm/subprocess-handshake-fix (2026-06-01) 1 commit
417 + - sub-process: use gentle handshake to avoid die() on startup failure
418 +
419 + The subprocess handshake during startup has been made gentler by using
420 + packet_read_line_gently() instead of packet_read_line() to prevent the
421 + parent Git process from dying abruptly when a configured subprocess
422 + (e.g., a clean/smudge filter) fails to start.
423 +
424 + Will merge to 'next'?
425 + source: <pull.2133.v2.git.1780348848489.gitgitgadget@gmail.com>
426 +
427 +
428 +* jk/repo-info-path-keys (2026-06-01) 4 commits
429 + - repo: add path.commondir with absolute and relative suffix formatting
430 + - repo: add path.gitdir with absolute and relative suffix formatting
431 + - rev-parse: use strbuf_add_path for path formatting
432 + - path: add strbuf_add_path for formatting paths
433 +
434 + The "git repo info" command has been taught new keys to output both
435 + absolute and relative paths for "gitdir" and "commondir", supported by
436 + a new path-formatting helper extracted from "git rev-parse".
437 + source: <20260601151950.30686-1-jayatheerthkulkarni2005@gmail.com>
438 +
439 +
440 +* ps/history-drop (2026-06-01) 2 commits
441 + - builtin/history: implement "drop" subcommand
442 + - builtin/history: split handling of ref updates into two phases
443 +
444 + The experimental "git history" command has been taught a new "drop"
445 + subcommand to remove a commit and replay its descendants onto its
446 + parent.
447 +
448 + Waiting for response(s) to review comment(s).
449 + cf. <xmqqbjdt25e3.fsf@gitster.g>
450 + source: <20260601-b4-pks-history-drop-v1-0-643e32340d55@pks.im>
451 +
452 +
453 +* ls/doc-raw-timestamp-prefix (2026-06-02) 1 commit
454 + - doc: document and test `@` prefix for raw timestamps
455 +
456 + Documentation and tests have been added to clarify that Git's internal
457 + raw timestamp format requires a `@` prefix for values less than
458 + 100,000,000 to prevent ambiguity with other formats like YYYYMMDD.
459 +
460 + Will merge to 'next'?
461 + cf. <xmqqmrxdxq1r.fsf@gitster.g>
462 + source: <20260602081924.673763-2-dev@luna.gl>
463 +
464 +
465 +* jk/setup-gitfile-diag-fix (2026-06-01) 1 commit
466 + - read_gitfile_gently(): return non-repo path on error
467 +
468 + A regression in the error diagnosis code for invalid .git files has
469 + been fixed, avoiding a potential NULL-pointer crash when reporting
470 + that a .git file does not point to a valid repository.
471 +
472 + Comments?
473 + source: <20260602061159.GA693928@coredump.intra.peff.net>
474 +
475 +
476 +* wy/typofixes (2026-05-29) 1 commit
477 + - docs: fix typos and grammar
478 +
479 + Typofixes.
480 + source: <7b502e20e9495cd4720496bd6738a1fbeb453410.1780041658.git.wy@wyuan.org>
481 +
482 +
483 +* jc/submitting-patches-cover-letter (2026-06-02) 2 commits
484 + - SubmittingPatches: describe cover letter
485 + - SubmittingPatches: separate typofixes section
486 +
487 + Guidelines on how to write a cover letter for a multi-patch series
488 + have been added to SubmittingPatches, which also got a new marker
489 + to separate the section for typofixes.
490 +
491 + Comments?
492 + source: <20260602090808.87837-1-gitster@pobox.com>
493 +
494 +
495 +* ps/t7527-fix-tap-output (2026-06-02) 4 commits
496 + - t: let prove fail when parsing invalid TAP output
497 + - t/lib-git-p4: silence output when killing p4d and its watchdog
498 + - t/test-lib: silence EBUSY errors on Windows during test cleanup
499 + - t7527: fix broken TAP output
500 +
501 + A recent regression in t7527 that broke TAP output has been fixed,
502 + some other test noise that also broke TAP output has been silenced,
503 + and 'prove' is now configured to fail on invalid TAP output to
504 + prevent future regressions.
505 +
506 + Waiting for response(s) to review comment(s).
507 + cf. <xmqqecipxp6g.fsf@gitster.g>
508 + source: <20260602-pks-t7527-fix-tap-output-v1-0-db3da2a1b137@pks.im>
509 +
510 +--------------------------------------------------
511 +[Stalled]
512 +
513 +* jd/unpack-trees-wo-the-repository (2026-03-31) 2 commits
514 + - unpack-trees: use repository from index instead of global
515 + - unpack-trees: use repository from index instead of global
516 +
517 + A handful of inappropriate uses of the_repository have been
518 + rewritten to use the right repository structure instance in the
519 + unpack-trees.c codepath.
520 +
521 + Waiting for response(s) to review comment(s) for too long, consider discarding.
522 + cf. <xmqqldf7y95a.fsf@gitster.g>
523 + source: <pull.2258.v2.git.git.1774971267.gitgitgadget@gmail.com>
524 +
525 +
526 +* cs/subtree-split-recursion (2026-03-05) 3 commits
527 + - contrib/subtree: reduce recursion during split
528 + - contrib/subtree: functionalize split traversal
529 + - contrib/subtree: reduce function side-effects
530 +
531 + When processing large history graphs on Debian or Ubuntu, "git
532 + subtree" can die with a "recursion depth reached" error.
533 +
534 + Waiting for response(s) to review comment(s) for too long, consider discarding.
535 + cf. <xmqqv7c13o5l.fsf@gitster.g>
536 + source: <20260305-cs-subtree-split-recursion-v2-0-7266be870ba9@howdoi.land>
537
538 --------------------------------------------------
539 [Cooking]
540
286 -* kk/fetch-store-ref-optimization (2026-05-24) 1 commit
287 - - fetch: pass transport to post-fetch connectivity check
541 +* ob/more-repo-config-values (2026-06-01) 8 commits
542 + - environment: move "warn_on_object_refname_ambiguity" into `struct repo_config_values`
543 + - environment: move "sparse_expect_files_outside_of_patterns" into `repo_config_values`
544 + - environment: move "core_sparse_checkout_cone" into `struct repo_config_values`
545 + - environment: move "precomposed_unicode" into `struct repo_config_values`
546 + - environment: move "pack_compression_level" into `struct repo_config_values`
547 + - environment: move `zlib_compression_level` into `struct repo_config_values`
548 + - environment: move "check_stat" into `struct repo_config_values`
549 + - environment: move "trust_ctime" into `struct repo_config_values`
550
289 - When fetching from a transport that provides a self-contained pack,
290 - pass the transport pointer to the post-fetch `check_connected()` call
291 - to optimize connectivity check.
551 + Many core configuration variables have been migrated from global
552 + variables into 'repo_config_values' to tie them to a specific
553 + repository instance, avoiding cross-repository state leakage.
554
293 - Will merge to 'next'?
294 - source: <pull.2123.git.1779625693328.gitgitgadget@gmail.com>
555 + Waiting for response(s) to review comment(s).
556 + cf. <xmqqtsrlztzu.fsf@gitster.g>
557 + source: <20260601154211.82370-1-belkid98@gmail.com>
558 +
559 +
560 +* kh/doc-trailers (2026-04-13) 9 commits
561 + - doc: interpret-trailers: document comment line treatment
562 + - doc: interpret-trailers: commit to “trailer block” term
563 + - doc: interpret-trailers: add key format example
564 + - doc: interpret-trailers: explain key format
565 + - doc: interpret-trailers: explain the format after the intro
566 + - doc: interpret-trailers: not just for commit messages
567 + - doc: interpret-trailers: use “metadata” in Name as well
568 + - doc: interpret-trailers: replace “lines” with “metadata”
569 + - doc: interpret-trailers: stop fixating on RFC 822
570 +
571 + Documentation updates.
572 +
573 + Expecting a reroll.
574 + cf. <5508ee49-2f78-4c3a-accf-a2350666bfb8@app.fastmail.com>
575 + source: <V2_CV_doc_int-tr_key_format.613@msgid.xyz>
576 +
577 +
578 +* za/completion-hide-dotfiles (2026-05-26) 1 commit
579 + - completion: hide dotfiles for selected path completion
580 +
581 + The path completion for commands like `git rm` and `git mv`, is being
582 + updated to hide dotfiles by default, unless the user explicitly starts
583 + the path with a dot, matching standard shell-completion behavior.
584 +
585 + Comments?
586 + cf. <xmqqqzmxlep3.fsf@gitster.g>
587 + source: <pull.2311.v2.git.git.1779808987825.gitgitgadget@gmail.com>
588
589
590 * ds/restore-sparse-index (2026-05-26) 2 commits
298 - - restore: avoid sparse index expansion
299 - - t1092: test 'git restore' with sparse index
591 + (merged to 'next' on 2026-05-31 at e85a961bc7)
592 + + restore: avoid sparse index expansion
593 + + t1092: test 'git restore' with sparse index
594
595 'git restore --staged' has been optimized to avoid unnecessarily expanding
596 the sparse index when operating on paths within the sparse checkout
597 definition, by handling sparse directory entries at the tree level.
598
305 - Will merge to 'next'.
599 + Will merge to 'master'.
600 source: <pull.2121.v2.git.1779827195.gitgitgadget@gmail.com>
601
602
603 * kk/commit-reach-optim (2026-05-25) 3 commits
310 - - commit-reach: replace queue_has_nonstale() scan with O(1) tracking
311 - - commit-reach: deduplicate queue entries in paint_down_to_common
312 - - object.h: fix stale entries in object flag allocation table
604 + (merged to 'next' on 2026-05-31 at eeb8d0c207)
605 + + commit-reach: replace queue_has_nonstale() scan with O(1) tracking
606 + + commit-reach: deduplicate queue entries in paint_down_to_common
607 + + object.h: fix stale entries in object flag allocation table
608
609 The check for non-stale commits in the priority queue used by
610 `paint_down_to_common` and `ahead_behind` has been optimized by
611 replacing an O(N) scan with an O(1) counter, yielding performance
612 improvements in repositories with wide histories.
613
319 - Will merge to 'next'?
614 + Will merge to 'master'.
615 + cf. <xmqqzf1ncded.fsf@gitster.g>
616 source: <pull.2124.v2.git.1779719286.gitgitgadget@gmail.com>
617
618
@@ -334,23 +630,26 @@ Release tarballs are available at:
630
631
632 * ib/doc-push-default-simple (2026-05-25) 1 commit
337 - - doc: clarify push.default=simple behavior
633 + (merged to 'next' on 2026-06-02 at 5c1ff2a769)
634 + + doc: clarify push.default=simple behavior
635
636 The documentation for `push.default = simple` has been clarified to
637 better explain its behavior, making it clear that it pushes the
638 current branch to a same-named branch on the remote, and detailing
639 the upstream requirements for centralized workflows.
640
344 - Comments?
641 + Will merge to 'master'.
642 + cf. <pull.2115.v2.git.1779767888508.gitgitgadget@gmail.com>
643 source: <pull.2115.v2.git.1779767888508.gitgitgadget@gmail.com>
644
645
646 * jc/doc-monitor-ghci (2026-05-24) 1 commit
349 - - SubmittingPatches: proactively monitor GHCI pages
647 + (merged to 'next' on 2026-06-02 at 46fb5fe1c2)
648 + + SubmittingPatches: proactively monitor GHCI pages
649
650 Encourage original authors to monitor the CI status.
651
353 - Will merge to 'next'?
652 + Will merge to 'master'.
653 source: <xmqq1pf0gpp3.fsf@gitster.g>
654
655
@@ -366,26 +665,18 @@ Release tarballs are available at:
665
666
667 * gh/jump-auto-mode (2026-05-21) 1 commit
369 - - git-jump: pick a mode automatically when invoked without arguments
668 + (merged to 'next' on 2026-06-02 at f70dd05c9c)
669 + + git-jump: pick a mode automatically when invoked without arguments
670
671 The 'git-jump' command (in contrib/) has been taught to automatically
672 pick a mode (merge, diff, or ws) when invoked without arguments.
673
374 - Comments?
375 - source: <pull.2108.v3.git.1779371110195.gitgitgadget@gmail.com>
376 -
377 -
378 -* sp/doc-range-diff-takes-notes (2026-05-20) 1 commit
379 - (merged to 'next' on 2026-05-22 at 020bec81b7)
380 - + Documentation/git-range-diff: add missing notes options in synopsis
381 -
382 - Docfix.
383 -
674 Will merge to 'master'.
385 - source: <20260521052841.73775-1-siddh.raman.pant@oracle.com>
675 + cf. <20260522052821.GC861761@coredump.intra.peff.net>
676 + source: <pull.2108.v3.git.1779371110195.gitgitgadget@gmail.com>
677
678
388 -* ps/odb-source-loose (2026-05-21) 19 commits
679 +* ps/odb-source-loose (2026-06-01) 19 commits
680 - odb/source-loose: drop pointer to the "files" source
681 - odb/source-loose: stub out remaining callbacks
682 - odb/source-loose: wire up `write_object_stream()` callback
@@ -409,8 +700,8 @@ Release tarballs are available at:
700 The loose object source has been refactored into a proper `struct
701 odb_source`.
702
412 - Comments?
413 - source: <20260521-b4-pks-odb-source-loose-v1-0-6553b399be2d@pks.im>
703 + Will merge to 'next'.
704 + source: <20260601-b4-pks-odb-source-loose-v2-0-90ff159430af@pks.im>
705
706
707 * ps/setup-centralize-odb-creation (2026-05-25) 9 commits
@@ -432,31 +723,6 @@ Release tarballs are available at:
723 source: <20260526-b4-pks-setup-centralize-odb-creation-v2-0-2fa5b385c13e@pks.im>
724
725
435 -* ps/gitlab-ci-macOS-improvements (2026-05-21) 2 commits
436 - (merged to 'next' on 2026-05-22 at aaa3c7021e)
437 - + gitlab-ci: update macOS image
438 - + gitlab-ci: upgrade macOS runners
439 -
440 - Update GitLab CI jobs that exercise macOS.
441 -
442 - Will merge to 'master'.
443 - source: <20260521-b4-pks-gitlab-ci-updates-v1-0-53bb46ed33e0@pks.im>
444 -
445 -
446 -* kh/doc-hook (2026-05-21) 4 commits
447 - (merged to 'next' on 2026-05-25 at 5e41d13adf)
448 - + doc: hook: don’t self-link via config include
449 - + doc: config: include existing git-hook(1) section
450 - + doc: hook: consistently capitalize Git
451 - + doc: hook: remove stray backtick
452 -
453 - Doc updates.
454 -
455 - Will merge to 'master'.
456 - cf. <2832179.mvXUDI8C0e@piment-oiseau>
457 - source: <CV_doc_hook.6f0@msgid.xyz>
458 -
459 -
726 * kh/doc-replay-config (2026-05-21) 4 commits
727 - doc: replay: move “default” to the right-hand-side
728 - doc: replay: use a nested definition list
@@ -466,58 +732,35 @@ Release tarballs are available at:
732 Doc update for "git replay" to actually refer to its configuration
733 variables.
734
469 - Comments?
470 - source: <CV_doc_replay_config.709@msgid.xyz>
471 -
472 -
473 -* jk/commit-graph-lazy-load-fallback (2026-05-18) 1 commit
474 - (merged to 'next' on 2026-05-22 at d1188df466)
475 - + commit: fall back to full read when maybe_tree is NULL
476 -
477 - The logic to lazy-load trees from the commit-graph has been made
478 - more robust by falling back to reading the commit object when
479 - the commit-graph is no longer available.
480 -
481 - Will merge to 'master'.
482 - source: <20260519061534.GA1709881@coredump.intra.peff.net>
483 -
484 -
485 -* jk/connect-service-enum (2026-05-21) 2 commits
486 - (merged to 'next' on 2026-05-24 at 293561cbc5)
487 - + transport-helper: fix typo in BUG() message
488 - (merged to 'next' on 2026-05-21 at fd80c61e21)
489 - + connect: use "service" enum for "name" argument
490 -
491 - The "name" argument in git_connect() and related functions has been
492 - converted to a "service" enum to improve type safety and clarify its
493 - purpose.
494 -
495 - Will merge to 'master'.
496 - source: <20260519052219.GA1703179@coredump.intra.peff.net>
497 - source: <20260522044352.GA861761@coredump.intra.peff.net>
735 + Will merge to 'next'.
736 + cf. <xmqqpl2ced7d.fsf@gitster.g>
737 + source: <CV_doc_replay_config.709@msgid.xyz>
738
739
740 * aj/stash-patch-optimize-temporary-index (2026-05-22) 1 commit
501 - - stash: reuse cached index entries in --patch temporary index
741 + (merged to 'next' on 2026-05-31 at d1b1dd94f5)
742 + + stash: reuse cached index entries in --patch temporary index
743
744 "git stash -p" has been optimized by reusing cached index
745 entries in its temporary index, avoiding unnecessary lstat()
746 calls on unchanged files.
747
507 - Will merge to 'next'?
748 + Will merge to 'master'.
749 + cf. <xmqqse7m6deh.fsf@gitster.g>
750 source: <pull.2306.v2.git.git.1779491545531.gitgitgadget@gmail.com>
751
752
511 -* tb/bitmap-build-performance (2026-05-19) 9 commits
512 - - pack-bitmap: build pseudo-merge bitmaps after regular bitmaps
513 - - pack-bitmap: remember pseudo-merge parents
514 - - pack-bitmap: sort bitmaps before XORing
515 - - pack-bitmap: cache object positions during fill
516 - - pack-bitmap: consolidate `find_object_pos()` success path
517 - - pack-bitmap: reuse stored selected bitmaps
518 - - pack-bitmap: check subtree bits before recursing
519 - - pack-bitmap: pass object position to `fill_bitmap_tree()`
520 - - Merge branch 'tb/pseudo-merge-bugfixes' into tb/bitmap-build-performance
753 +* tb/bitmap-build-performance (2026-05-27) 9 commits
754 + (merged to 'next' on 2026-06-02 at d1a84a996a)
755 + + pack-bitmap: build pseudo-merge bitmaps after regular bitmaps
756 + + pack-bitmap: remember pseudo-merge parents
757 + + pack-bitmap: sort bitmaps before XORing
758 + + pack-bitmap: cache object positions during fill
759 + + pack-bitmap: consolidate `find_object_pos()` success path
760 + + pack-bitmap: reuse stored selected bitmaps
761 + + pack-bitmap: check subtree bits before recursing
762 + + pack-bitmap: pass object position to `fill_bitmap_tree()`
763 + + Merge branch 'tb/pseudo-merge-bugfixes' into tb/bitmap-build-performance
764
765 Reachability bitmap generation has been significantly optimized. By
766 reordering tree traversal, caching object positions, and refining how
@@ -525,8 +768,9 @@ Release tarballs are available at:
768 --write-midx-bitmaps" is improved, especially for large repositories
769 and when using pseudo-merges.
770
528 - Comments?
529 - source: <cover.1779207127.git.me@ttaylorr.com>
771 + Will merge to 'master'.
772 + cf. <20260529083439.GD1106035@coredump.intra.peff.net>
773 + source: <cover.1779911733.git.me@ttaylorr.com>
774
775
776 * hn/status-pull-advice-qualified (2026-05-21) 1 commit
@@ -541,119 +785,69 @@ Release tarballs are available at:
785
786
787 * rs/strbuf-add-uint (2026-05-12) 4 commits
544 - - ls-tree: use strbuf_add_uint()
545 - - ls-files: use strbuf_add_uint()
546 - - cat-file: use strbuf_add_uint()
547 - - strbuf: add strbuf_add_uint()
788 + (merged to 'next' on 2026-06-02 at f5be02d8ec)
789 + + ls-tree: use strbuf_add_uint()
790 + + ls-files: use strbuf_add_uint()
791 + + cat-file: use strbuf_add_uint()
792 + + strbuf: add strbuf_add_uint()
793
794 Adding a decimal integer with strbuf_addf("%u") appears commonly;
795 they have been optimized by using a custom formatter.
796
552 - Comments?
553 - source: <20260512115603.80780-1-l.s.r@web.de>
554 -
555 -
556 -* ta/approxidate-noon-fix (2026-05-21) 4 commits
557 - (merged to 'next' on 2026-05-25 at 2dd9ce3c54)
558 - + approxidate: use deferred mday adjustments for "specials"
559 - + approxidate: make "specials" respect fixed day-of-month
560 - + t0006: add support for approxidate test date adjustment
561 - + approxidate: make "today" wrap to midnight
562 -
563 - "Friday noon" asked in the morning on Sunday was parsed to be one
564 - day before the specified time, which has been corrected.
565 -
797 Will merge to 'master'.
567 - source: <20260521105408.8222-1-taahol@utu.fi>
798 + cf. <20260512184619.GD70851@coredump.intra.peff.net>
799 + source: <20260512115603.80780-1-l.s.r@web.de>
800
801
570 -* mm/doc-word-diff (2026-05-13) 1 commit
802 +* mm/doc-word-diff (2026-05-28) 1 commit
803 - doc: clarify that --word-diff operates on line-level hunks
804
805 The documentation for "--word-diff" has been extended with a bit of
806 implementation detail of where these different words come from.
807
576 - Comments?
577 - source: <pull.2113.git.1778686956622.gitgitgadget@gmail.com>
808 + Will merge to 'next'.
809 + source: <pull.2113.v2.git.1779996106005.gitgitgadget@gmail.com>
810
811
812 * rs/strbuf-add-oid-hex (2026-05-13) 1 commit
581 - - hex: add and use strbuf_add_oid_hex()
813 + (merged to 'next' on 2026-06-02 at 4876f95de0)
814 + + hex: add and use strbuf_add_oid_hex()
815
816 Formatting object name in full hexadecimal form has been optimized
817 by using a new strbuf_add_oid_hex() helper function.
818
586 - Comments?
587 - source: <183aa0fd-d455-4ec9-9c42-d511fac8b3e4@web.de>
588 -
589 -
590 -* ed/check-connected-close-err-fd (2026-05-16) 1 commit
591 - (merged to 'next' on 2026-05-22 at 00d592399e)
592 - + Merge branch 'ed/check-connected-close-err-fd-2.53' into ed/check-connected-close-err-fd
593 - (this branch uses ed/check-connected-close-err-fd-2.53.)
594 -
595 - File descriptor leak fix.
596 -
597 - Will merge to 'master'.
598 - (this branch uses ed/check-connected-close-err-fd-2.53.)
599 -
600 -
601 -* ed/check-connected-close-err-fd-2.53 (2026-05-14) 1 commit
602 - (merged to 'next' on 2026-05-22 at 1017d0e022)
603 - + connected: close err_fd in promisor fast-path
604 - (this branch is used by ed/check-connected-close-err-fd.)
605 -
606 - File descriptor leak fix (for 2.54 maintenance track).
607 -
608 - Will merge to 'master'.
609 - source: <pull.2303.git.git.1778827194448.gitgitgadget@gmail.com>
610 -
611 -
612 -* kk/tips-reachable-from-bases-optim (2026-05-16) 2 commits
613 - (merged to 'next' on 2026-05-22 at 87d6b8e666)
614 - + t6600: add tests for duplicate tips in tips_reachable_from_bases()
615 - + commit-reach: use object flags for tips_reachable_from_bases()
616 -
617 - Revision traversal optimization.
618 -
619 - Will merge to 'master'.
620 - source: <pull.2116.v3.git.1778947182.gitgitgadget@gmail.com>
621 -
622 -
623 -* tc/generate-configlist-fix-for-older-ninja (2026-05-15) 1 commit
624 - (merged to 'next' on 2026-05-22 at 8322bfb8f2)
625 - + generate-configlist: collapse depfile for older Ninja
626 -
627 - Build update.
628 -
819 Will merge to 'master'.
630 - source: <20260515-toon-fix-almalinux8-v3-1-b545a0647f0f@iotcl.com>
820 + cf. <20260513160155.GA103037@coredump.intra.peff.net>
821 + source: <183aa0fd-d455-4ec9-9c42-d511fac8b3e4@web.de>
822
823
633 -* hn/config-typo-advice (2026-05-25) 1 commit
634 - - config: suggest the correct form when key contains "=" in set context
824 +* hn/config-typo-advice (2026-05-26) 1 commit
825 + - config: improve diagnostic for "set" with missing value
826
827 "git config foo.bar=baz" is not likely to be a request to read the
828 value of such a variable with '=' in its name; rather it is plausible
829 that the user meant "git config set foo.bar baz". Give advice when
830 giving an error message.
831
641 - Comments?
642 - source: <pull.2302.v3.git.git.1779697995418.gitgitgadget@gmail.com>
832 + Waiting for response(s) to review comment(s).
833 + cf. <xmqq33z524yh.fsf@gitster.g>
834 + source: <pull.2302.v4.git.git.1779823288005.gitgitgadget@gmail.com>
835
836
837 * ja/doc-synopsis-style-again (2026-05-25) 6 commits
646 - - doc: convert git-imap-send synopsis and options to new style
647 - - doc: convert git-apply synopsis and options to new style
648 - - doc: convert git-am synopsis and options to new style
649 - - doc: convert git-grep synopsis and options to new style
650 - - doc: git bisect: clarify the usage of the synopsis vs actual command
651 - - doc: convert git-bisect to synopsis style
838 + (merged to 'next' on 2026-05-31 at cc4fe82d87)
839 + + doc: convert git-imap-send synopsis and options to new style
840 + + doc: convert git-apply synopsis and options to new style
841 + + doc: convert git-am synopsis and options to new style
842 + + doc: convert git-grep synopsis and options to new style
843 + + doc: git bisect: clarify the usage of the synopsis vs actual command
844 + + doc: convert git-bisect to synopsis style
845
846 A batch of documentation pages has been updated to use the modern
847 synopsis style.
848
656 - Will merge to 'next'?
849 + Will merge to 'master'.
850 + cf. <pull.2117.v2.git.1779704908.gitgitgadget@gmail.com>
851 source: <pull.2117.v2.git.1779704908.gitgitgadget@gmail.com>
852
853
@@ -664,8 +858,8 @@ Release tarballs are available at:
858 failures when multiple processes attempt to update the configuration
859 simultaneously.
860
667 - Comments?
668 - cf. <xmqqzf1xbl4i.fsf@gitster.g>
861 + Waiting for response(s) to review comment(s).
862 + cf. <agrIrGwSMFlKTx9x@pks.im>
863 source: <20260517132111.1014901-1-joerg@thalheim.io>
864
865
@@ -685,35 +879,18 @@ Release tarballs are available at:
879 source: <pull.2285.v11.git.git.1779449498.gitgitgadget@gmail.com>
880
881
688 -* st/daemon-sockaddr-fixes (2026-05-14) 3 commits
882 +* st/daemon-sockaddr-fixes (2026-05-27) 3 commits
883 - daemon: guard NULL REMOTE_PORT in execute() logging
884 - daemon: fix IPv6 address truncation in ip2str()
885 - daemon: fix IPv6 address corruption in lookup_hostname()
886
887 Correct use of sockaddr API in "git daemon".
888
695 - Waiting for response(s) to review comment(s).
696 - cf. <agGLRC1ziF5F8Okh@pks.im>
697 - source: <pull.2300.git.git.1778773592.gitgitgadget@gmail.com>
698 -
699 -
700 -* ob/more-repo-config-values (2026-04-23) 8 commits
701 - - env: move "warn_on_object_refname_ambiguity" into `struct repo_config_values`
702 - - env: move "sparse_expect_files_outside_of_patterns" into `repo_config_values`
703 - - env: move "core_sparse_checkout_cone" into `struct repo_config_values`
704 - - environment: move "precomposed_unicode" into `struct repo_config_values`
705 - - environment: move "pack_compression_level" into `struct repo_config_values`
706 - - environment: move `zlib_compression_level` into `struct repo_config_values`
707 - - environment: move "check_stat" into `struct repo_config_values`
708 - - environment: move "trust_ctime" into `struct repo_config_values`
709 -
710 - Expecting a reroll.
711 - cf. <CAD=f0L8-_3sDGGkCzF4WA0xmUtaY_qiz__3zq5AemLgwTsqvsg@mail.gmail.com>
712 - cf. <xmqqlddqu013.fsf@gitster.g>
713 - source: <20260423165432.143598-1-belkid98@gmail.com>
889 + Will merge to 'next'.
890 + source: <pull.2300.v3.git.git.1779937016.gitgitgadget@gmail.com>
891
892
716 -* cc/promisor-auto-config-url-more (2026-05-19) 9 commits
893 +* cc/promisor-auto-config-url-more (2026-05-27) 8 commits
894 - doc: promisor: improve acceptFromServer entry
895 - promisor-remote: auto-configure unknown remotes
896 - promisor-remote: trust known remotes matching acceptFromServerUrl
@@ -722,7 +899,6 @@ Release tarballs are available at:
899 - urlmatch: add url_normalize_pattern() helper
900 - urlmatch: change 'allow_globs' arg to bool
901 - t5710: simplify 'mkdir X' followed by 'git -C X init'
725 - - Merge branch 'cc/promisor-auto-config-url' into cc/promisor-auto-config-url-more
902
903 The handling of promisor-remote protocol capability has been
904 loosened to allow the other side to add to the list of promisor
@@ -730,7 +906,7 @@ Release tarballs are available at:
906 variable.
907
908 Comments?
733 - source: <20260519153808.494105-1-christian.couder@gmail.com>
909 + source: <20260527140820.1438165-1-christian.couder@gmail.com>
910
911
912 * hn/checkout-track-fetch (2026-05-23) 2 commits
@@ -750,11 +926,12 @@ Release tarballs are available at:
926 "git rev-list" (and "git log" family of commands) learned a new "--max-count-oldest"
927 that picks oldest N commits in the range instead of the usual newest.
928
753 - Comments?
929 + Waiting for response(s) to review comment(s).
930 + cf. <xmqq7boy4o05.fsf@gitster.g>
931 source: <8210d60832b9a58aa4d71fc3790e44d8989564ce.1779152064.git.mroik@delayed.space>
932
933
757 -* mm/line-log-cleanup (2026-05-25) 3 commits
934 +* mm/line-log-cleanup (2026-05-28) 3 commits
935 - line-log: allow non-patch diff formats with -L
936 - line-log: integrate -L output with the standard log-tree pipeline
937 - revision: move -L setup before output_format-to-diff derivation
@@ -764,32 +941,9 @@ Release tarballs are available at:
941 work as expected. Additionally, metadata-only diff formats like
942 --raw and --name-only are now supported with -L.
943
767 - Will merge to 'next'?
768 - source: <pull.2120.v2.git.1779733799.gitgitgadget@gmail.com>
769 -
770 -
771 -* ds/path-walk-filters (2026-05-22) 14 commits
772 - (merged to 'next' on 2026-05-25 at eccb829b10)
773 - + path-walk: support `combine` filter
774 - + path-walk: support `object:type` filter
775 - + path-walk: support `tree:0` filter
776 - + t6601: tag otherwise-unreachable trees
777 - + pack-objects: support sparse:oid filter with path-walk
778 - + path-walk: add pl_sparse_trees to control tree pruning
779 - + path-walk: support blob size limit filter
780 - + backfill: die on incompatible filter options
781 - + path-walk: support blobless filter
782 - + path-walk: always emit directly-requested objects
783 - + t/perf: add pack-objects filter and path-walk benchmark
784 - + pack-objects: pass --objects with --path-walk
785 - + t5620: make test work with path-walk var
786 - + Merge branch 'en/backfill-fixes-and-edges' into ds/path-walk-filters
787 -
788 - The "git pack-objects --path-walk" traversal has been integrated
789 - with several object filters, including blobless and sparse filters.
790 -
791 - Will merge to 'master'.
792 - source: <pull.2101.v5.git.1779474277.gitgitgadget@gmail.com>
944 + Will merge to 'next'.
945 + cf. <B59BA5B1-184D-48A8-8BAD-11EB6F8EB50C@gmail.com>
946 + source: <pull.2094.v3.git.1780001267.gitgitgadget@gmail.com>
947
948
949 * en/ort-harden-against-corrupt-trees (2026-04-20) 5 commits
@@ -802,7 +956,8 @@ Release tarballs are available at:
956 "ort" merge backend handles merging corrupt trees better by
957 aborting when it should.
958
805 - Needs review.
959 + Waiting for response(s) to review comment(s).
960 + cf. <xmqqldcy4f07.fsf@gitster.g>
961 source: <pull.2096.git.1776731171.gitgitgadget@gmail.com>
962
963
@@ -814,7 +969,8 @@ Release tarballs are available at:
969 improved to correctly abbreviate object IDs for more commands and
970 avoid misinterpreting refs as object IDs.
971
817 - Needs review.
972 + Waiting for response(s) to review comment(s).
973 + cf. <xmqqbjdwcsno.fsf@gitster.g>
974 source: <cover.1777648598.git.phillip.wood@dunelm.org.uk>
975
976
@@ -826,7 +982,8 @@ Release tarballs are available at:
982 configuration files has learned to use the location of worktree
983 in its condition.
984
829 - Ready?
985 + Waiting for response(s) to review comment(s).
986 + cf. <xmqq8q97et9b.fsf@gitster.g>
987 source: <20260525-includeif-worktree-v5-0-1efe525d025a@black-desk.cn>
988
989
@@ -838,119 +995,35 @@ Release tarballs are available at:
995 commit, which has been corrected by making the spot below a root
996 unavailable.
997
841 - Waiting for response(s) to review comment(s).
842 - cf. <20260513230216.GA1378627@coredump.intra.peff.net>
998 + Expecting a reroll.
999 + cf. <CAN5EUNQoKRqt3FGLmzRGpPU1nO5jCAogP8Wm9gBZXuPbMNbQAw@mail.gmail.com>
1000 source: <20260427102838.44867-2-pabloosabaterr@gmail.com>
1001
1002
846 -* lp/repack-propagate-promisor-debugging-info (2026-04-18) 6 commits
847 - - repack-promisor: add missing headers
848 - - t7703: test for promisor file content after geometric repack
849 - - t7700: test for promisor file content after repack
850 - - repack-promisor: preserve content of promisor files after repack
851 - - repack-promisor add helper to fill promisor file after repack
852 - - pack-write: add explanation to promisor file content
853 -
854 - When fetching objects into a lazily cloned repository, .promisor
855 - files are created with information meant to help debugging. "git
856 - repack" has been taught to carry this information forward to
857 - packfiles that are newly created.
858 -
859 - Needs review.
860 - cf. <xmqqse7xm8av.fsf@gitster.g>
861 - source: <cover.1776384902.git.lorenzo.pegorari2002@gmail.com>
862 -
863 -
1003 * th/promisor-quiet-per-repo (2026-04-06) 1 commit
865 - - promisor-remote: fix promisor.quiet to use the correct repository
1004 + (merged to 'next' on 2026-06-02 at 02a749d7fe)
1005 + + promisor-remote: fix promisor.quiet to use the correct repository
1006
1007 The "promisor.quiet" configuration variable was not used from
1008 relevant submodules when commands like "grep --recurse-submodules"
1009 triggered a lazy fetch, which has been corrected.
1010
871 - Comments?
872 - source: <20260406183041.783800-1-vikingtc4@gmail.com>
873 -
874 -
875 -* sa/cat-file-batch-mailmap-switch (2026-04-15) 1 commit
876 - (merged to 'next' on 2026-05-22 at 197a9bad73)
877 - + cat-file: add mailmap subcommand to --batch-command
878 -
879 - "git cat-file --batch" learns an in-line command "mailmap"
880 - that lets the user toggle use of mailmap.
881 -
882 - Will merge to 'master'.
883 - cf. <xmqqwlwy4v7t.fsf@gitster.g>
884 - source: <20260416033250.4327-2-siddharthasthana31@gmail.com>
885 -
886 -
887 -* jd/unpack-trees-wo-the-repository (2026-03-31) 2 commits
888 - - unpack-trees: use repository from index instead of global
889 - - unpack-trees: use repository from index instead of global
890 -
891 - A handful of inappropriate uses of the_repository have been
892 - rewritten to use the right repository structure instance in the
893 - unpack-trees.c codepath.
894 -
895 - Comments?
896 - source: <pull.2258.v2.git.git.1774971267.gitgitgadget@gmail.com>
897 -
898 -
899 -* kh/doc-trailers (2026-04-13) 9 commits
900 - - doc: interpret-trailers: document comment line treatment
901 - - doc: interpret-trailers: commit to “trailer block” term
902 - - doc: interpret-trailers: add key format example
903 - - doc: interpret-trailers: explain key format
904 - - doc: interpret-trailers: explain the format after the intro
905 - - doc: interpret-trailers: not just for commit messages
906 - - doc: interpret-trailers: use “metadata” in Name as well
907 - - doc: interpret-trailers: replace “lines” with “metadata”
908 - - doc: interpret-trailers: stop fixating on RFC 822
909 -
910 - Documentation updates.
911 -
912 - Needs review.
913 - cf. <xmqq1pfivfa3.fsf@gitster.g>
914 - source: <V2_CV_doc_int-tr_key_format.613@msgid.xyz>
915 -
916 -
917 -* ps/graph-lane-limit (2026-03-27) 3 commits
918 - (merged to 'next' on 2026-05-22 at ca1c5e8432)
919 - + graph: add truncation mark to capped lanes
920 - + graph: add --graph-lane-limit option
921 - + graph: limit the graph width to a hard-coded max
922 -
923 - The graph output from commands like "git log --graph" can now be
924 - limited to a specified number of lanes, preventing overly wide output
925 - in repositories with many branches.
926 -
1011 Will merge to 'master'.
928 - cf. <bdff0a5d-b738-4053-9b72-08eba88156de@kdbg.org>
929 - source: <20260328001113.1275291-1-pabloosabaterr@gmail.com>
930 -
931 -
932 -* jr/bisect-custom-terms-in-output (2026-05-14) 3 commits
933 - (merged to 'next' on 2026-05-22 at 1ccd1056c9)
934 - + rev-parse: use selected alternate terms to look up refs
935 - + bisect: print bisect terms in single quotes
936 - + bisect: use selected alternate terms in status output
937 -
938 - "git bisect" now uses the selected terms (e.g., old/new) more
939 - consistently in its output.
940 -
941 - Will merge to 'master'.
942 - source: <20260514-bisect-terms-v4-0-b3e3cf1b06ce@schlaraffenlan.de>
1012 + cf. <c87f1f12-d0cc-4150-8f43-4dc9cc1fe24f@malon.dev>
1013 + source: <20260406183041.783800-1-vikingtc4@gmail.com>
1014
1015
1016 * ua/push-remote-group (2026-05-03) 3 commits
946 - - push: support pushing to a remote group
947 - - remote: move remote group resolution to remote.c
948 - - remote: fix sign-compare warnings in push_cas_option
1017 + (merged to 'next' on 2026-06-02 at ba5d6aebaa)
1018 + + push: support pushing to a remote group
1019 + + remote: move remote group resolution to remote.c
1020 + + remote: fix sign-compare warnings in push_cas_option
1021
1022 "git push" learned to take a "remote group" name to push to, which
1023 causes pushes to multiple places, just like "git fetch" would do.
1024
953 - Comments?
1025 + Will merge to 'master'.
1026 + cf. <20260518182721.155070-1-usmanakinyemi202@gmail.com>
1027 source: <20260503153402.1333220-1-usmanakinyemi202@gmail.com>
1028
1029
@@ -971,7 +1044,7 @@ Release tarballs are available at:
1044 subcommand names.
1045
1046 Expecting a reroll.
974 - cf. <xmqqcxz2tzpr.fsf@gitster.g>
1047 + cf. <SY0P300MB0801E50FCB7EB2F45CD15208CE042@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>
1048 source: <SY0P300MB0801677A2A1E0FD38D06A841CE2A2@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>
1049
1050
@@ -986,37 +1059,34 @@ Release tarballs are available at:
1059 (this branch uses jc/neuter-sideband-fixup.)
1060 source: <20260305233452.3727126-8-gitster@pobox.com>
1061
1062 +--------------------------------------------------
1063 +[Discarded]
1064
990 -* cs/subtree-split-recursion (2026-03-05) 3 commits
991 - - contrib/subtree: reduce recursion during split
992 - - contrib/subtree: functionalize split traversal
993 - - contrib/subtree: reduce function side-effects
1065 +* kk/fetch-store-ref-optimization (2026-05-24) 1 commit
1066 + - fetch: pass transport to post-fetch connectivity check
1067
995 - When processing large history graphs on Debian or Ubuntu, "git
996 - subtree" can die with a "recursion depth reached" error.
1068 + When fetching from a transport that provides a self-contained pack,
1069 + pass the transport pointer to the post-fetch `check_connected()` call
1070 + to optimize connectivity check.
1071
998 - Comments?
999 - source: <20260305-cs-subtree-split-recursion-v2-0-7266be870ba9@howdoi.land>
1072 + Retracted.
1073 + cf. <CAL71e4MrVqC1=AR6x0_8S=8kVqPdDkhgCZRb4etFsxTzd6s_8Q@mail.gmail.com>
1074 + source: <pull.2123.git.1779625693328.gitgitgadget@gmail.com>
1075
1076
1002 -* pt/fsmonitor-linux (2026-04-15) 13 commits
1003 - (merged to 'next' on 2026-05-22 at 5d99c1765d)
1004 - + fsmonitor: convert shown khash to strset in do_handle_client
1005 - + fsmonitor: add tests for Linux
1006 - + fsmonitor: add timeout to daemon stop command
1007 - + fsmonitor: close inherited file descriptors and detach in daemon
1008 - + run-command: add close_fd_above_stderr option
1009 - + fsmonitor: implement filesystem change listener for Linux
1010 - + fsmonitor: rename fsm-settings-darwin.c to fsm-settings-unix.c
1011 - + fsmonitor: rename fsm-ipc-darwin.c to fsm-ipc-unix.c
1012 - + fsmonitor: use pthread_cond_timedwait for cookie wait
1013 - + compat/win32: add pthread_cond_timedwait
1014 - + fsmonitor: fix hashmap memory leak in fsmonitor_run_daemon
1015 - + fsmonitor: fix khash memory leak in do_handle_client
1016 - + t9210, t9211: disable GIT_TEST_SPLIT_INDEX for scalar clone tests
1077 +* lp/repack-propagate-promisor-debugging-info (2026-04-18) 6 commits
1078 + - repack-promisor: add missing headers
1079 + - t7703: test for promisor file content after geometric repack
1080 + - t7700: test for promisor file content after repack
1081 + - repack-promisor: preserve content of promisor files after repack
1082 + - repack-promisor add helper to fill promisor file after repack
1083 + - pack-write: add explanation to promisor file content
1084
1018 - The fsmonitor daemon has been implemented for Linux.
1085 + When fetching objects into a lazily cloned repository, .promisor
1086 + files are created with information meant to help debugging. "git
1087 + repack" has been taught to carry this information forward to
1088 + packfiles that are newly created.
1089
1020 - Will merge to 'master'.
1021 - cf. <xmqqa4u5nnxq.fsf@gitster.g>
1022 - source: <pull.2147.v15.git.git.1776259657.gitgitgadget@gmail.com>
1090 + Retracted.
1091 + cf. <agx_GPfBKpkSc3Gx@lorenzo-VM>
1092 + source: <cover.1776384902.git.lorenzo.pegorari2002@gmail.com>