What's cooking (2026/07 #10)
Junio C Hamano committed
Jul 22, 2026 at 17:28 UTC
7e3326a521766a2f83c6534f8d2a66d2c31b1195
1 file changed
+300
-503
whats-cooking.txt
+300
-503
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (Jul 2026, #09)
3
-X-master-at: 48bbf81c29ca9a4479ec7850fe206518682cdb2f
4
-X-next-at: 5475c9f935080e24d3ddd42c1c5f14bda3309bc5
2
+Subject: What's cooking in git.git (Jul 2026, #10)
3
+X-master-at: 9a0c4701dcd5725c4184599322b52933ff5005ca
4
+X-next-at: 3f0d50209424de9b2a3b57975503a767e485f62a
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (Jul 2026, #09)
7
+What's cooking in git.git (Jul 2026, #10)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -17,7 +17,7 @@ A topic without enough support may be discarded after a long period
17
of no activity (of course, it can be resubmitted when new interest
18
arises).
19
20
-The fifth batch of topics have now graduated to the 'master' branch.
20
+The seventh batch of topics have now graduated to the 'master' branch.
21
22
Copies of the source code to Git live in many repositories, and the
23
following is a list of the ones I push into or their mirrors. Some
@@ -48,327 +48,250 @@ Release tarballs are available at:
48
https://www.kernel.org/pub/software/scm/git/
49
50
--------------------------------------------------
51
-[New Topics]
51
+[Graduated to 'master']
52
53
-* bc/rust-hash-cleanups (2026-07-18) 2 commits
54
- - rust: discard hash context when finished
55
- - hash: initialize context before cloning
53
+* cc/doc-fast-export-synopsis-fix (2026-07-13) 1 commit
54
+ (merged to 'next' on 2026-07-16 at b1dbc0cb3f)
55
+ + fast-export: standardize usage string and SYNOPSIS
56
57
- A few memory problems in the Rust interface to C hash functions have
58
- been corrected. The 'Clone' implementation of 'CryptoHasher' now
59
- properly initializes the context before cloning, and its 'Drop'
60
- implementation now discards the context to prevent leaks.
57
+ The usage string and SYNOPSIS for 'git fast-export' have been
58
+ standardized to make them consistent with each other and with other
59
+ commands.
60
62
- Will merge to 'next'.
63
- cf. <20260719080754.GA429688@coredump.intra.peff.net>
64
- source: <20260719010842.17991-1-sandals@crustytoothpaste.net>
61
+ Graduated to 'master'.
62
+ cf. <alX5Nl8uX4ctVqo3@pks.im>
63
+ cf. <xmqq4ii228dd.fsf@gitster.g>
64
+ source: <20260713124153.245268-1-christian.couder@gmail.com>
65
66
67
-* ja/doc-synopsis-style-yet-more (2026-07-19) 4 commits
68
- - doc: convert git-request-pull synopsis and options to new style
69
- - doc: convert git-send-email synopsis and options to new style
70
- - doc: convert git-format-patch synopsis and options to new style
71
- - doc: convert git-imap-send synopsis and options to new style
67
+* cl/b4-cover-change-id (2026-07-10) 1 commit
68
+ (merged to 'next' on 2026-07-13 at 15c7ad9a3f)
69
+ + b4: include change-id in cover template
70
73
- Synopsis and options in the documentation for 'git format-patch',
74
- 'git imap-send', 'git send-email', and 'git request-pull' have been
75
- updated to the modern style.
71
+ The in-tree 'b4' cover letter template has been updated to include the
72
+ 'change-id' trailer, ensuring that sent tags generated by 'b4' contain
73
+ the required tracking information for subsequent runs.
74
77
- Expecting a reroll.
78
- cf. <23179740.EfDdHjke4D@piment-oiseau>
79
- cf. <2418232.ElGaqSPkdT@piment-oiseau>
80
- source: <pull.2185.git.1784490878.gitgitgadget@gmail.com>
75
+ Graduated to 'master'.
76
+ source: <20260710-add-change-id-to-b4-template-v1-1-1bd37a25064e@black-desk.cn>
77
78
83
-* hn/url-push-tracking (2026-07-20) 2 commits
84
- - remote: resolve URL-valued push tracking remotes
85
- - remote: pass repository to push tracking helper
79
+* cl/conditional-config-on-worktree-path (2026-07-09) 2 commits
80
+ (merged to 'next' on 2026-07-15 at 86ca33c437)
81
+ + config: add "worktree" and "worktree/i" includeIf conditions
82
+ + config: refactor include_by_gitdir() into include_by_path()
83
87
- When the push remote is specified as a URL, the fetch refspec of a
88
- uniquely matching configured remote is now used to find and update
89
- the remote-tracking branch (e.g., '@{push}').
84
+ The '[includeIf "condition"]' conditional inclusion facility for
85
+ configuration files has been taught to use the location of the
86
+ worktree in its condition.
87
91
- Waiting for response.
92
- cf. <xmqq4ihtcx8g.fsf@gitster.g>
93
- cf. <xmqqfr1dcygh.fsf@gitster.g>
94
- source: <pull.2358.git.git.1784538618.gitgitgadget@gmail.com>
88
+ Graduated to 'master'.
89
+ cf. <alTJCTKR9jOWfgbk@pks.im>
90
+ source: <20260710-includeif-worktree-v8-0-04686d8a616c@black-desk.cn>
91
96
---------------------------------------------------
97
-[Graduated to 'master']
92
99
-* bc/parse-options-exit-0-on-help (2026-07-07) 4 commits
100
- (merged to 'next' on 2026-07-10 at 775654e447)
101
- + parse-options: exit 0 on -h
102
- + rev-parse: have --parseopt callers exit 0 on --help
103
- + parse-options: add a separate case for help output on error
104
- + t1517: skip svn tests if svn is not installed
93
+* dm/submodule-update-i-shorthand (2026-07-07) 1 commit
94
+ (merged to 'next' on 2026-07-15 at 55ef0fb748)
95
+ + submodule--helper: accept '-i' shorthand for update --init
96
106
- Option parsing with 'git rev-parse --parseopt' and in most 'git'
107
- subcommands has been updated to exit with 0 (instead of 129) when the
108
- help option ('-h' or '--help') is requested directly by the user,
109
- aligning with standard Unix convention.
97
+ The '-i' shorthand for the '--init' option, which was accepted by the
98
+ 'git submodule update' command until it was broken in a modernization
99
+ of the option-parsing code, has been restored.
100
101
Graduated to 'master'.
112
- cf. <20260708035930.GB41684@coredump.intra.peff.net>
113
- source: <20260708001557.3581080-1-sandals@crustytoothpaste.net>
102
+ cf. <xmqq8q7ltf51.fsf@gitster.g>
103
+ source: <20260708-submodule-init-v1-1-719456077262@atmark-techno.com>
104
105
116
-* gr/t1410-reflog-exit-code (2026-07-08) 1 commit
117
- (merged to 'next' on 2026-07-10 at d0cf55ea54)
118
- + t1410-reflog.sh: avoid suppressing git's exit code in pipelines
106
+* jt/receive-pack-use-odb-transactions (2026-07-10) 11 commits
107
+ (merged to 'next' on 2026-07-15 at aba57e3365)
108
+ + builtin/receive-pack: stage incoming objects via ODB transactions
109
+ + builtin/receive-pack: drop redundant tmpdir env
110
+ + odb/transaction: introduce ODB transaction flags
111
+ + odb/transaction: add transaction env interface
112
+ + odb/transaction: propagate commit errors
113
+ + odb/transaction: propagate begin errors
114
+ + object-file: propagate files transaction errors
115
+ + object-file: drop check for inflight transactions
116
+ + object-file: embed transaction flush logic in commit function
117
+ + object-file: rename files transaction fsync function
118
+ + object-file: rename files transaction prepare function
119
+ (this branch is used by ps/odb-move-loose-object-writing.)
120
120
- The pipelines in 't1410-reflog.sh' have been replaced with the
121
- 'test_stdout_line_count' helper to avoid suppressing the exit code of
122
- 'git' commands, ensuring failures are not hidden from the test suite.
121
+ 'git receive-pack' has been refactored to use ODB transaction
122
+ interfaces instead of directly managing 'tmp_objdir' for staging
123
+ incoming objects, bringing it closer to being ODB backend agnostic.
124
125
Graduated to 'master'.
125
- cf. <xmqqtsq8p18x.fsf@gitster.g>
126
- source: <20260709051229.40363-1-gatlavishweshwarreddy26@gmail.com>
126
+ cf. <alR1P-RGZNmjyiUE@pks.im>
127
+ source: <20260710163722.2962278-1-jltobler@gmail.com>
128
129
129
-* hf/unpack-trees-quadratic-scan (2026-07-08) 1 commit
130
- (merged to 'next' on 2026-07-12 at 744f1aede4)
131
- + unpack-trees: avoid quadratic index scan in next_cache_entry()
130
+* kk/no-walk-pathspec-fix (2026-07-16) 2 commits
131
+ (merged to 'next' on 2026-07-16 at 4dd6fb0e7e)
132
+ + revision: fix --no-walk path filtering regression
133
+ + Merge branch 'kk/streaming-walk-pqueue' into kk/no-walk-pathspec-fix
134
133
- The cache-scanning loop in 'next_cache_entry()' has been optimized
134
- to avoid rescanning already-unpacked index entries, preventing a
135
- quadratic performance slow-down when diffing the working tree
136
- against a commit with a pathspec matching early index entries.
135
+ The 'git rev-list --no-walk' command has been corrected to restore
136
+ pathspec filtering, which was lost when the streaming walk was
137
+ refactored.
138
139
Graduated to 'master'.
139
- cf. <xmqqpl0xqh3n.fsf@gitster.g>
140
- source: <pull.2353.v2.git.git.1783546933992.gitgitgadget@gmail.com>
140
+ source: <pull.2181.git.1784198879711.gitgitgadget@gmail.com>
141
142
143
-* jc/relnotes-2.55-rust-fix (2026-07-07) 1 commit
144
- (merged to 'next' on 2026-07-10 at 444d202a75)
145
- + Rust: fix description in Release Notes to 2.55
143
+* ml/t9811-replace-test-f (2026-07-11) 2 commits
144
+ (merged to 'next' on 2026-07-15 at ffb7fcad15)
145
+ + t9811: replace 'test -f' and '! test -f' with 'test_path_*'
146
+ + t9811: break long && chains into multiple lines
147
147
- A description in the release notes for Git 2.55.0 has been
148
- retroactively updated to clarify that Rust support is enabled by
149
- default, but still optional, and will become mandatory in Git 3.0.
148
+ The test script 't/t9811-git-p4-label-import.sh' has been
149
+ modernized to use 'test_path_is_file' and 'test_path_is_missing'
150
+ instead of raw 'test -f' and '! test -f' calls.
151
152
Graduated to 'master'.
152
- source: <xmqqpl0y4rpg.fsf@gitster.g>
153
-
153
+ cf. <alTHrUEh4_O5ROeu@pks.im>
154
+ source: <20260711160447.99708-1-marcelomlage@usp.br>
155
155
-* jc/submitting-patches-abandoning (2026-07-08) 1 commit
156
- (merged to 'next' on 2026-07-10 at 41b9b65b23)
157
- + SubmittingPatches: document how to retract a topic
156
159
- The 'SubmittingPatches' document has been updated to explicitly
160
- describe the expectation for contributors to retract or abandon their
161
- patch series when they are no longer pursuing it.
157
+* ps/odb-for-each-object-filter (2026-07-14) 10 commits
158
+ (merged to 'next' on 2026-07-16 at 8f30e80d33)
159
+ + builtin/cat-file: filter objects via object database
160
+ + odb: introduce object filters to `odb_for_each_object()`
161
+ + pack-bitmap: introduce function to open bitmap for a single source
162
+ + pack-bitmap: drop `_1` suffix from functions that open bitmaps
163
+ + pack-bitmap: iterate object sources when opening bitmaps
164
+ + pack-bitmap: allow aborting iteration of bitmapped objects
165
+ + pack-objects: drop unused return value from add_object_entry()
166
+ + pack-bitmap: mark object filter as `const`
167
+ + odb/source-packed: improve lookup when enumerating objects
168
+ + Merge branch 'ps/odb-drop-whence' into ps/odb-for-each-object-filter
169
163
- Graduated to 'master'.
164
- cf. <ak6U07K1dQPlXxIp@nixos>
165
- source: <xmqqpl0xv25e.fsf@gitster.g>
166
-
167
-
168
-* js/coverity-fixes-null-safety (2026-07-10) 12 commits
169
- (merged to 'next' on 2026-07-12 at 8d093f411d)
170
- + shallow: give write_one_shallow() its own hex buffer
171
- + shallow: fix NULL dereference
172
- + bisect: ensure non-NULL `head` before using it
173
- + pack-bitmap: handle missing bitmap for base MIDX
174
- + revision: avoid dereferencing NULL in `add_parents_only()`
175
- + replay: die when --onto does not peel to a commit
176
- + bisect: handle NULL commit in `bisect_successful()`
177
- + mailsplit: move NULL check before first use of file handle
178
- + reftable/stack: guard against NULL list_file in stack_destroy
179
- + remote: guard `remote_tracking()` against NULL remote
180
- + diff: handle NULL return from repo_get_commit_tree()
181
- + diffcore-break: guard against NULLed queue entries in merge loop
182
-
183
- Various code paths have been hardened against potential NULL-pointer
184
- dereferences and invalid file descriptor accesses flagged by
185
- Coverity.
170
+ The object database enumeration interface odb_for_each_object() has
171
+ been taught to accept object filters, allowing the underlying backends
172
+ to optimize the traversal by using reachability bitmaps when
173
+ available. 'git cat-file --batch-all-objects' has been updated to use
174
+ this generic interface, simplifying its code and avoiding direct
175
+ access to ODB backend internals.
176
177
Graduated to 'master'.
188
- cf. <xmqqa4ryg84e.fsf@gitster.g>
189
- source: <pull.2174.v2.git.1783683577.gitgitgadget@gmail.com>
178
+ cf. <874ii0h2uf.fsf@emacs.iotcl.com>
179
+ source: <20260715-pks-odb-for-each-object-filter-v4-0-616d7adf7fb7@pks.im>
180
181
192
-* kk/commit-graph-topo-levels-fix (2026-07-09) 2 commits
193
- (merged to 'next' on 2026-07-12 at 295a5f9b34)
194
- + commit-graph: propagate topo_levels slab to all chain layers
195
- + commit-graph: add trace2 instrumentation for generation DFS
182
+* ps/odb-stream-double-close-fix (2026-07-10) 1 commit
183
+ (merged to 'next' on 2026-07-13 at dd2c5795b7)
184
+ + object-file: fix closing object stream twice
185
197
- The 'topo_levels' slab was propagated only to the topmost layer of a
198
- split commit-graph chain, causing topological levels for commits in
199
- base layers to be recomputed during incremental writes. This has been
200
- corrected.
186
+ The stream-based object signature verification path has been
187
+ corrected to avoid double-closing the stream on read errors.
188
189
Graduated to 'master'.
203
- cf. <alFu8gZURKhYr1VE@com-79390>
204
- source: <pull.2170.v2.git.1783609382.gitgitgadget@gmail.com>
190
+ source: <20260710-pks-odb-stream-double-close-v1-1-d5fa233a37c7@pks.im>
191
192
207
-* kk/commit-reach-find-all-fix (2026-06-29) 2 commits
208
- (merged to 'next' on 2026-07-10 at 0444c74d81)
209
- + commit-reach: guard !FIND_ALL early exit with generation ordering check
210
- + t6600: add test for merge-base early exit with clock skew
211
- (this branch is used by kk/merge-base-exhaustion.)
193
+* rs/strbuf-avoid-redundant-reset (2026-07-14) 1 commit
194
+ (merged to 'next' on 2026-07-16 at f258ce38ba)
195
+ + strbuf: avoid redundant reset in strbuf_getwholeline()
196
213
- The early-exit optimization in 'paint_down_to_common()' has been
214
- gated on the queue being generation-ordered, fixing a bug where
215
- 'git merge-base' (without '--all') could return incorrect results
216
- on repositories with v1 commit graphs and clock skew.
197
+ A redundant strbuf_reset() call in the 'HAVE_GETDELIM' path of
198
+ strbuf_getwholeline() has been removed, as getdelim() overwrites the
199
+ buffer and the length is updated afterward.
200
201
Graduated to 'master'.
219
- cf. <xmqqjyr5v1gu.fsf@gitster.g>
220
- source: <pull.2162.git.1782739162.gitgitgadget@gmail.com>
202
+ cf. <xmqq8q7dv82b.fsf@gitster.g>
203
+ cf. <20260714214941.GB4095533@coredump.intra.peff.net>
204
+ source: <d4ffe7fb-f782-4f06-9e3b-f72729d1e225@web.de>
205
206
223
-* kk/reftable-tombstone-quadratic-fix (2026-07-10) 2 commits
224
- (merged to 'next' on 2026-07-12 at 4e60bb0027)
225
- + reftable: fix quadratic behavior in the presence of tombstones
226
- + t/perf: add perf test for ref tombstone scenarios
207
+* sk/t1100-modernize (2026-07-14) 2 commits
208
+ (merged to 'next' on 2026-07-16 at 621ca4ca5f)
209
+ + t1100: move creation of expected output into setup test
210
+ + t1100: modernize test style
211
228
- The performance of ref updates and reads using the 'reftable' backend
229
- in the presence of many deletion tombstone records has been optimized
230
- by removing the tombstone suppression flag from the merged iterator
231
- and instead skipping tombstones at higher-level call sites where
232
- iteration bounds are known.
212
+ The test script 't/t1100-commit-tree-options.sh' has been modernized
213
+ by converting test cases to the modern style (using single quotes and
214
+ tab indentation) and moving the creation of the expected file inside
215
+ the setup test so it runs under the protection of the test harness.
216
217
Graduated to 'master'.
235
- cf. <alECc90WZ9RPqMaA@pks.im>
236
- source: <pull.2166.v3.git.1783679767.gitgitgadget@gmail.com>
218
+ cf. <xmqq4ii1v7x0.fsf@gitster.g>
219
+ source: <20260714122033.61947-1-diy2903@gmail.com>
220
221
239
-* mm/test-grep-lint (2026-07-05) 6 commits
240
- (merged to 'next' on 2026-07-10 at 1916c07bf5)
241
- + t: add greplint to detect bare grep assertions
242
- + t: convert grep assertions to test_grep
243
- + t: fix Lexer line count for $() inside double-quoted strings
244
- + t: extract chainlint's parser into shared module
245
- + t: fix grep assertions missing file arguments
246
- + t/README: document test_grep helper
222
+* sk/t7614-do-not-hide-git-exit-status (2026-07-15) 1 commit
223
+ (merged to 'next' on 2026-07-16 at 0d143986e7)
224
+ + t7614: avoid hiding git's exit code in a pipe
225
248
- The test suite has been updated to use the 'test_grep' helper instead
249
- of bare 'grep' for test assertions, allowing file contents to be
250
- printed on failure for easier debugging. A new 'greplint' linter has
251
- been introduced to detect and prevent new bare 'grep' assertions from
252
- being added to the test suite.
226
+ The test script 't/t7614-merge-signoff.sh' has been updated to avoid
227
+ suppressing the exit code of 'git' commands in a pipe.
228
229
Graduated to 'master'.
255
- cf. <xmqqtsqedxmt.fsf@gitster.g>
256
- source: <pull.2135.v4.git.1783314119.gitgitgadget@gmail.com>
257
-
258
-
259
-* ps/reftable-hardening (2026-07-03) 12 commits
260
- (merged to 'next' on 2026-07-10 at b8f4dd0ab9)
261
- + reftable/table: fix OOB read on truncated table
262
- + reftable/table: fix NULL pointer access when seeking to bogus offsets
263
- + reftable/block: fix OOB read with bogus restart offset
264
- + reftable/block: fix use of uninitialized memory when binsearch fails
265
- + reftable/block: fix OOB read with bogus restart count
266
- + reftable/block: fix OOB read with bogus block size
267
- + reftable/block: fix OOB write with bogus inflated log size
268
- + t/unit-tests: introduce test helper to write reftable blocks
269
- + reftable/record: don't abort when decoding invalid ref value type
270
- + reftable/basics: fix OOB read on binary search of empty range
271
- + oss-fuzz: add fuzzer for parsing reftables
272
- + meson: support building fuzzers with libFuzzer
273
-
274
- The 'reftable' code has been hardened against corrupted tables by
275
- fixing out-of-bounds writes, out-of-bounds reads, and abort calls
276
- during parsing.
230
+ cf. <xmqq1pd4m4ea.fsf@gitster.g>
231
+ source: <20260715113344.3490-1-diy2903@gmail.com>
232
278
- Graduated to 'master'.
279
- cf. <877bn5obz9.fsf@emacs.iotcl.com>
280
- source: <20260703-pks-reftable-hardening-v3-0-b87c555b9920@pks.im>
281
-
282
-
283
-* ps/setup-split-discovery-and-setup (2026-07-07) 16 commits
284
- (merged to 'next' on 2026-07-10 at 1691a942ab)
285
- + setup: mark `set_git_work_tree()` as file-local
286
- + setup: pass worktree to `init_db()`
287
- + setup: drop redundant configuration of `startup_info->have_repository`
288
- + setup: make repository discovery self-contained
289
- + setup: propagate prefix via repository discovery
290
- + setup: drop static `cwd` variable
291
- + setup: move prefix into repository
292
- + setup: embed repository format in discovery
293
- + setup: introduce explicit repository discovery
294
- + setup: split up concerns of `setup_git_env_internal()`
295
- + setup: unify setup of shallow file
296
- + setup: mark bogus worktree in `apply_repository_format()`
297
- + setup: rename `check_repository_format_gently()`
298
- + Merge branch 'jk/repo-info-path-keys' into ps/setup-split-discovery-and-setup
299
- + Merge branch 'ps/setup-drop-global-state' into ps/setup-split-discovery-and-setup
300
- + Merge branch 'ps/refs-onbranch-fixes' into ps/setup-split-discovery-and-setup
301
-
302
- The repository discovery and repository configuration phases, which
303
- were previously intertwined in 'setup.c', have been split. Repository
304
- discovery has been updated to populate a 'struct repo_discovery'
305
- without modifying the repository state, which is then taken by
306
- repository configuration to initialize the repository, paving the way
307
- for clean unification of repository configuration.
233
+--------------------------------------------------
234
+[New Topics]
235
309
- Graduated to 'master'.
310
- cf. <87h5m9om0j.fsf@emacs.iotcl.com>
311
- source: <20260707-pks-setup-split-discovery-and-setup-v2-0-aab372cd227c@pks.im>
236
+* hs/rebase-continue-edit (2026-07-21) 1 commit
237
+ - rebase: add --[no-]edit to --continue
238
239
+ Support for skipping the editor when continuing a rebase after
240
+ conflict resolution has been added with the '--no-edit' option, and
241
+ forcing it with '--edit'. A new configuration variable
242
+ 'rebase.noEdit' can be used to set the default behavior.
243
314
-* sn/osxkeychain-rust-universal (2026-07-07) 3 commits
315
- (merged to 'next' on 2026-07-10 at fe82b5d188)
316
- + contrib: wire up osxkeychain in contrib/Makefile on macOS
317
- + Makefile: support universal macOS builds via RUST_TARGETS
318
- + Makefile: add $(RUST_LIB) prerequisite to osxkeychain
244
+ Needs review.
245
+ source: <20260721140443.1809379-2-hugo@hsal.es>
246
320
- The build system has been updated to support building universal macOS
321
- binaries when 'Rust' is enabled, by compiling separate static archives
322
- for each target triple listed in 'RUST_TARGETS' and combining them
323
- using the macOS 'lipo' tool. The 'git-credential-osxkeychain' helper
324
- has been updated to link against '$(RUST_LIB)' when 'Rust' is enabled.
247
326
- Graduated to 'master'.
327
- cf. <xmqq4ii9teym.fsf@gitster.g>
328
- source: <pull.2288.v8.git.git.1783480879.gitgitgadget@gmail.com>
248
+* tn/stash-avoid-sparse-index-expansion (2026-07-20) 2 commits
249
+ - stash: avoid sparse-index expansion for in-cone paths
250
+ - pathspec: use match for sparse-index expansion checks
251
252
+ The 'git stash push' command has been optimized to avoid unnecessary
253
+ sparse index expansion when pathspecs are wholly inside the
254
+ sparse-checkout cone. Also, a potential out-of-bounds read in the
255
+ sparse-index expansion check helper pathspec_needs_expanded_index()
256
+ has been fixed by consistently using the parsed, prefixed path.
257
331
-* tc/bundle-uri-empty-fix (2026-07-08) 2 commits
332
- (merged to 'next' on 2026-07-12 at 9da32fdaf7)
333
- + bundle-uri: stop sending invalid bundle configuration
334
- + bundle-uri: drain remaining response on invalid bundle-uri lines
258
+ Will merge to 'next'.
259
+ cf. <al61UTM0aK9j9eiP@com-79390>
260
+ cf. <al61ERa3fS2MerHp@com-79390>
261
+ source: <20260720223118.62821-4-tnyman@openai.com>
262
336
- The client-side parser of the server-advertised bundle-URI list has
337
- been updated to drain the remaining response in order to avoid
338
- protocol desynchronization when the server sends a misconfigured list.
339
- Also, the server-side has been taught to omit empty configuration
340
- values instead of sending invalid key-value lines.
263
342
- Graduated to 'master'.
343
- cf. <xmqqtsq9qj5k.fsf@gitster.g>
344
- source: <20260708-toon-bundle-uri-no-uri-v2-0-09a03d8db556@iotcl.com>
264
+* en/submodule-insteadof-remote-match (2026-07-21) 1 commit
265
+ - submodule: resolve insteadof-aliases when matching remote
266
267
+ The remote-matching logic for submodules has been corrected to
268
+ resolve 'url.*.insteadOf' aliases before comparing the inventoried
269
+ URL from '.gitmodules' with the URLs of configured remotes.
270
347
-* ty/migrate-ignorecase (2026-06-19) 2 commits
348
- (merged to 'next' on 2026-07-12 at 39e9fdb93f)
349
- + config: use repo_ignore_case() to access core.ignorecase
350
- + environment: move ignore_case into repo_config_values
271
+ Needs review.
272
+ source: <20260721213042.3357346-1-ccjmne@gmail.com>
273
352
- The global configuration variable 'ignore_case' (representing the
353
- 'core.ignorecase' configuration) has been migrated into 'struct
354
- repo_config_values' to tie it to a specific repository instance.
274
356
- Graduated to 'master'.
357
- cf. <xmqqechaga7p.fsf@gitster.g>
358
- source: <20260619155152.642760-1-cat@malon.dev>
275
+* td/fsmonitor-darwin-cookie-flush (2026-07-21) 1 commit
276
+ - fsmonitor: flush pending FSEvents before cookie wait
277
278
+ The 'fsmonitor' daemon on macOS has been updated to flush pending
279
+ FSEvents before waiting for the cookie file, to avoid premature
280
+ timeouts on busy systems.
281
361
-* wy/doc-myfirstcontribution-trim-quotes (2026-06-11) 1 commit
362
- (merged to 'next' on 2026-07-12 at adeaa999b6)
363
- + MyFirstContribution: mention trimming quoted text in replies
282
+ Needs review.
283
+ source: <20260721-fsmonitor-darwin-cookie-flush-v1-1-357dc5e32040@gmail.com>
284
365
- The contributor guide has been updated to advise new contributors to
366
- trim irrelevant quoted text when replying to review comments, matching
367
- the existing advice given to reviewers.
285
369
- Graduated to 'master'.
370
- cf. <xmqqcxxwljue.fsf@gitster.g>
371
- source: <080402ff0ac8127b654dccea59a1bf643df62a5c.1781186476.git.wy@wyuan.org>
286
+* jc/exclude-first-parent-seen (2026-07-22) 1 commit
287
+ - revision: honor --exclude-first-parent-only with SEEN first parent
288
+
289
+ Traversals with '--exclude-first-parent-only' have been corrected to
290
+ properly stop after the first parent even when it has already been
291
+ marked as SEEN.
292
+
293
+ Needs review.
294
+ source: <xmqqbjbzq7n2.fsf@gitster.g>
295
296
--------------------------------------------------
297
[Stalled]
@@ -392,22 +315,10 @@ Release tarballs are available at:
315
316
Expecting a reroll for too long, stalled.
317
cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
318
+ cf. <xmqqcxxyt4op.fsf@gitster.g>
319
source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
320
321
398
-* sn/rebase-update-refs-symrefs (2026-06-03) 1 commit
399
- - rebase: skip branch symref aliases
400
-
401
- 'git rebase --update-refs' has been taught to resolve local branch
402
- symrefs to their referents before queuing updates, ensuring aliases of
403
- the current branch are skipped and duplicate updates are avoided to
404
- prevent failures when branch aliases are present.
405
-
406
- Waiting for response for too long, stalled.
407
- cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
408
- source: <pull.2126.v2.git.1780482436865.gitgitgadget@gmail.com>
409
-
410
-
322
* jt/config-lock-timeout (2026-05-17) 1 commit
323
- config: retry acquiring config.lock, configurable via core.configLockTimeout
324
@@ -422,6 +333,64 @@ Release tarballs are available at:
333
--------------------------------------------------
334
[Cooking]
335
336
+* sn/rebase-update-refs-symrefs (2026-07-22) 2 commits
337
+ - rebase: guard non-branch symref targets
338
+ - rebase: skip branch symref aliases
339
+
340
+ 'git rebase --update-refs' has been taught to resolve local branch
341
+ symrefs to their referents before queuing updates, ensuring aliases of
342
+ the current branch are skipped and duplicate updates are avoided to
343
+ prevent failures when branch aliases are present.
344
+
345
+ Needs review.
346
+ source: <pull.2126.v3.git.1784708107.gitgitgadget@gmail.com>
347
+
348
+
349
+* bc/rust-hash-cleanups (2026-07-18) 2 commits
350
+ (merged to 'next' on 2026-07-21 at 51627468a0)
351
+ + rust: discard hash context when finished
352
+ + hash: initialize context before cloning
353
+
354
+ A few memory problems in the Rust interface to C hash functions have
355
+ been corrected. The 'Clone' implementation of 'CryptoHasher' now
356
+ properly initializes the context before cloning, and its 'Drop'
357
+ implementation now discards the context to prevent leaks.
358
+
359
+ Will merge to 'master'.
360
+ cf. <20260719080754.GA429688@coredump.intra.peff.net>
361
+ source: <20260719010842.17991-1-sandals@crustytoothpaste.net>
362
+
363
+
364
+* ja/doc-synopsis-style-yet-more (2026-07-19) 4 commits
365
+ - doc: convert git-request-pull synopsis and options to new style
366
+ - doc: convert git-send-email synopsis and options to new style
367
+ - doc: convert git-format-patch synopsis and options to new style
368
+ - doc: convert git-imap-send synopsis and options to new style
369
+
370
+ Synopsis and options in the documentation for 'git format-patch',
371
+ 'git imap-send', 'git send-email', and 'git request-pull' have been
372
+ updated to the modern style.
373
+
374
+ Expecting a reroll.
375
+ cf. <23179740.EfDdHjke4D@piment-oiseau>
376
+ cf. <2418232.ElGaqSPkdT@piment-oiseau>
377
+ source: <pull.2185.git.1784490878.gitgitgadget@gmail.com>
378
+
379
+
380
+* hn/url-push-tracking (2026-07-22) 2 commits
381
+ - remote: find tracking branches for URL push destinations
382
+ - remote: pass repository to push tracking helper
383
+
384
+ When the push remote is specified as a URL, the fetch refspec of a
385
+ uniquely matching configured remote is now used to find and update
386
+ the remote-tracking branch (e.g., '@{push}').
387
+
388
+ Will merge to 'next'?
389
+ cf. <xmqqpl0eoniz.fsf@gitster.g>
390
+ cf. <3FE12592-B663-438C-B33E-A251AE08E146@gmail.com>
391
+ source: <pull.2358.v4.git.git.1784743738.gitgitgadget@gmail.com>
392
+
393
+
394
* tl/gitweb-shorten-hashes-with-modes (2026-07-17) 1 commit
395
- gitweb: shorten index hashes with trailing file modes
396
@@ -449,20 +418,19 @@ Release tarballs are available at:
418
419
Waiting for response.
420
cf. <845D6852-98F5-4168-82CD-90B3B476BCF5@gmail.com>
452
- cf. <DB49CF15-4980-4213-8463-4C0FE2EC8438@gmail.com>
421
source: <20260717133015.32040-1-jayatheerthkulkarni2005@gmail.com>
422
423
456
-* sk/userdiff-swift (2026-07-17) 1 commit
424
+* sk/userdiff-swift (2026-07-20) 1 commit
425
- userdiff: add support for Swift
426
427
Userdiff patterns for Swift have been added, with support for
428
Swift-specific constructs such as attributes, modifiers, failable
429
initializers, and generics.
430
463
- Expecting a reroll.
464
- cf. <20260720095335.66241-1-diy2903@gmail.com>
465
- source: <20260717140232.6722-1-diy2903@gmail.com>
431
+ Will merge to 'next'?
432
+ cf. <7b541cd5-bd66-4675-818d-8e23eb1c9530@kdbg.org>
433
+ source: <20260721065736.8747-1-diy2903@gmail.com>
434
435
436
* ps/odb-move-loose-object-writing (2026-07-17) 10 commits
@@ -476,12 +444,11 @@ Release tarballs are available at:
444
- t/u-odb-inmemory: implement wrapper for writing objects
445
- odb: compute compat object ID in `odb_write_object_ext()`
446
- Merge branch 'jt/receive-pack-use-odb-transactions' into HEAD
479
- (this branch uses jt/receive-pack-use-odb-transactions.)
447
448
The logic to write loose objects has been refactored and moved from
449
'object-file.c' to the loose backend source file 'odb/source-loose.c',
450
making the loose backend more self-contained. This is achieved by
484
- first refactoring 'force_object_loose()' to use generic ODB write
451
+ first refactoring force_object_loose() to use generic ODB write
452
interfaces instead of loose-backend internals.
453
454
Needs review.
@@ -495,7 +462,7 @@ Release tarballs are available at:
462
Two bugs in how 'git rebase' handles skipped 'fixup' and 'squash'
463
commands have been fixed. One bug caused an incorrect commit count to
464
be shown in the template message when multiple commands were skipped,
498
- and another caused the editor not to be opened when the final command
465
+ and another prevented the editor from opening when the final command
466
in a chain containing 'fixup -c' was skipped.
467
468
Needs review.
@@ -519,15 +486,16 @@ Release tarballs are available at:
486
487
488
* hn/bisect-reset-when-found (2026-07-20) 2 commits
522
- - bisect: add --reset-when-found to leave when done
523
- - bisect: let bisect_reset() optionally check out quietly
489
+ (merged to 'next' on 2026-07-22 at 1dc394ad9b)
490
+ + bisect: add --reset-when-found to leave when done
491
+ + bisect: let bisect_reset() optionally check out quietly
492
493
The 'git bisect' command has been taught a
494
'--reset-when-found[=<where>]' option that tells the command to
495
automatically run 'git bisect reset' to jump back to the original
496
state or to the found culprit.
497
530
- Will merge to 'next'?
498
+ Will merge to 'master'.
499
cf. <xmqqldb5d1d9.fsf@gitster.g>
500
source: <pull.2335.v3.git.git.1784538619.gitgitgadget@gmail.com>
501
@@ -546,9 +514,9 @@ Release tarballs are available at:
514
- http: die on curl_easy_duphandle failure in get_active_slot
515
516
A handful of code paths have been corrected to check return values
549
- from functions like 'curl_easy_duphandle()', 'deflateInit()',
550
- 'lseek()', 'dup()', and 'strbuf_getline_lf()', resolving several
551
- Coverity warnings about unchecked returns.
517
+ from functions like curl_easy_duphandle(), deflateInit(), lseek(),
518
+ dup(), and strbuf_getline_lf(), resolving several Coverity warnings
519
+ about unchecked returns.
520
521
Waiting for response.
522
cf. <xmqqldbdqciy.fsf@gitster.g>
@@ -581,23 +549,11 @@ Release tarballs are available at:
549
source: <xmqq4ii0ko9t.fsf@gitster.g>
550
551
584
-* sk/t7614-do-not-hide-git-exit-status (2026-07-15) 1 commit
585
- (merged to 'next' on 2026-07-16 at 0d143986e7)
586
- + t7614: avoid hiding git's exit code in a pipe
587
-
588
- The test script 't/t7614-merge-signoff.sh' has been updated to avoid
589
- suppressing the exit code of 'git' commands in a pipe.
590
-
591
- Will merge to 'master'.
592
- cf. <xmqq1pd4m4ea.fsf@gitster.g>
593
- source: <20260715113344.3490-1-diy2903@gmail.com>
594
-
595
-
552
* ds/trace2-tolerate-failed-timestamp (2026-07-15) 1 commit
553
- trace2: tolerate failed timestamp formatting
554
555
The 'trace2' telemetry library has been updated to tolerate failures
600
- from system calls like 'gettimeofday()' and datetime formatting
556
+ from system calls like gettimeofday() and datetime formatting
557
functions, replacing potential program crashes with blank placeholder
558
timestamps in the traces.
559
@@ -610,9 +566,9 @@ Release tarballs are available at:
566
* mm/revision-pure-get-commit-action (2026-07-15) 1 commit
567
- revision: make get_commit_action() a pure predicate
568
613
- The 'get_commit_action()' function has been refactored to be a pure
569
+ The get_commit_action() function has been refactored to be a pure
570
predicate by moving the side-effecting line-level log range folding to
615
- 'simplify_commit()'. This ensures that evaluating a commit's action
571
+ simplify_commit(). This ensures that evaluating a commit's action
572
before the walk reaches it does not prematurely mutate its tracked
573
line ranges, making it safer for potential lookahead evaluations.
574
@@ -632,19 +588,6 @@ Release tarballs are available at:
588
source: <935883f3-3be4-4c51-9711-5208b9ef9ca1@web.de>
589
590
635
-* kk/no-walk-pathspec-fix (2026-07-16) 2 commits
636
- (merged to 'next' on 2026-07-16 at 4dd6fb0e7e)
637
- + revision: fix --no-walk path filtering regression
638
- + Merge branch 'kk/streaming-walk-pqueue' into kk/no-walk-pathspec-fix
639
-
640
- The 'git rev-list --no-walk' command has been corrected to restore
641
- pathspec filtering, which was lost when the streaming walk was
642
- refactored.
643
-
644
- Will merge to 'master'.
645
- source: <pull.2181.git.1784198879711.gitgitgadget@gmail.com>
646
-
647
-
591
* cc/fast-import-usage (2026-07-16) 7 commits
592
- fast-import: use struct option for usage string
593
- fast-import: move command state globals into 'struct fast_import_state'
@@ -655,11 +598,12 @@ Release tarballs are available at:
598
- parse-options: introduce OPT_HIDDEN_GROUP
599
600
The usage string of 'git fast-import' has been updated to use the
658
- 'parse_options' API for displaying help, and its SYNOPSIS in the
601
+ parse_options() API for displaying help, and its SYNOPSIS in the
602
documentation has been standardized to match.
603
604
Waiting for response.
605
cf. <xmqq4ihyehyb.fsf@gitster.g>
606
+ cf. <xmqqcxwmeiwq.fsf@gitster.g>
607
source: <20260716165517.433849-1-christian.couder@gmail.com>
608
609
@@ -667,7 +611,7 @@ Release tarballs are available at:
611
(merged to 'next' on 2026-07-20 at 9e38da0efc)
612
+ copy: drop dependency on `the_repository`
613
670
- The 'copy_file()' and 'copy_file_with_time()' functions have been
614
+ The copy_file() and copy_file_with_time() functions have been
615
refactored to take a repository parameter, allowing the removal of the
616
implicit dependency on the global 'the_repository' variable in
617
'copy.c'.
@@ -700,10 +644,10 @@ Release tarballs are available at:
644
- wrapper: introduce writev(3p) wrappers
645
- compat/posix: introduce writev(3p) wrapper
646
703
- A compatibility wrapper for 'writev(3p)' has been reintroduced,
647
+ A compatibility wrapper for writev(3p) has been reintroduced,
648
including fixes for CMake build and 'MAX_IO_SIZE' limits on NonStop.
705
- Calls to 'write(3p)' in 'send_sideband()' and 'cat_blob()' have been
706
- refactored to use 'writev(3p)' wrappers to reduce syscall overhead.
649
+ Calls to write(3p) in send_sideband() and cat_blob() have been
650
+ refactored to use writev(3p) wrappers to reduce syscall overhead.
651
652
Waiting for response.
653
cf. <f8050598-392f-44c9-8d66-0454740a7a12@kdbg.org>
@@ -717,8 +661,9 @@ Release tarballs are available at:
661
+ wt-status: avoid repeated insertion for untracked paths
662
663
The enumeration of untracked and ignored files in 'git status' has
720
- been optimized by avoiding quadratic complexity insertion into string
721
- lists, reducing the construction cost from O(n^2) to O(n log n).
664
+ been optimized by avoiding quadratic complexity when inserting into
665
+ string lists, reducing the construction cost from O(n^2) to O(n log
666
+ n).
667
668
Will merge to 'master'.
669
cf. <20260718083828.GE22588@coredump.intra.peff.net>
@@ -738,77 +683,36 @@ Release tarballs are available at:
683
source: <alQ7WKITYDXfiVn9@com-79390>
684
685
741
-* cc/doc-fast-export-synopsis-fix (2026-07-13) 1 commit
742
- (merged to 'next' on 2026-07-16 at b1dbc0cb3f)
743
- + fast-export: standardize usage string and SYNOPSIS
744
-
745
- The usage string and SYNOPSIS for 'git fast-export' have been
746
- standardized to make them consistent with each other and with other
747
- commands.
748
-
749
- Will merge to 'master'.
750
- cf. <alX5Nl8uX4ctVqo3@pks.im>
751
- cf. <xmqq4ii228dd.fsf@gitster.g>
752
- source: <20260713124153.245268-1-christian.couder@gmail.com>
753
-
754
-
755
-* sk/t1100-modernize (2026-07-14) 2 commits
756
- (merged to 'next' on 2026-07-16 at 621ca4ca5f)
757
- + t1100: move creation of expected output into setup test
758
- + t1100: modernize test style
759
-
760
- The test script 't/t1100-commit-tree-options.sh' has been modernized
761
- by converting test cases to the modern style (using single quotes and
762
- tab indentation) and moving the creation of the expected file inside
763
- the setup test so it runs under the protection of the test harness.
764
-
765
- Will merge to 'master'.
766
- cf. <xmqq4ii1v7x0.fsf@gitster.g>
767
- source: <20260714122033.61947-1-diy2903@gmail.com>
768
-
769
-
770
-* tn/packfile-uri-concurrency (2026-07-13) 2 commits
686
+* tn/packfile-uri-concurrency (2026-07-21) 3 commits
687
- fetch-pack: accept "pack" output for packfile URIs
772
- - http: use unique tempfiles for packfile URI downloads
773
-
774
- Concurrent downloads of packfiles via packfile URIs have been
775
- supported by using unique temporary files, preventing corruption when
776
- multiple processes fetch the same pack. The 'fetch-pack' command has
777
- also been updated to tolerate pre-existing '.keep' files.
688
+ - http: avoid concurrent appends to partial packs
689
+ - http-fetch: correct --index-pack-arg documentation
690
779
- Expecting a reroll.
780
- cf. <alaAi4vNwi-KabYV@com-76773>
781
- source: <alVn-QmK3K91_tkH@com-76773>
782
-
783
-
784
-* rs/strbuf-avoid-redundant-reset (2026-07-14) 1 commit
785
- (merged to 'next' on 2026-07-16 at f258ce38ba)
786
- + strbuf: avoid redundant reset in strbuf_getwholeline()
691
+ Concurrent downloads of packfiles via packfile URIs and dumb HTTP have
692
+ been made safer by avoiding concurrent appends to the staging file.
693
+ Opening the file in read-write mode and maintaining separate file
694
+ offsets prevents corruption while preserving resumability. The
695
+ 'fetch-pack' command has also been updated to tolerate pre-existing
696
+ '.keep' files.
697
788
- A redundant 'strbuf_reset()' call in the 'HAVE_GETDELIM' path of
789
- 'strbuf_getwholeline()' has been removed, as 'getdelim()' overwrites
790
- the buffer and the length is updated afterward.
791
-
792
- Will merge to 'master'.
793
- cf. <xmqq8q7dv82b.fsf@gitster.g>
794
- cf. <20260714214941.GB4095533@coredump.intra.peff.net>
795
- source: <d4ffe7fb-f782-4f06-9e3b-f72729d1e225@web.de>
698
+ Needs review.
699
+ source: <cover.1784676106.git.tnyman@openai.com>
700
701
702
* rs/tempfile-wo-the-repository (2026-07-14) 5 commits
799
- - use repo_hold_lock_file_for_update{,_mode,_timeout}() with custom repos
800
- - tempfile: stop using the_repository
801
- - lockfile: add repo_hold_lock_file_for_update{,_timeout}{,_mode}()
802
- - refs/packed: use repo_create_tempfile()
803
- - tempfile: add repo_create_tempfile{,_mode}()
703
+ (merged to 'next' on 2026-07-22 at 968a116891)
704
+ + use repo_hold_lock_file_for_update{,_mode,_timeout}() with custom repos
705
+ + tempfile: stop using the_repository
706
+ + lockfile: add repo_hold_lock_file_for_update{,_timeout}{,_mode}()
707
+ + refs/packed: use repo_create_tempfile()
708
+ + tempfile: add repo_create_tempfile{,_mode}()
709
710
The tempfile and lockfile APIs have been refactored to stop depending
711
on the 'the_repository' global variable, and their callers have been
712
updated to use the repository-aware variants.
713
809
- Will merge to 'next'?
810
- cf. <aldYW4TPUqgDMRcf@pks.im>
811
- cf. <3c0a8031-7082-422a-b474-938418682b60@web.de>
714
+ Will merge to 'master'.
715
+ cf. <xmqq8q7ds3ld.fsf@gitster.g>
716
cf. <xmqqmrvmn6a5.fsf@gitster.g>
717
source: <20260714175956.54601-1-l.s.r@web.de>
718
@@ -835,29 +739,6 @@ Release tarballs are available at:
739
source: <pull.2175.git.1783615780.gitgitgadget@gmail.com>
740
741
838
-* cl/b4-cover-change-id (2026-07-10) 1 commit
839
- (merged to 'next' on 2026-07-13 at 15c7ad9a3f)
840
- + b4: include change-id in cover template
841
-
842
- The in-tree 'b4' cover letter template has been updated to include the
843
- 'change-id' trailer, ensuring that sent tags generated by 'b4' contain
844
- the required tracking information for subsequent runs.
845
-
846
- Will merge to 'master'.
847
- source: <20260710-add-change-id-to-b4-template-v1-1-1bd37a25064e@black-desk.cn>
848
-
849
-
850
-* ps/odb-stream-double-close-fix (2026-07-10) 1 commit
851
- (merged to 'next' on 2026-07-13 at dd2c5795b7)
852
- + object-file: fix closing object stream twice
853
-
854
- The stream-based object signature verification path has been
855
- corrected to avoid double-closing the stream on read errors.
856
-
857
- Will merge to 'master'.
858
- source: <20260710-pks-odb-stream-double-close-v1-1-d5fa233a37c7@pks.im>
859
-
860
-
742
* pz/fetch-submodule-errors-config (2026-07-16) 2 commits
743
- fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
744
- submodule: fix premature failure in recursive submodule fetch
@@ -901,19 +782,6 @@ Release tarballs are available at:
782
source: <20260711-fz-autosquash-empty-v3-1-d227b63eb511@gmail.com>
783
784
904
-* dm/submodule-update-i-shorthand (2026-07-07) 1 commit
905
- (merged to 'next' on 2026-07-15 at 55ef0fb748)
906
- + submodule--helper: accept '-i' shorthand for update --init
907
-
908
- The '-i' shorthand for the '--init' option, which was accepted by the
909
- 'git submodule update' command until it was broken in a modernization
910
- of the option-parsing code, has been restored.
911
-
912
- Will merge to 'master'.
913
- cf. <xmqq8q7ltf51.fsf@gitster.g>
914
- source: <20260708-submodule-init-v1-1-719456077262@atmark-techno.com>
915
-
916
-
785
* mm/lib-httpd-cgi-safe (2026-07-10) 3 commits
786
- t/README: document writing concurrency-safe helpers
787
- t/lib-httpd: make http-429 first-request check atomic
@@ -942,7 +810,7 @@ Release tarballs are available at:
810
- t7900: simplify how we check for maintenance tasks
811
812
Object database housekeeping in 'git gc' and 'git maintenance' has
945
- been refactored to be pluggable. The files-backend specific logic,
813
+ been refactored to be pluggable. The files-backend-specific logic,
814
including incremental and geometric repacking as well as object
815
pruning, has been moved out of the command implementation and into the
816
files object database source, enabling future alternative object
@@ -953,31 +821,6 @@ Release tarballs are available at:
821
source: <20260713-b4-pks-odb-optimize-v2-0-9c2c3ee94b38@pks.im>
822
823
956
-* ps/odb-for-each-object-filter (2026-07-14) 10 commits
957
- (merged to 'next' on 2026-07-16 at 8f30e80d33)
958
- + builtin/cat-file: filter objects via object database
959
- + odb: introduce object filters to `odb_for_each_object()`
960
- + pack-bitmap: introduce function to open bitmap for a single source
961
- + pack-bitmap: drop `_1` suffix from functions that open bitmaps
962
- + pack-bitmap: iterate object sources when opening bitmaps
963
- + pack-bitmap: allow aborting iteration of bitmapped objects
964
- + pack-objects: drop unused return value from add_object_entry()
965
- + pack-bitmap: mark object filter as `const`
966
- + odb/source-packed: improve lookup when enumerating objects
967
- + Merge branch 'ps/odb-drop-whence' into ps/odb-for-each-object-filter
968
-
969
- The object database enumeration interface 'odb_for_each_object()'
970
- has been taught to accept object filters, allowing the underlying
971
- backends to optimize the traversal by using reachability bitmaps
972
- when available. 'git cat-file --batch-all-objects' has been updated
973
- to use this generic interface, simplifying its code and avoiding
974
- direct access to ODB backend internals.
975
-
976
- Will merge to 'master'.
977
- cf. <874ii0h2uf.fsf@emacs.iotcl.com>
978
- source: <20260715-pks-odb-for-each-object-filter-v4-0-616d7adf7fb7@pks.im>
979
-
980
-
824
* ps/refs-wo-the-repository (2026-07-15) 7 commits
825
(merged to 'next' on 2026-07-19 at 12685f410c)
826
+ refs: remove remaining uses of `the_repository`
@@ -1027,12 +870,12 @@ Release tarballs are available at:
870
- t0213: skip ancestry tests under user-mode emulation
871
872
The 'TRACE2_ANCESTRY' prerequisite in the 't0213' test script has been
1030
- refined to avoid failures under user-mode emulation, by verifying that
873
+ refined to avoid failures under user-mode emulation by verifying that
874
the ancestry collector reports the expected process names rather than
875
the emulator binary name.
876
1034
- Will merge to 'next'.
1035
- cf. <xmqqa4s38rbe.fsf@gitster.g>
877
+ Needs review.
878
+ cf. <xmqq33xcz2i7.fsf@gitster.g>
879
source: <pull.2168.git.1783359242130.gitgitgadget@gmail.com>
880
881
@@ -1048,40 +891,12 @@ Release tarballs are available at:
891
source: <20260702041759.51572-1-zhihao.yao@njit.edu>
892
893
1051
-* ml/t9811-replace-test-f (2026-07-11) 2 commits
1052
- (merged to 'next' on 2026-07-15 at ffb7fcad15)
1053
- + t9811: replace 'test -f' and '! test -f' with 'test_path_*'
1054
- + t9811: break long && chains into multiple lines
1055
-
1056
- The test script 't/t9811-git-p4-label-import.sh' has been
1057
- modernized to use 'test_path_is_file' and 'test_path_is_missing'
1058
- instead of raw 'test -f' and '! test -f' calls.
1059
-
1060
- Will merge to 'master'.
1061
- cf. <alTHrUEh4_O5ROeu@pks.im>
1062
- source: <20260711160447.99708-1-marcelomlage@usp.br>
1063
-
1064
-
1065
-* cl/conditional-config-on-worktree-path (2026-07-09) 2 commits
1066
- (merged to 'next' on 2026-07-15 at 86ca33c437)
1067
- + config: add "worktree" and "worktree/i" includeIf conditions
1068
- + config: refactor include_by_gitdir() into include_by_path()
1069
-
1070
- The '[includeIf "condition"]' conditional inclusion facility for
1071
- configuration files has been taught to use the location of the
1072
- worktree in its condition.
1073
-
1074
- Will merge to 'master'.
1075
- cf. <alTJCTKR9jOWfgbk@pks.im>
1076
- source: <20260710-includeif-worktree-v8-0-04686d8a616c@black-desk.cn>
1077
-
1078
-
894
* bl/t7412-use-test-path-helpers (2026-06-29) 1 commit
895
- submodule absorbgitdirs tests: use test_* helper functions
896
897
The test script 't7412' that tests 'git submodule absorbgitdirs' has
1083
- been modernized to use 'test_path_is_file', 'test_path_is_dir', and
1084
- 'test_path_is_missing' helper functions instead of raw 'test -[fde]'
898
+ been modernized to use test_path_is_file(), test_path_is_dir(), and
899
+ test_path_is_missing() helper functions instead of raw 'test -[fde]'
900
commands.
901
902
Waiting for response.
@@ -1130,35 +945,11 @@ Release tarballs are available at:
945
collect unreachable objects.
946
947
Waiting for response.
1133
- cf. <xmqq8q8068f7.fsf@gitster.g>
948
cf. <xmqqpl1d56dd.fsf@gitster.g>
949
+ cf. <xmqqwlvl56vh.fsf@gitster.g>
950
source: <cover.1782500507.git.me@ttaylorr.com>
951
952
1138
-* jt/receive-pack-use-odb-transactions (2026-07-10) 11 commits
1139
- (merged to 'next' on 2026-07-15 at aba57e3365)
1140
- + builtin/receive-pack: stage incoming objects via ODB transactions
1141
- + builtin/receive-pack: drop redundant tmpdir env
1142
- + odb/transaction: introduce ODB transaction flags
1143
- + odb/transaction: add transaction env interface
1144
- + odb/transaction: propagate commit errors
1145
- + odb/transaction: propagate begin errors
1146
- + object-file: propagate files transaction errors
1147
- + object-file: drop check for inflight transactions
1148
- + object-file: embed transaction flush logic in commit function
1149
- + object-file: rename files transaction fsync function
1150
- + object-file: rename files transaction prepare function
1151
- (this branch is used by ps/odb-move-loose-object-writing.)
1152
-
1153
- 'git receive-pack' has been refactored to use ODB transaction
1154
- interfaces instead of directly managing 'tmp_objdir' for staging
1155
- incoming objects, bringing it closer to being ODB backend agnostic.
1156
-
1157
- Will merge to 'master'.
1158
- cf. <alR1P-RGZNmjyiUE@pks.im>
1159
- source: <20260710163722.2962278-1-jltobler@gmail.com>
1160
-
1161
-
953
* ty/migrate-excludes-file (2026-07-13) 10 commits
954
- repository: adjust the comment of config_values_private_
955
- environment: move object_creation_mode into repo_config_values
@@ -1175,8 +966,8 @@ Release tarballs are available at:
966
(including 'editor_program', 'pager_program', 'askpass_program', and
967
'push_default') have been migrated into the per-repository structure.
968
1178
- Needs review.
1179
- cf. <xmqq8q7961xe.fsf@gitster.g>
969
+ Will merge to 'next'.
970
+ cf. <xmqqa4ruyhbh.fsf@gitster.g>
971
source: <20260714032525.1611141-1-cat@malon.dev>
972
973
@@ -1225,7 +1016,9 @@ Release tarballs are available at:
1016
subcommand to fold a range of commits into a single commit, with any
1017
descendants replayed on top.
1018
1228
- Needs review.
1019
+ Will merge to 'next'.
1020
+ cf. <DK1KIF2OI8IF.11188A3YEQV1C@lfurio.us>
1021
+ cf. <DK1KIH6CXW0X.1U2V3GU8L6HB7@lfurio.us>
1022
source: <pull.2337.v10.git.git.1784536024.gitgitgadget@gmail.com>
1023
1024
@@ -1337,7 +1130,9 @@ Release tarballs are available at:
1130
configuration) has been migrated into 'struct repo_config_values' to
1131
tie it to a specific repository instance.
1132
1340
- Needs review.
1133
+ Will merge to 'next'.
1134
+ cf. <alvNq8rXF/jofqUc@szeder.dev>
1135
+ cf. <xmqq8q7961xe.fsf@gitster.g>
1136
source: <20260720105335.3202013-1-cat@malon.dev>
1137
1138
@@ -1351,6 +1146,7 @@ Release tarballs are available at:
1146
1147
Waiting for response, stalled.
1148
cf. <xmqqik71t3nr.fsf@gitster.g>
1149
+ cf. <xmqq1pe0g08t.fsf@gitster.g>
1150
source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
1151
1152
@@ -1380,7 +1176,7 @@ Release tarballs are available at:
1176
source: <V3_CV_doc_replay_config.780@msgid.xyz>
1177
1178
1383
-* hn/branch-delete-merged (2026-07-14) 7 commits
1179
+* hn/branch-delete-merged (2026-07-22) 7 commits
1180
- branch: add --dry-run for --delete-merged
1181
- branch: add branch.<name>.deleteMerged opt-out
1182
- branch: add --delete-merged <branch>
@@ -1393,10 +1189,10 @@ Release tarballs are available at:
1189
to remove local branches that are already merged into their tracked
1190
remote-tracking branches.
1191
1396
- Expecting a reroll.
1397
- cf. <xmqqtspvptqc.fsf@gitster.g>
1398
- cf. <CAHwyqnXdaPeO12+p=_+_ttrknV0-VqTMnH-suS66yZ4stsBKnQ@mail.gmail.com>
1399
- source: <pull.2285.v19.git.git.1784053493.gitgitgadget@gmail.com>
1192
+ Needs review.
1193
+ cf. <9b9b9a2c-dd0f-44f8-b80e-565eed9a55a8@gmail.com>
1194
+ cf. <xmqqik6an5t3.fsf@gitster.g>
1195
+ source: <pull.2285.v20.git.git.1784704238.gitgitgadget@gmail.com>
1196
1197
1198
* hn/checkout-track-fetch (2026-06-24) 2 commits
@@ -1451,4 +1247,5 @@ Release tarballs are available at:
1247
1248
Needs review.
1249
cf. <xmqqse5en8wz.fsf@gitster.g>
1250
+ cf. <xmqqv7al9rbj.fsf@gitster.g>
1251
source: <pull.2149.v6.git.1783776466.gitgitgadget@gmail.com>