What's cooking (2026/01 #05)

Junio C Hamano committed Jan 15, 2026 at 10:40 UTC 6a0ad3a72ecf39d635d698903590cc8566291fb1
1 file changed +437 -320
whats-cooking.txt
+437 -320
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Jan 2026, #04)
3 -X-master-at: 8745eae506f700657882b9e32b2aa00f234a6fb6
4 -X-next-at: 054afa95bc2d358432c7c8a34045c160b9f262b3
2 +Subject: What's cooking in git.git (Jan 2026, #05)
3 +X-master-at: 7264e61d87e58b9d0f5e6424c47c11e9657dfb75
4 +X-next-at: de669ffdefc742a24e3b6c5b7c1293aa35dc9ac2
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Jan 2026, #04)
7 +What's cooking in git.git (Jan 2026, #05)
8 -----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -48,67 +48,351 @@ Release tarballs are available at:
48 --------------------------------------------------
49 [Graduated to 'master']
50
51 -* ja/doc-synopsis-style-more (2025-12-20) 5 commits
52 - (merged to 'next' on 2026-01-05 at 20eb741139)
53 - + doc: convert git-remote to synopsis style
54 - + doc: convert git stage to use synopsis block
55 - + doc: convert git-status tables to AsciiDoc format
56 - + doc: convert git-status to synopsis style
57 - + doc: fix t0450-txt-doc-vs-help to select only first synopsis block
51 +* kh/replay-invalid-onto-advance (2026-01-05) 6 commits
52 + (merged to 'next' on 2026-01-08 at 1024748f91)
53 + + t3650: add more regression tests for failure conditions
54 + + replay: die if we cannot parse object
55 + + replay: improve code comment and die message
56 + + replay: die descriptively when invalid commit-ish is given
57 + + replay: find *onto only after testing for ref name
58 + + replay: remove dead code and rearrange
59 + (this branch is used by ps/history and pw/replay-drop-empty.)
60 +
61 + Improve the error message when a bad argument is given to the
62 + `--onto` option of "git replay". Test coverage of "git replay" has
63 + been improved.
64 + cf. <CABPp-BGFNyKkpcWWksqvNqyXspMqfywbYyyhuSUaL41YHNHoNg@mail.gmail.com>
65 + source: <V3_CV_replay_die_descr.1a4@msgid.xyz>
66 +
67 +
68 +* ps/clar-integers (2025-12-06) 3 commits
69 + (merged to 'next' on 2026-01-08 at 9f9674ac20)
70 + + gitattributes: disable blank-at-eof errors for clar test expectations
71 + + t/unit-tests: demonstrate use of integer comparison assertions
72 + + t/unit-tests: update clar to 39f11fe
73 +
74 + Import newer version of "clar", unit testing framework.
75 + source: <20251206-b4-pks-clar-update-v2-0-9a14b10c1a36@pks.im>
76 +
77 +
78 +* ps/odb-misc-fixes (2026-01-06) 3 commits
79 + (merged to 'next' on 2026-01-08 at 850d35a76d)
80 + + odb: properly close sources before freeing them
81 + + builtin/gc: fix condition for whether to write commit graphs
82 + + Merge branch 'ps/object-source-management' into ps/odb-misc-fixes
83 + (this branch is used by ps/packfile-store-in-odb-source.)
84 +
85 + Miscellaneous fixes on object database layer.
86 + source: <20260106-odb-related-fixes-v3-0-7ac157207b20@pks.im>
87 +
88 +
89 +* pt/t7800-difftool-test-racefix (2026-01-03) 1 commit
90 + (merged to 'next' on 2026-01-06 at 572d775bca)
91 + + t7800: fix racy "difftool --dir-diff syncs worktree" test
92 +
93 + Test fixup.
94 + source: <pull.2149.v3.git.git.1767472809897.gitgitgadget@gmail.com>
95 +
96 +--------------------------------------------------
97 +[Stalled]
98 +
99 +* dw/config-global-list (2025-10-09) 4 commits
100 + - config: keep bailing on unreadable global files
101 + - config: read global scope via config_sequence
102 + - config: test home and xdg files in `list --global`
103 + - cleanup_path: force forward slashes on Windows
104 +
105 + "git config --list --global", unlike "git config --list", did not
106 + consult both of the two possible per-user sources of the
107 + configuration files, i.e. $HOME/.gitconfig and the XDG one, which
108 + has been corrected.
109 +
110 + Will discard. Has been waiting for a reroll for too long.
111 + cf. <20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net>
112 + source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>
113 +
114 +
115 +* ms/doc-worktree-side-by-side (2025-10-10) 2 commits
116 + - doc: git-worktree: Add side by side branch checkout example
117 + - doc: git-worktree: Link to examples
118 +
119 + Document "git worktree add" and use of out-of-tree worktrees with
120 + examples.
121 +
122 + Will discard. Has been waiting for a reroll for too long.
123 + cf. <CAPig+cSNesf0UwS4=Bxe-Qn+G9y3YYPyOK+7y3q8QJk+o7jaVg@mail.gmail.com>
124 + source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de>
125 +
126 +
127 +* jc/exclude-with-gitignore (2025-11-04) 1 commit
128 + - dir.c: do not be fooled by :(exclude) pathspec elements
129 +
130 + "git add ':(exclude)foo.o'" is clearly a request not to add 'foo.o',
131 + but the command complained about listing an ignored path foo.o on
132 + the command line, which has been corrected.
133 +
134 + Will discard. Has been waiting for further comments for too long.
135 + source: <xmqqtsz9o3cn.fsf@gitster.g>
136 +
137 +
138 +* lc/rebase-trailer (2025-11-05) 4 commits
139 + - rebase: support --trailer
140 + - trailer: append trailers in-process and drop the fork to `interpret-trailers`
141 + - trailer: move process_trailers to trailer.h
142 + - interpret-trailers: factor out buffer-based processing to process_trailers()
143 +
144 + Refactor code paths to run "interpret-trailers" from "git
145 + commit/tag" and use it in "git rebase".
146 +
147 + Will discard. Has been waiting for a reroll for too long.
148 + cf. <19a8fe42354.3909481a3912041.7970296104893780556@linux.beauty>
149 + source: <20251105142944.73061-1-me@linux.beauty>
150 +
151 +
152 +* sp/shallow-time-boundary (2025-11-23) 1 commit
153 + - shallow: set borders which are all reachable after clone shallow since
154 +
155 + The set of shallow boundary "git clone --shallow-since" leaves
156 + contained commits that are not on the boundary, which has been
157 + corrected.
158 +
159 + Will discard. Has been waiting for further comments for too long.
160 + source: <pull.2107.v2.git.git.1763926552033.gitgitgadget@gmail.com>
161 +
162 +
163 +* tc/last-modified-options-cleanup (2025-11-26) 4 commits
164 + - fixup! last-modified: document option --max-depth
165 + - last-modified: document how depth is handled better
166 + - last-modified: document option --max-depth
167 + - last-modified: handle and document NUL termination
168
59 - More doc style updates.
60 - source: <pull.2020.git.1766258187.gitgitgadget@gmail.com>
169 + The "-z" and "--max-depth" documentation (and implementation of
170 + "-z") in the "git last-modified" command have been updated.
171
172 + Will discard. Has been waiting for a reroll for too long.
173 + source: <20251126-toon-last-modified-zzzz-v1-0-608350df0caa@iotcl.com>
174
63 -* js/mailmap-karsten-blees (2026-01-10) 1 commit
64 - (merged to 'next' on 2026-01-10 at 90c69f0044)
65 - + .mailmap: replace Karsten Blees' default address
175
67 - Mailmap update for Karsten
68 - source: <pull.2029.git.1768043204134.gitgitgadget@gmail.com>
176 +* jk/parse-int (2025-11-30) 5 commits
177 + - fsck: use parse_unsigned_from_buf() for parsing timestamp
178 + - cache-tree: use parse_int_from_buf()
179 + - parse: add functions for parsing from non-string buffers
180 + - parse: prefer bool to int for boolean returns
181 + - Merge branch 'jk/asan-bonanza' into jk/parse-int
182
183 + Introduce a more robust way to parse a decimal integer stored in a
184 + piece of memory that is not necessarily terminated with NUL (which
185 + Asan strict-string-check complains even when use of strtol() is
186 + safe due to varified existence of whitespace after the digits).
187
71 -* ps/t1300-2021-use-test-path-is-helpers (2026-01-04) 1 commit
72 - (merged to 'next' on 2026-01-05 at c9366fe5a0)
73 - + t1300: use test helpers instead of `test` command
188 + Will discard. Has been waiting for a reroll for too long.
189 + cf. <aTFvKOHlm4zfT9dU@pks.im>
190 + cf. <4d83375b-76e2-4420-80dd-6a04d3201532@gmail.com>
191 + source: <20251130131351.GA198697@coredump.intra.peff.net>
192
75 - Test updates.
76 - source: <20260104194812.15134-1-pushkarkumarsingh1970@gmail.com>
193
194 +* kn/ref-location (2025-12-01) 2 commits
195 + - refs: add GIT_REF_URI to specify reference backend and directory
196 + - refs: support obtaining ref_store for given dir
197
79 -* rs/commit-stack (2025-12-24) 14 commits
80 - (merged to 'next' on 2026-01-05 at 8b44eff694)
81 - + commit-reach: use commit_stack
82 - + commit-graph: use commit_stack
83 - + commit: add commit_stack_grow()
84 - + shallow: use commit_stack
85 - + pack-bitmap-write: use commit_stack
86 - + commit: add commit_stack_init()
87 - + test-reach: use commit_stack
88 - + remote: use commit_stack for src_commits
89 - + remote: use commit_stack for sent_tips
90 - + remote: use commit_stack for local_commits
91 - + name-rev: use commit_stack
92 - + midx: use commit_stack
93 - + log: use commit_stack
94 - + revision: export commit_stack
198 + A mechanism to specify what reference backend to use and store
199 + references in which directory is introduced, which would likely to
200 + be useful during ref migration.
201 +
202 + Will discard. Has been waiting for further comments for too long.
203 + source: <20251201-kn-alternate-ref-dir-v3-0-c11b946bc2fa@gmail.com>
204
96 - Code clean-up, unifying various hand-rolled "list of commit
97 - objects" and use the commit_stack API.
98 - source: <20251224170327.68049-1-l.s.r@web.de>
205
206 +* yc/histogram-hunk-shift-fix (2025-12-06) 1 commit
207 + - xdiff: re-diff shifted change groups when using histogram algorithm
208 +
209 + The final clean-up phase of the diff output could turn the result of
210 + histogram diff algorithm suboptimal, which has been corrected.
211 +
212 + Will discard. Has been waiting for further comments for too long.
213 + source: <pull.2120.git.git.1765054287938.gitgitgadget@gmail.com>
214 +
215 +
216 +* js/neuter-sideband (2025-12-17) 4 commits
217 + - sideband: add options to allow more control sequences to be passed through
218 + - sideband: do allow ANSI color sequences by default
219 + - sideband: introduce an "escape hatch" to allow control characters
220 + - sideband: mask control characters
221
101 -* sb/bundle-uri-without-uri (2025-12-19) 1 commit
102 - (merged to 'next' on 2026-01-05 at 62d0a58199)
103 - + bundle-uri: validate that bundle entries have a uri
222 + Invalidate control characters in sideband messages, to avoid
223 + terminal state getting messed up.
224
105 - Diagnose invalid bundle-URI that lack the URI entry, instead of
106 - crashing.
107 - source: <pull.2134.v2.git.git.1766160106521.gitgitgadget@gmail.com>
225 + Will discard. Has been waiting for further comments for too long.
226 + cf. <aS-D5lD2Kk6BHNIl@fruit.crustytoothpaste.net>
227 + source: <pull.1853.v2.git.1765981422.gitgitgadget@gmail.com>
228
229 --------------------------------------------------
230 [New Topics]
231
232 +* tc/last-modified-not-a-tree (2026-01-14) 3 commits
233 + - last-modified: verify revision argument is a commit-ish
234 + - last-modified: remove double error message
235 + - last-modified: rewrite error message when more than one revision given
236 +
237 + Giving "git last-modified" a tree (not a commit-ish) died an
238 + uncontrolled death, which has been corrected.
239 +
240 + Expecting a reroll?
241 + cf. <aWd2VcX7gERTDK2t@pks.im>
242 + cf. <bc0db8d5-3c5f-4dd4-9c35-ccb02a6bf5c9@app.fastmail.com>
243 + source: <20260114-toon-last-modified-tree-v2-0-ba3b1860898f@iotcl.com>
244 +
245 +
246 +* sp/myfirstcontribution-include-update (2026-01-12) 1 commit
247 + - doc: MyFirstContribution: fix missing dependencies and clarify build steps
248 +
249 + Doc update.
250 +
251 + Will merge to 'next'?
252 + source: <20260112195625.391821-1-shreyanshpaliwalcmsmn@gmail.com>
253 +
254 +
255 +* ar/run-command-hook-pre-push-fix (2026-01-14) 2 commits
256 + - hook: make ungroup opt-out instead of opt-in
257 + - hook: allow hooks to disable stdout_to_stderr
258 + (this branch uses ar/run-command-hook.)
259 +
260 + Recent update to use run-hooks API broke pre-push hook, which has
261 + been corrected.
262 +
263 + Will merge to 'next' and then to 'master'.
264 + source: <20260114185731.2381550-3-adrian.ratiu@collabora.com>
265 +
266 +
267 +* cs/add-skip-submodule-ignore-all (2026-01-13) 5 commits
268 + - Documentation: update add --force option + ignore=all config
269 + - tests: fix existing tests when add an ignore=all submodule
270 + - tests: t2206-add-submodule-ignored: ignore=all and add --force tests
271 + - read-cache: submodule add need --force given ignore=all configuration
272 + - read-cache: update add_files_to_cache take param ignored_too
273 +
274 + "git add <submodule>" has been taught to honor
275 + submodule.<name>.ignore that is set to "all" (and requires "git add
276 + -f" to override it).
277 +
278 + Expecting a reroll?
279 + cf. <B94F0800-06B5-47BC-8C22-AAE1882E5B9C@gmail.com>
280 + source: <37fe7956e089394bb1d75f4c8af4a3347b204803.1768376879.git.gitgitgadget@gmail.com>
281 +
282 +
283 +* kn/ref-batch-output-error-reporting-fix (2026-01-14) 6 commits
284 + - receive-pack: utilize rejected ref error details
285 + - fetch: utilize rejected ref error details
286 + - update-ref: utilize rejected error details if available
287 + - refs: add rejection detail to the callback function
288 + - refs: attach rejection details to updates
289 + - refs: remove unused header
290 +
291 + A handful of code paths that started using batched ref update API
292 + (after Git 2.51 or so) lost detailed error output, which have been
293 + corrected.
294 +
295 + Expecting a reroll?
296 + cf. <20260114175558.GG885771@coredump.intra.peff.net>
297 + source: <20260114-633-regression-lost-diagnostic-message-when-pushing-non-commit-objects-to-refs-heads-v1-6-f5f8b173c501@gmail.com>
298 +
299 +
300 +* ps/geometric-repacking-with-promisor-remotes (2026-01-05) 5 commits
301 + (merged to 'next' on 2026-01-15 at a5a24c2f14)
302 + + builtin/repack: handle promisor packs with geometric repacking
303 + + repack-promisor: extract function to remove redundant packs
304 + + repack-promisor: extract function to finalize repacking
305 + + repack-geometry: extract function to compute repacking split
306 + + builtin/pack-objects: exclude promisor objects with "--stdin-packs"
307 +
308 + "git repack --geometric" did not work with promisor packs, which
309 + has been corrected.
310 +
311 + Will merge to 'master'.
312 + source: <20260105-pks-geometric-repack-with-promisors-v1-0-c4660573437e@pks.im>
313 +
314 +
315 +* tb/midx-write-corrupt-checksum-fix (2026-01-12) 3 commits
316 + (merged to 'next' on 2026-01-15 at c387b3f023)
317 + + midx-write.c: assume checksum-invalid MIDXs require an update
318 + + t/t5319-multi-pack-index.sh: drop early 'test_done'
319 + + Merge branch 'ps/repack-avoid-noop-midx-rewrite' into tb/midx-write-corrupt-checksum-fix
320 + (this branch is used by tb/incremental-midx-part-3.2.)
321 +
322 + The logic that avoids reusing MIDX files with a wrong checksum was
323 + broken, which has been corrected.
324 +
325 + Will merge to 'master'.
326 + source: <cover.1768261435.git.me@ttaylorr.com>
327 +
328 +
329 +* ac/sparse-checkout-string-list-cleanup (2026-01-15) 1 commit
330 + - sparse-checkout: optimize string_list construction
331 +
332 + Code clean-up.
333 +
334 + Will merge to 'next'.
335 + source: <20260115130935.93526-1-amishhhaaaa@gmail.com>
336 +
337 +
338 +* ps/commit-list-functions-renamed (2026-01-15) 3 commits
339 + - commit: rename `free_commit_list()` to conform to coding guidelines
340 + - commit: rename `reverse_commit_list()` to conform to coding guidelines
341 + - commit: rename `copy_commit_list()` to conform to coding guidelines
342 +
343 + Rename three functions around the commit_list data structure.
344 +
345 + Comments?
346 + source: <20260115-pks-commit-list-coding-guidelines-v1-0-c58868dbf412@pks.im>
347 +
348 +
349 +* ps/config-doc-get-urlmatch-fix (2026-01-15) 1 commit
350 + - Documentation/config: fix replacement for --get-urlmatch
351 +
352 + Docfix.
353 +
354 + Will merge to 'next'.
355 + source: <20260115110832.15315-1-pushkarkumarsingh1970@gmail.com>
356 +
357 +
358 +* ps/odb-for-each-object (2026-01-15) 16 commits
359 + - odb: drop unused `for_each_{loose,packed}_object()` functions
360 + - reachable: convert to use `odb_for_each_object()`
361 + - builtin/pack-objects: use `packfile_store_for_each_object()`
362 + - odb: introduce mtime fields for object info requests
363 + - treewide: drop uses of `for_each_{loose,packed}_object()`
364 + - treewide: enumerate promisor objects via `odb_for_each_object()`
365 + - builtin/fsck: refactor to use `odb_for_each_object()`
366 + - odb: introduce `odb_for_each_object()`
367 + - packfile: introduce function to iterate through objects
368 + - packfile: extract function to iterate through objects of a store
369 + - object-file: introduce function to iterate through objects
370 + - object-file: extract function to read object info from path
371 + - odb: fix flags parameter to be unsigned
372 + - odb: rename `FOR_EACH_OBJECT_*` flags
373 + - Merge branch 'ps/packfile-store-in-odb-source' into ps/odb-for-each-object
374 + - Merge branch 'ps/read-object-info-improvements' into ps/odb-for-each-object
375 + (this branch uses ps/packfile-store-in-odb-source and ps/read-object-info-improvements.)
376 +
377 + Revamp object enumeration API around odb.
378 +
379 + Comments?
380 + source: <20260115-pks-odb-for-each-object-v1-0-5418a91d5d99@pks.im>
381 +
382 +
383 +* ps/validate-prefix-in-subtree-split (2026-01-15) 1 commit
384 + - subtree: validate --prefix against commit in split
385 +
386 + "git subtree split --prefix=P <commit>" now checks the prefix P
387 + against the tree of the (potentially quite different from the
388 + current working tree) given commit.
389 +
390 + Expecting a reroll?
391 + source: <20260115122652.18673-2-pushkarkumarsingh1970@gmail.com>
392 +
393 +--------------------------------------------------
394 +[Cooking]
395 +
396 * bc/doc-stash-import-export (2026-01-08) 1 commit
397 (merged to 'next' on 2026-01-10 at 48f26103bc)
398 + gitfaq: document using stash import/export to sync working tree
@@ -158,6 +442,7 @@ Release tarballs are available at:
442 * ar/run-command-hook (2026-01-09) 1 commit
443 (merged to 'next' on 2026-01-10 at 236f60e30d)
444 + hook: check for NULL pointer before deref
445 + (this branch is used by ar/run-command-hook-pre-push-fix.)
446
447 Fix-up a topic that has recently graduated to 'master'.
448
@@ -166,27 +451,28 @@ Release tarballs are available at:
451
452
453 * ps/ref-consistency-checks (2026-01-12) 17 commits
169 - - builtin/fsck: drop `fsck_head_link()`
170 - - builtin/fsck: move generic HEAD check into `refs_fsck()`
171 - - builtin/fsck: move generic object ID checks into `refs_fsck()`
172 - - refs/reftable: introduce generic checks for refs
173 - - refs/reftable: fix consistency checks with worktrees
174 - - refs/reftable: extract function to retrieve backend for worktree
175 - - refs/reftable: adapt includes to become consistent
176 - - refs/files: introduce function to perform normal ref checks
177 - - refs/files: extract generic symref target checks
178 - - fsck: drop unused fields from `struct fsck_ref_report`
179 - - refs/files: perform consistency checks for root refs
180 - - refs/files: improve error handling when verifying symrefs
181 - - refs/files: extract function to check single ref
182 - - refs/files: remove useless indirection
183 - - refs/files: remove `refs_check_dir` parameter
184 - - refs/files: move fsck functions into global scope
185 - - refs/files: simplify iterating through root refs
454 + (merged to 'next' on 2026-01-13 at ba6c9deadb)
455 + + builtin/fsck: drop `fsck_head_link()`
456 + + builtin/fsck: move generic HEAD check into `refs_fsck()`
457 + + builtin/fsck: move generic object ID checks into `refs_fsck()`
458 + + refs/reftable: introduce generic checks for refs
459 + + refs/reftable: fix consistency checks with worktrees
460 + + refs/reftable: extract function to retrieve backend for worktree
461 + + refs/reftable: adapt includes to become consistent
462 + + refs/files: introduce function to perform normal ref checks
463 + + refs/files: extract generic symref target checks
464 + + fsck: drop unused fields from `struct fsck_ref_report`
465 + + refs/files: perform consistency checks for root refs
466 + + refs/files: improve error handling when verifying symrefs
467 + + refs/files: extract function to check single ref
468 + + refs/files: remove useless indirection
469 + + refs/files: remove `refs_check_dir` parameter
470 + + refs/files: move fsck functions into global scope
471 + + refs/files: simplify iterating through root refs
472
473 Update code paths that check data integrity around refs subsystem.
474
189 - Will merge to 'next".
475 + Will merge to 'master'.
476 cf. <CAOLa=ZShPP3BPXa=YnC-vuX4zF=pUTFdUidZwOdna8bfVTNM9w@mail.gmail.com>
477 source: <20260112-pks-refs-verify-fixes-v2-0-2e9e453bd6c3@pks.im>
478
@@ -213,12 +499,13 @@ Release tarballs are available at:
499
500
501 * cs/rebased-subtree-split (2026-01-09) 1 commit
216 - - contrib/subtree: detect rewritten subtree commits
502 + (merged to 'next' on 2026-01-13 at b213ccc8c1)
503 + + contrib/subtree: detect rewritten subtree commits
504
505 The split command in "git subtree" (in contrib/) has been taught to
506 deal better with rebased history.
507
221 - Will merge to 'next'.
508 + Will merge to 'master'.
509 source: <20260110011811.788219-1-ask+git@howdoi.land>
510
511
@@ -230,40 +517,42 @@ Release tarballs are available at:
517 get confused where the updated shallow points are, which has been
518 corrected.
519
233 - Will merge to 'next'?
520 + Expecting a reroll?
521 + cf. <11b951ab-b624-4ab8-b7b1-fe41a40c9d0e@app.fastmail.com>
522 + cf. <f021269b-c89c-41c8-aa08-2ec2443ac7e8@app.fastmail.com>
523 source: <pull.2121.v2.git.git.1767997426.gitgitgadget@gmail.com>
524
525
526 * kt/http-backend-errors (2026-01-11) 1 commit
238 - - http-backend: write newlines to stderr when responding with errors
527 + (merged to 'next' on 2026-01-13 at 35d72c8eb9)
528 + + http-backend: write newlines to stderr when responding with errors
529
530 Some error messages from the http transport layer lacked the
531 terminating newline, which has been corrected.
532
243 - Will merge to 'next'.
533 + Will merge to 'master'.
534 source: <20260112014508.17248-1-kj@kjtsanaktsidis.id.au>
535
536
537 * ps/t1410-cleanup (2026-01-11) 1 commit
248 - - t1410: use test helpers in reflog rewind test
538 + (merged to 'next' on 2026-01-13 at 51b666d16e)
539 + + t1410: use test helpers in reflog rewind test
540
541 Test clean-up.
542
252 - Will merge to 'next'.
543 + Will merge to 'master'.
544 source: <20260111191525.17087-1-pushkarkumarsingh1970@gmail.com>
545
546
256 -* dd/t5403-modernise (2026-01-11) 2 commits
547 +* dd/t5403-modernise (2026-01-12) 2 commits
548 - t5403: use test_cmp for post-checkout argument checks
258 - - t5403:introduce check_post_checkout helper function
549 + - t5403: introduce check_post_checkout helper function
550
551 Test clean-up.
552
553 Will merge to 'next'?
263 - source: <20260112065301.1290-3-deveshigurgaon@gmail.com>
554 + source: <20260112163643.231-3-deveshigurgaon@gmail.com>
555
265 ---------------------------------------------------
266 -[Cooking]
556
557 * ml/doc-blame-markup (2026-01-08) 2 commits
558 (merged to 'next' on 2026-01-10 at 1f87b77810)
@@ -338,7 +627,7 @@ Release tarballs are available at:
627 source: <pull.2156.git.git.1767379944.gitgitgadget@gmail.com>
628
629
341 -* hn/status-compare-with-push (2026-01-10) 2 commits
630 +* hn/status-compare-with-push (2026-01-13) 2 commits
631 - status: show comparison with push remote tracking branch
632 - refactor format_branch_comparison in preparation
633
@@ -347,18 +636,20 @@ Release tarballs are available at:
636 different (i.e., triangular workflow).
637
638 Will merge to 'next'?
350 - source: <pull.2138.v22.git.git.1768074976.gitgitgadget@gmail.com>
639 + source: <pull.2138.v25.git.git.1768306316.gitgitgadget@gmail.com>
640
641
353 -* ob/core-attributesfile-in-repository (2026-01-02) 1 commit
354 - - environment: move "core.attributesFile" into repo-setting
642 +* ob/core-attributesfile-in-repository (2026-01-13) 3 commits
643 + - environment: move "branch.autoSetupMerge" into `struct repo_config_values`
644 + - environment: environment: stop using core.sparseCheckout globally
645 + - environment: stop storing `core.attributesFile` globally
646
647 The core.attributesfile is intended to be set per repository, but
648 were kept track of by a single global variable in-core, which has
649 been corrected by moving it to per-repository data structure.
650
651 Comments?
361 - source: <aVfzMsN2ouY3UBFG@ubuntu>
652 + source: <cover.1768318762.git.belkid98@gmail.com>
653
654
655 * aa/add-p-previous-decisions (2026-01-08) 1 commit
@@ -389,16 +680,6 @@ Release tarballs are available at:
680 source: <pull.2150.v2.git.git.1767226763360.gitgitgadget@gmail.com>
681
682
392 -* pt/t7800-difftool-test-racefix (2026-01-03) 1 commit
393 - (merged to 'next' on 2026-01-06 at 572d775bca)
394 - + t7800: fix racy "difftool --dir-diff syncs worktree" test
395 -
396 - Test fixup.
397 -
398 - Will merge to 'master'.
399 - source: <pull.2149.v3.git.git.1767472809897.gitgitgadget@gmail.com>
400 -
401 -
683 * en/fsck-snapshot-ref-state (2026-01-09) 1 commit
684 (merged to 'next' on 2026-01-12 at d5dff1bba4)
685 + fsck: snapshot default refs before object walk
@@ -410,25 +691,6 @@ Release tarballs are available at:
691 source: <pull.2026.v3.git.1767980953134.gitgitgadget@gmail.com>
692
693
413 -* kh/replay-invalid-onto-advance (2026-01-05) 6 commits
414 - (merged to 'next' on 2026-01-08 at 1024748f91)
415 - + t3650: add more regression tests for failure conditions
416 - + replay: die if we cannot parse object
417 - + replay: improve code comment and die message
418 - + replay: die descriptively when invalid commit-ish is given
419 - + replay: find *onto only after testing for ref name
420 - + replay: remove dead code and rearrange
421 - (this branch is used by ps/history and pw/replay-drop-empty.)
422 -
423 - Improve the error message when a bad argument is given to the
424 - `--onto` option of "git replay". Test coverage of "git replay" has
425 - been improved.
426 -
427 - Will merge to 'master'.
428 - cf. <CABPp-BGFNyKkpcWWksqvNqyXspMqfywbYyyhuSUaL41YHNHoNg@mail.gmail.com>
429 - source: <V3_CV_replay_die_descr.1a4@msgid.xyz>
430 -
431 -
694 * cc/lop-filter-auto (2025-12-23) 9 commits
695 - fetch-pack: wire up and enable auto filter logic
696 - promisor-remote: keep advertised filter in memory
@@ -491,7 +753,10 @@ Release tarballs are available at:
753
754 Upstream symbolic link support on Windows from Git-for-Windows.
755
494 - Will merge to 'next'?
756 + Expecting a reroll.
757 + cf. <5fe64b77-d10b-b66e-8622-14bec1e96f4a@gmx.de>
758 + cf. <14388349-d1b5-fc8f-b6c7-4a7b43e64494@gmx.de>
759 + cf. <704e952d-7924-00ce-b8b0-ad355e659335@gmx.de>
760 source: <pull.2018.v2.git.1767989115.gitgitgadget@gmail.com>
761
762
@@ -505,93 +770,83 @@ Release tarballs are available at:
770 source: <pull.2011.v4.git.1767804355831.gitgitgadget@gmail.com>
771
772
508 -* js/neuter-sideband (2025-12-17) 4 commits
509 - - sideband: add options to allow more control sequences to be passed through
510 - - sideband: do allow ANSI color sequences by default
511 - - sideband: introduce an "escape hatch" to allow control characters
512 - - sideband: mask control characters
513 -
514 - Invalidate control characters in sideband messages, to avoid
515 - terminal state getting messed up.
516 -
517 - Comments?
518 - cf. <aS-D5lD2Kk6BHNIl@fruit.crustytoothpaste.net>
519 - source: <pull.1853.v2.git.1765981422.gitgitgadget@gmail.com>
520 -
521 -
773 * ps/read-object-info-improvements (2026-01-12) 8 commits
523 - - packfile: drop repository parameter from `packed_object_info()`
524 - - packfile: skip unpacking object header for disk size requests
525 - - packfile: disentangle return value of `packed_object_info()`
526 - - packfile: always populate pack-specific info when reading object info
527 - - packfile: extend `is_delta` field to allow for "unknown" state
528 - - packfile: always declare object info to be OI_PACKED
529 - - object-file: always set OI_LOOSE when reading object info
530 - - Merge branch 'jc/object-read-stream-fix' into ps/read-object-info-improvements
774 + (merged to 'next' on 2026-01-14 at e84be1a7bc)
775 + + packfile: drop repository parameter from `packed_object_info()`
776 + + packfile: skip unpacking object header for disk size requests
777 + + packfile: disentangle return value of `packed_object_info()`
778 + + packfile: always populate pack-specific info when reading object info
779 + + packfile: extend `is_delta` field to allow for "unknown" state
780 + + packfile: always declare object info to be OI_PACKED
781 + + object-file: always set OI_LOOSE when reading object info
782 + + Merge branch 'jc/object-read-stream-fix' into ps/read-object-info-improvements
783 + (this branch is used by ps/odb-for-each-object.)
784
785 The object-info API has been cleaned up.
786
534 - Comments?
787 + Will merge to 'master'.
788 source: <20260112-b4-pks-odb-read-object-info-improvements-v5-0-9a6124e95bf2@pks.im>
789
790
538 -* tb/macos-iconv-workarounds (2026-01-11) 2 commits
539 - - utf8.c: enable workaround for iconv under macOS 14/15
540 - - utf8.c: prepare workaround for iconv under macOS 14/15
791 +* tb/macos-iconv-workarounds (2026-01-12) 2 commits
792 + (merged to 'next' on 2026-01-13 at f2e51d72b8)
793 + + utf8.c: enable workaround for iconv under macOS 14/15
794 + + utf8.c: prepare workaround for iconv under macOS 14/15
795
796 The iconv library on macOS fails to correctly handle stateful
797 ISO/IEC 2022 encoded strings. Work it around instead of replacing
798 it wholesale from homebrew.
799
546 - Will merge to 'next'.
547 - source: <20260111195151.716191-1-tboegi@web.de>
800 + Will merge to 'master'.
801 + source: <20260112162553.774051-1-tboegi@web.de>
802
803
804 * js/prep-symlink-windows (2026-01-09) 6 commits
551 - - trim_last_path_component(): avoid hard-coding the directory separator
552 - - strbuf_readlink(): support link targets that exceed 2*PATH_MAX
553 - - strbuf_readlink(): avoid calling `readlink()` twice in corner-cases
554 - - init: do parse _all_ core.* settings early
555 - - mingw: do resolve symlinks in `getcwd()`
556 - - Merge branch 'js/test-symlink-windows' into js/prep-symlink-windows
805 + (merged to 'next' on 2026-01-14 at d05f3a8ea5)
806 + + trim_last_path_component(): avoid hard-coding the directory separator
807 + + strbuf_readlink(): support link targets that exceed 2*PATH_MAX
808 + + strbuf_readlink(): avoid calling `readlink()` twice in corner-cases
809 + + init: do parse _all_ core.* settings early
810 + + mingw: do resolve symlinks in `getcwd()`
811 + + Merge branch 'js/test-symlink-windows' into js/prep-symlink-windows
812 (this branch is used by js/symlink-windows.)
813
814 Further preparation to upstream symbolic link support on Windows.
815
561 - Will merge to 'next'?
816 + Will merge to 'master'.
817 source: <pull.2017.v2.git.1767989109.gitgitgadget@gmail.com>
818
819
565 -* ap/http-probe-rpc-use-auth (2025-11-12) 1 commit
566 - - remote-curl: Use auth for probe_rpc() requests too
820 +* ap/http-probe-rpc-use-auth (2026-01-14) 1 commit
821 + - remote-curl: use auth for probe_rpc() requests too
822
823 HTTP transport failed to authenticate in some code pahts, which has
824 been corrected.
825
571 - Expecting a reroll?
572 - cf. <aWSvJbYBWpJc-Vcc@pks.im>
573 - source: <20251112223722.376330-1-aplattner@nvidia.com>
826 + Will merge to 'next'?
827 + source: <20260114163619.614297-2-aplattner@nvidia.com>
828
829
830 * ps/packfile-store-in-odb-source (2026-01-09) 12 commits
577 - - packfile: move MIDX into packfile store
578 - - packfile: refactor `find_pack_entry()` to work on the packfile store
579 - - packfile: inline `find_kept_pack_entry()`
580 - - packfile: only prepare owning store in `packfile_store_prepare()`
581 - - packfile: only prepare owning store in `packfile_store_get_packs()`
582 - - packfile: move packfile store into object source
583 - - packfile: refactor misleading code when unusing pack windows
584 - - packfile: refactor kept-pack cache to work with packfile stores
585 - - packfile: pass source to `prepare_pack()`
586 - - packfile: create store via its owning source
587 - - Merge branch 'ps/odb-misc-fixes' into ps/packfile-store-in-odb-source
588 - - Merge branch 'ps/object-read-stream' into ps/packfile-store-in-odb-source
589 - (this branch uses ps/odb-misc-fixes.)
831 + (merged to 'next' on 2026-01-14 at f375c8e347)
832 + + packfile: move MIDX into packfile store
833 + + packfile: refactor `find_pack_entry()` to work on the packfile store
834 + + packfile: inline `find_kept_pack_entry()`
835 + + packfile: only prepare owning store in `packfile_store_prepare()`
836 + + packfile: only prepare owning store in `packfile_store_get_packs()`
837 + + packfile: move packfile store into object source
838 + + packfile: refactor misleading code when unusing pack windows
839 + + packfile: refactor kept-pack cache to work with packfile stores
840 + + packfile: pass source to `prepare_pack()`
841 + + packfile: create store via its owning source
842 + + Merge branch 'ps/odb-misc-fixes' into ps/packfile-store-in-odb-source
843 + + Merge branch 'ps/object-read-stream' into ps/packfile-store-in-odb-source
844 + (this branch is used by ps/odb-for-each-object.)
845
846 The packfile_store data structure is moved from object store to odb
847 source.
848
594 - Will merge to 'next'?
849 + Will merge to 'master'.
850 source: <20260109-b4-pks-pack-store-via-source-v3-0-877fd7b7bf81@pks.im>
851
852
@@ -616,32 +871,7 @@ Release tarballs are available at:
871 source: <pull.2123.git.git.1765261419802.gitgitgadget@gmail.com>
872
873
619 -* ps/odb-misc-fixes (2026-01-06) 3 commits
620 - (merged to 'next' on 2026-01-08 at 850d35a76d)
621 - + odb: properly close sources before freeing them
622 - + builtin/gc: fix condition for whether to write commit graphs
623 - + Merge branch 'ps/object-source-management' into ps/odb-misc-fixes
624 - (this branch is used by ps/packfile-store-in-odb-source.)
625 -
626 - Miscellaneous fixes on object database layer.
627 -
628 - Will merge to 'master'.
629 - source: <20260106-odb-related-fixes-v3-0-7ac157207b20@pks.im>
630 -
631 -
632 -* ps/clar-integers (2025-12-06) 3 commits
633 - (merged to 'next' on 2026-01-08 at 9f9674ac20)
634 - + gitattributes: disable blank-at-eof errors for clar test expectations
635 - + t/unit-tests: demonstrate use of integer comparison assertions
636 - + t/unit-tests: update clar to 39f11fe
637 -
638 - Import newer version of "clar", unit testing framework.
639 -
640 - Will merge to 'master'.
641 - source: <20251206-b4-pks-clar-update-v2-0-9a14b10c1a36@pks.im>
642 -
643 -
644 -* tb/incremental-midx-part-3.2 (2025-12-06) 17 commits
874 +* tb/incremental-midx-part-3.2 (2026-01-14) 19 commits
875 - midx: enable reachability bitmaps during MIDX compaction
876 - midx: implement MIDX compaction
877 - t/helper/test-read-midx.c: plug memory leak when selecting layer
@@ -657,61 +887,22 @@ Release tarballs are available at:
887 - git-multi-pack-index(1): align SYNOPSIS with 'git multi-pack-index -h'
888 - git-multi-pack-index(1): remove non-existent incompatibility
889 - builtin/multi-pack-index.c: make '--progress' a common option
660 - - midx: split `get_midx_checksum()` by adding `get_midx_hash()`
890 + - midx: introduce `midx_get_checksum_hex()`
891 + - midx: rename `get_midx_checksum()` to `midx_get_checksum_hash()`
892 - midx: mark `get_midx_checksum()` arguments as const
893 + - Merge branch 'tb/midx-write-corrupt-checksum-fix' into tb/incremental-midx-part-3.2
894 + (this branch uses tb/midx-write-corrupt-checksum-fix.)
895
896 Further work on incremental repacking using MIDX/bitmap
897
665 - Expecting a reroll.
666 - cf. <aTd+fxpflcLuJXDn@nand.local>
667 - source: <cover.1765053054.git.me@ttaylorr.com>
668 -
669 -
670 -* yc/histogram-hunk-shift-fix (2025-12-06) 1 commit
671 - - xdiff: re-diff shifted change groups when using histogram algorithm
672 -
673 - The final clean-up phase of the diff output could turn the result of
674 - histogram diff algorithm suboptimal, which has been corrected.
675 -
898 Comments?
677 - source: <pull.2120.git.git.1765054287938.gitgitgadget@gmail.com>
678 -
679 -
680 -* jk/parse-int (2025-11-30) 5 commits
681 - - fsck: use parse_unsigned_from_buf() for parsing timestamp
682 - - cache-tree: use parse_int_from_buf()
683 - - parse: add functions for parsing from non-string buffers
684 - - parse: prefer bool to int for boolean returns
685 - - Merge branch 'jk/asan-bonanza' into jk/parse-int
686 -
687 - Introduce a more robust way to parse a decimal integer stored in a
688 - piece of memory that is not necessarily terminated with NUL (which
689 - Asan strict-string-check complains even when use of strtol() is
690 - safe due to varified existence of whitespace after the digits).
691 -
692 - Expecting a reroll.
693 - cf. <aTFvKOHlm4zfT9dU@pks.im>
694 - cf. <4d83375b-76e2-4420-80dd-6a04d3201532@gmail.com>
695 - source: <20251130131351.GA198697@coredump.intra.peff.net>
696 -
697 -
698 -* tc/last-modified-options-cleanup (2025-11-26) 4 commits
699 - - fixup! last-modified: document option --max-depth
700 - - last-modified: document how depth is handled better
701 - - last-modified: document option --max-depth
702 - - last-modified: handle and document NUL termination
703 -
704 - The "-z" and "--max-depth" documentation (and implementation of
705 - "-z") in the "git last-modified" command have been updated.
706 -
707 - Expecting a reroll.
708 - source: <20251126-toon-last-modified-zzzz-v1-0-608350df0caa@iotcl.com>
899 + source: <cover.1768420450.git.me@ttaylorr.com>
900
901
902 * pw/replay-drop-empty (2025-12-18) 2 commits
903 - replay: drop commits that become empty
904 - Merge branch 'ps/history' into pw/replay-drop-empty
714 - (this branch uses kh/replay-invalid-onto-advance and ps/history.)
905 + (this branch uses ps/history.)
906
907 "git replay" is taught to drop commits that become empty (not the
908 ones that are empty in the original).
@@ -720,70 +911,6 @@ Release tarballs are available at:
911 source: <375adc4e941f3bb22a2b12ee26a083951ed724dd.1766076625.git.phillip.wood@dunelm.org.uk>
912
913
723 -* sp/shallow-time-boundary (2025-11-23) 1 commit
724 - - shallow: set borders which are all reachable after clone shallow since
725 -
726 - The set of shallow boundary "git clone --shallow-since" leaves
727 - contained commits that are not on the boundary, which has been
728 - corrected.
729 -
730 - Comments?
731 - source: <pull.2107.v2.git.git.1763926552033.gitgitgadget@gmail.com>
732 -
733 -
734 -* kn/ref-location (2025-12-01) 2 commits
735 - - refs: add GIT_REF_URI to specify reference backend and directory
736 - - refs: support obtaining ref_store for given dir
737 -
738 - A mechanism to specify what reference backend to use and store
739 - references in which directory is introduced, which would likely to
740 - be useful during ref migration.
741 -
742 - Comments?
743 - source: <20251201-kn-alternate-ref-dir-v3-0-c11b946bc2fa@gmail.com>
744 -
745 -
746 -* dw/config-global-list (2025-10-09) 4 commits
747 - - config: keep bailing on unreadable global files
748 - - config: read global scope via config_sequence
749 - - config: test home and xdg files in `list --global`
750 - - cleanup_path: force forward slashes on Windows
751 -
752 - "git config --list --global", unlike "git config --list", did not
753 - consult both of the two possible per-user sources of the
754 - configuration files, i.e. $HOME/.gitconfig and the XDG one, which
755 - has been corrected.
756 -
757 - Expecting a reroll.
758 - cf. <20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net>
759 - source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>
760 -
761 -
762 -* lc/rebase-trailer (2025-11-05) 4 commits
763 - - rebase: support --trailer
764 - - trailer: append trailers in-process and drop the fork to `interpret-trailers`
765 - - trailer: move process_trailers to trailer.h
766 - - interpret-trailers: factor out buffer-based processing to process_trailers()
767 -
768 - Refactor code paths to run "interpret-trailers" from "git
769 - commit/tag" and use it in "git rebase".
770 -
771 - Expecting a reroll.
772 - cf. <19a8fe42354.3909481a3912041.7970296104893780556@linux.beauty>
773 - source: <20251105142944.73061-1-me@linux.beauty>
774 -
775 -
776 -* jc/exclude-with-gitignore (2025-11-04) 1 commit
777 - - dir.c: do not be fooled by :(exclude) pathspec elements
778 -
779 - "git add ':(exclude)foo.o'" is clearly a request not to add 'foo.o',
780 - but the command complained about listing an ignored path foo.o on
781 - the command line, which has been corrected.
782 -
783 - Comments?
784 - source: <xmqqtsz9o3cn.fsf@gitster.g>
785 -
786 -
914 * bc/sha1-256-interop-02 (2025-11-17) 15 commits
915 - object-file-convert: always make sure object ID algo is valid
916 - rust: add a small wrapper around the hashfile code
@@ -819,7 +946,7 @@ Release tarballs are available at:
946 source: <cover.1767649692.git.ben.knoble+github@gmail.com>
947
948
822 -* ps/history (2026-01-12) 9 commits
949 +* ps/history (2026-01-13) 9 commits
950 - builtin/history: implement "reword" subcommand
951 - builtin: add new "history" command
952 - wt-status: provide function to expose status for trees
@@ -829,25 +956,15 @@ Release tarballs are available at:
956 - builtin/replay: move core logic into "libgit.a"
957 - builtin/replay: extract core logic to replay revisions
958 - Merge branch 'kh/replay-invalid-onto-advance' into ps/history
832 - (this branch is used by pw/replay-drop-empty; uses kh/replay-invalid-onto-advance.)
959 + (this branch is used by pw/replay-drop-empty.)
960
961 "git history" history rewriting UI.
835 - source: <20260112-b4-pks-history-builtin-v10-0-e3c6aa5b4cec@pks.im>
836 -
962
838 -* ms/doc-worktree-side-by-side (2025-10-10) 2 commits
839 - - doc: git-worktree: Add side by side branch checkout example
840 - - doc: git-worktree: Link to examples
841 -
842 - Document "git worktree add" and use of out-of-tree worktrees with
843 - examples.
844 -
845 - Expecting a reroll.
846 - cf. <CAPig+cSNesf0UwS4=Bxe-Qn+G9y3YYPyOK+7y3q8QJk+o7jaVg@mail.gmail.com>
847 - source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de>
963 + Will merge to 'next'?
964 + source: <20260113-b4-pks-history-builtin-v11-0-e74ebfa2652d@pks.im>
965
966
850 -* ar/submodule-gitdir-tweak (2026-01-07) 11 commits
967 +* ar/submodule-gitdir-tweak (2026-01-12) 11 commits
968 - submodule: detect conflicts with existing gitdir configs
969 - submodule: hash the submodule name for the gitdir path
970 - submodule: fix case-folding gitdir filesystem collisions
@@ -864,8 +981,8 @@ Release tarballs are available at:
981 each other by encoding submodule names before using them as path
982 components.
983
867 - Comments?
868 - source: <20260107230145.517562-1-adrian.ratiu@collabora.com>
984 + Will merge to 'next'?
985 + source: <20260112184632.1334495-1-adrian.ratiu@collabora.com>
986
987 --------------------------------------------------
988 [Discarded]
@@ -876,6 +993,6 @@ Release tarballs are available at:
993 The command line completion script (in contrib/) learned to
994 complete "git -<TAB>" to give single-letter options like "-C".
995
879 - Will discard. We do not complete single-letter options themselves.
996 + We do not complete single-letter options themselves.
997 cf. <xmqqo6onjfwl.fsf@gitster.g>
998 source: <pull.2100.v2.git.git.1764174391776.gitgitgadget@gmail.com>