What's cooking (2026/01 #07)
Junio C Hamano committed
Jan 21, 2026 at 08:45 UTC
29fecdcc1d3d44147971890d8662500758cdfe10
1 file changed
+238
-308
whats-cooking.txt
+238
-308
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (Jan 2026, #06)
3
-X-master-at: b5c409c40f1595e3e590760c6f14a16b6683e22c
4
-X-next-at: 0ac79233d615b382626469283a2cd0dfe9edd163
2
+Subject: What's cooking in git.git (Jan 2026, #07)
3
+X-master-at: 83a69f19359e6d9bc980563caca38b2b5729808c
4
+X-next-at: eba53bf80eb721f8e61c7b20a0dfc69f2d841278
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (Jan 2026, #06)
7
+What's cooking in git.git (Jan 2026, #07)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -21,6 +21,12 @@ Copies of the source code to Git live in many repositories, and the
21
following is a list of the ones I push into or their mirrors. Some
22
repositories have only a subset of branches.
23
24
+Git 2.53-rc1 has been tagged. What's slated to 'master' as of this
25
+edition of the "What's cooking" report will be merged and would
26
+appear in the upcoming release, while everything else will have to
27
+wait until the next cycle begins. Until then, please hunt for
28
+regressions.
29
+
30
With maint, master, next, seen, todo:
31
32
git://git.kernel.org/pub/scm/git/git.git/
@@ -48,87 +54,169 @@ Release tarballs are available at:
54
--------------------------------------------------
55
[Graduated to 'master']
56
51
-* ac/t1420-use-more-direct-check (2026-01-06) 1 commit
52
- (merged to 'next' on 2026-01-10 at 6bccdd0e04)
53
- + t1420: modernize the lost-found test
57
+* cs/rebased-subtree-split (2026-01-09) 1 commit
58
+ (merged to 'next' on 2026-01-13 at b213ccc8c1)
59
+ + contrib/subtree: detect rewritten subtree commits
60
+
61
+ The split command in "git subtree" (in contrib/) has been taught to
62
+ deal better with rebased history.
63
+ source: <20260110011811.788219-1-ask+git@howdoi.land>
64
+
65
+
66
+* en/fsck-snapshot-ref-state (2026-01-09) 1 commit
67
+ (merged to 'next' on 2026-01-12 at d5dff1bba4)
68
+ + fsck: snapshot default refs before object walk
69
+
70
+ "git fsck" used inconsistent set of refs to show a confused
71
+ warning, which has been corrected.
72
+ source: <pull.2026.v3.git.1767980953134.gitgitgadget@gmail.com>
73
+
74
+
75
+* je/doc-reset (2026-01-05) 4 commits
76
+ (merged to 'next' on 2026-01-12 at 44b4f99803)
77
+ + doc: git-reset: clarify `git reset <pathspec>`
78
+ + doc: git-reset: clarify `git reset [mode]`
79
+ + doc: git-reset: clarify intro
80
+ + doc: git-reset: reorder the forms
81
+
82
+ Documentation updates.
83
+ source: <cover.1767649692.git.ben.knoble+github@gmail.com>
84
+
85
+
86
+* js/prep-symlink-windows (2026-01-09) 6 commits
87
+ (merged to 'next' on 2026-01-14 at d05f3a8ea5)
88
+ + trim_last_path_component(): avoid hard-coding the directory separator
89
+ + strbuf_readlink(): support link targets that exceed 2*PATH_MAX
90
+ + strbuf_readlink(): avoid calling `readlink()` twice in corner-cases
91
+ + init: do parse _all_ core.* settings early
92
+ + mingw: do resolve symlinks in `getcwd()`
93
+ + Merge branch 'js/test-symlink-windows' into js/prep-symlink-windows
94
+ (this branch is used by js/symlink-windows.)
95
+
96
+ Further preparation to upstream symbolic link support on Windows.
97
+ source: <pull.2017.v2.git.1767989109.gitgitgadget@gmail.com>
98
55
- Test update.
56
- source: <20260106132658.798706-1-andchi@fastmail.com>
99
100
+* kt/http-backend-errors (2026-01-11) 1 commit
101
+ (merged to 'next' on 2026-01-13 at 35d72c8eb9)
102
+ + http-backend: write newlines to stderr when responding with errors
103
+
104
+ Some error messages from the http transport layer lacked the
105
+ terminating newline, which has been corrected.
106
+ source: <20260112014508.17248-1-kj@kjtsanaktsidis.id.au>
107
59
-* bc/doc-stash-import-export (2026-01-08) 1 commit
60
- (merged to 'next' on 2026-01-10 at 48f26103bc)
61
- + gitfaq: document using stash import/export to sync working tree
108
63
- Update a FAQ entry on synching two separate repositories using the
64
- "git stash export/import" recently introduced.
65
- source: <20260109014608.42773-1-sandals@crustytoothpaste.net>
109
+* ps/packfile-store-in-odb-source (2026-01-09) 12 commits
110
+ (merged to 'next' on 2026-01-14 at f375c8e347)
111
+ + packfile: move MIDX into packfile store
112
+ + packfile: refactor `find_pack_entry()` to work on the packfile store
113
+ + packfile: inline `find_kept_pack_entry()`
114
+ + packfile: only prepare owning store in `packfile_store_prepare()`
115
+ + packfile: only prepare owning store in `packfile_store_get_packs()`
116
+ + packfile: move packfile store into object source
117
+ + packfile: refactor misleading code when unusing pack windows
118
+ + packfile: refactor kept-pack cache to work with packfile stores
119
+ + packfile: pass source to `prepare_pack()`
120
+ + packfile: create store via its owning source
121
+ + Merge branch 'ps/odb-misc-fixes' into ps/packfile-store-in-odb-source
122
+ + Merge branch 'ps/object-read-stream' into ps/packfile-store-in-odb-source
123
+ (this branch is used by ps/odb-for-each-object.)
124
+
125
+ The packfile_store data structure is moved from object store to odb
126
+ source.
127
+ source: <20260109-b4-pks-pack-store-via-source-v3-0-877fd7b7bf81@pks.im>
128
+
129
+
130
+* ps/read-object-info-improvements (2026-01-12) 8 commits
131
+ (merged to 'next' on 2026-01-14 at e84be1a7bc)
132
+ + packfile: drop repository parameter from `packed_object_info()`
133
+ + packfile: skip unpacking object header for disk size requests
134
+ + packfile: disentangle return value of `packed_object_info()`
135
+ + packfile: always populate pack-specific info when reading object info
136
+ + packfile: extend `is_delta` field to allow for "unknown" state
137
+ + packfile: always declare object info to be OI_PACKED
138
+ + object-file: always set OI_LOOSE when reading object info
139
+ + Merge branch 'jc/object-read-stream-fix' into ps/read-object-info-improvements
140
+ (this branch is used by ps/odb-for-each-object.)
141
142
+ The object-info API has been cleaned up.
143
+ source: <20260112-b4-pks-odb-read-object-info-improvements-v5-0-9a6124e95bf2@pks.im>
144
68
-* ds/builtin-doc-update (2026-01-08) 1 commit
69
- (merged to 'next' on 2026-01-10 at a98a468cf0)
70
- + builtin.h: update documentation
145
72
- Update in-code comment doc to match the current API.
73
- source: <pull.2028.git.1767929941577.gitgitgadget@gmail.com>
146
+* ps/ref-consistency-checks (2026-01-12) 17 commits
147
+ (merged to 'next' on 2026-01-13 at ba6c9deadb)
148
+ + builtin/fsck: drop `fsck_head_link()`
149
+ + builtin/fsck: move generic HEAD check into `refs_fsck()`
150
+ + builtin/fsck: move generic object ID checks into `refs_fsck()`
151
+ + refs/reftable: introduce generic checks for refs
152
+ + refs/reftable: fix consistency checks with worktrees
153
+ + refs/reftable: extract function to retrieve backend for worktree
154
+ + refs/reftable: adapt includes to become consistent
155
+ + refs/files: introduce function to perform normal ref checks
156
+ + refs/files: extract generic symref target checks
157
+ + fsck: drop unused fields from `struct fsck_ref_report`
158
+ + refs/files: perform consistency checks for root refs
159
+ + refs/files: improve error handling when verifying symrefs
160
+ + refs/files: extract function to check single ref
161
+ + refs/files: remove useless indirection
162
+ + refs/files: remove `refs_check_dir` parameter
163
+ + refs/files: move fsck functions into global scope
164
+ + refs/files: simplify iterating through root refs
165
166
+ Update code paths that check data integrity around refs subsystem.
167
+ cf. <CAOLa=ZShPP3BPXa=YnC-vuX4zF=pUTFdUidZwOdna8bfVTNM9w@mail.gmail.com>
168
+ source: <20260112-pks-refs-verify-fixes-v2-0-2e9e453bd6c3@pks.im>
169
76
-* jk/cat-file-avoid-bitmap-when-unneeded (2026-01-06) 1 commit
77
- (merged to 'next' on 2026-01-10 at 5e3f0240f7)
78
- + cat-file: only use bitmaps when filtering
170
80
- Fix for a performance regression in "git cat-file".
81
- cf. <aV4Xa9ceY4ahYj2m@pks.im>
82
- source: <20260106102558.GA68914@coredump.intra.peff.net>
171
+* ps/t1410-cleanup (2026-01-11) 1 commit
172
+ (merged to 'next' on 2026-01-13 at 51b666d16e)
173
+ + t1410: use test helpers in reflog rewind test
174
175
+ Test clean-up.
176
+ source: <20260111191525.17087-1-pushkarkumarsingh1970@gmail.com>
177
85
-* jk/t-perf-fixes (2026-01-06) 2 commits
86
- (merged to 'next' on 2026-01-10 at 9a633e87df)
87
- + t/perf/run: preserve GIT_PERF_* from environment
88
- + t/perf/perf-lib: fix assignment of TEST_OUTPUT_DIRECTORY
178
90
- Perf-test fixes.
91
- source: <20260106101043.GA3723319@coredump.intra.peff.net>
179
+* tb/macos-iconv-workarounds (2026-01-12) 2 commits
180
+ (merged to 'next' on 2026-01-13 at f2e51d72b8)
181
+ + utf8.c: enable workaround for iconv under macOS 14/15
182
+ + utf8.c: prepare workaround for iconv under macOS 14/15
183
184
+ The iconv library on macOS fails to correctly handle stateful
185
+ ISO/IEC 2022 encoded strings. Work it around instead of replacing
186
+ it wholesale from homebrew.
187
+ source: <20260112162553.774051-1-tboegi@web.de>
188
94
-* kh/doc-patch-id (2026-01-07) 6 commits
95
- (merged to 'next' on 2026-01-10 at 27a1d947d1)
96
- + doc: patch-id: --verbatim locks in --stable
97
- + doc: patch-id: spell out the git-diff-tree(1) form
98
- + doc: patch-id: use definite article for the result
99
- + patch-id: use “patch ID” throughout
100
- + doc: patch-id: capitalize Git version
101
- + doc: patch-id: don’t use semicolon between bullet points
189
+--------------------------------------------------
190
+[New Topics]
191
103
- "git patch-id" documentation updates.
104
- source: <CV_doc_patch-id_3.1ab@msgid.xyz>
192
+* dk/replay-doc-omit-irrelevant-rev-list-options (2026-01-21) 2 commits
193
+ (merged to 'next' on 2026-01-21 at a17b449304)
194
+ + lint-gitlink: preemptively ignore all /ifn?def|endif/ macros
195
+ + replay: drop rev-list formatting options from manual
196
197
+ Documentation clean-up.
198
107
-* kj/t7101-modernize (2026-01-08) 1 commit
108
- (merged to 'next' on 2026-01-10 at c33f8ae0bb)
109
- + t7101: modernize test path checks
199
+ Will merge to 'master'.
200
+ source: <01a7acfaf87494419b3766da57d4c05cf99c79bb.1768873599.git.ben.knoble+github@gmail.com>
201
111
- Test update.
112
- source: <20260109032027.68680-1-jayatheerthkulkarni2005@gmail.com>
202
203
+* pw/mailmap-self (2026-01-20) 1 commit
204
+ (merged to 'next' on 2026-01-21 at da7d118d77)
205
+ + mailmap: add an entry for Phillip Wood
206
115
-* ml/doc-blame-markup (2026-01-08) 2 commits
116
- (merged to 'next' on 2026-01-10 at 1f87b77810)
117
- + doc: git-blame: convert to new doc format
118
- + doc: blame-options: convert to new doc format
207
+ Unify entries in .mailmap file for Phillip Wood.
208
120
- Doc mark-up update.
121
- cf. <2813520.mvXUDI8C0e@piment-oiseau>
122
- source: <20260108153039.658217-1-git@michael.lyo.nz>
209
+ Will merge to 'master'.
210
+ source: <f10c3f680d58ca0abbf795ae8b0f2ad14ab85419.1768906910.git.phillip.wood@dunelm.org.uk>
211
212
--------------------------------------------------
213
[Stalled]
214
215
* dw/config-global-list (2025-10-09) 4 commits
128
- - config: keep bailing on unreadable global files
129
- - config: read global scope via config_sequence
130
- - config: test home and xdg files in `list --global`
131
- - cleanup_path: force forward slashes on Windows
216
+ . config: keep bailing on unreadable global files
217
+ . config: read global scope via config_sequence
218
+ . config: test home and xdg files in `list --global`
219
+ . cleanup_path: force forward slashes on Windows
220
221
"git config --list --global", unlike "git config --list", did not
222
consult both of the two possible per-user sources of the
@@ -137,63 +225,68 @@ Release tarballs are available at:
225
226
Will discard. Has been waiting for a reroll for too long.
227
cf. <20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net>
228
+ cf. <xmqq1pjkyq25.fsf@gitster.g>
229
source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>
230
231
232
* ms/doc-worktree-side-by-side (2025-10-10) 2 commits
144
- - doc: git-worktree: Add side by side branch checkout example
145
- - doc: git-worktree: Link to examples
233
+ . doc: git-worktree: Add side by side branch checkout example
234
+ . doc: git-worktree: Link to examples
235
236
Document "git worktree add" and use of out-of-tree worktrees with
237
examples.
238
239
Will discard. Has been waiting for a reroll for too long.
240
cf. <CAPig+cSNesf0UwS4=Bxe-Qn+G9y3YYPyOK+7y3q8QJk+o7jaVg@mail.gmail.com>
241
+ cf. <xmqq7btcyq7f.fsf@gitster.g>
242
source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de>
243
244
245
* jc/exclude-with-gitignore (2025-11-04) 1 commit
156
- - dir.c: do not be fooled by :(exclude) pathspec elements
246
+ . dir.c: do not be fooled by :(exclude) pathspec elements
247
248
"git add ':(exclude)foo.o'" is clearly a request not to add 'foo.o',
249
but the command complained about listing an ignored path foo.o on
250
the command line, which has been corrected.
251
252
Will discard. Has been waiting for further comments for too long.
253
+ cf. <xmqqwm1cxbad.fsf@gitster.g>
254
source: <xmqqtsz9o3cn.fsf@gitster.g>
255
256
257
* lc/rebase-trailer (2025-11-05) 4 commits
167
- - rebase: support --trailer
168
- - trailer: append trailers in-process and drop the fork to `interpret-trailers`
169
- - trailer: move process_trailers to trailer.h
170
- - interpret-trailers: factor out buffer-based processing to process_trailers()
258
+ . rebase: support --trailer
259
+ . trailer: append trailers in-process and drop the fork to `interpret-trailers`
260
+ . trailer: move process_trailers to trailer.h
261
+ . interpret-trailers: factor out buffer-based processing to process_trailers()
262
263
Refactor code paths to run "interpret-trailers" from "git
264
commit/tag" and use it in "git rebase".
265
266
Will discard. Has been waiting for a reroll for too long.
267
cf. <19a8fe42354.3909481a3912041.7970296104893780556@linux.beauty>
268
+ cf. <xmqqsec0xb50.fsf@gitster.g>
269
source: <20251105142944.73061-1-me@linux.beauty>
270
271
272
* sp/shallow-time-boundary (2025-11-23) 1 commit
181
- - shallow: set borders which are all reachable after clone shallow since
273
+ . shallow: set borders which are all reachable after clone shallow since
274
275
The set of shallow boundary "git clone --shallow-since" leaves
276
contained commits that are not on the boundary, which has been
277
corrected.
278
279
Will discard. Has been waiting for further comments for too long.
280
+ cf. <xmqqfr80xanx.fsf@gitster.g>
281
source: <pull.2107.v2.git.git.1763926552033.gitgitgadget@gmail.com>
282
283
284
* jk/parse-int (2025-11-30) 5 commits
192
- - fsck: use parse_unsigned_from_buf() for parsing timestamp
193
- - cache-tree: use parse_int_from_buf()
194
- - parse: add functions for parsing from non-string buffers
195
- - parse: prefer bool to int for boolean returns
196
- - Merge branch 'jk/asan-bonanza' into jk/parse-int
285
+ . fsck: use parse_unsigned_from_buf() for parsing timestamp
286
+ . cache-tree: use parse_int_from_buf()
287
+ . parse: add functions for parsing from non-string buffers
288
+ . parse: prefer bool to int for boolean returns
289
+ . Merge branch 'jk/asan-bonanza' into jk/parse-int
290
291
Introduce a more robust way to parse a decimal integer stored in a
292
piece of memory that is not necessarily terminated with NUL (which
@@ -203,22 +296,24 @@ Release tarballs are available at:
296
Will discard. Has been waiting for a reroll for too long.
297
cf. <aTFvKOHlm4zfT9dU@pks.im>
298
cf. <4d83375b-76e2-4420-80dd-6a04d3201532@gmail.com>
299
+ cf. <xmqqldhsxawm.fsf@gitster.g>
300
source: <20251130131351.GA198697@coredump.intra.peff.net>
301
302
303
* kn/ref-location (2025-12-01) 2 commits
210
- - refs: add GIT_REF_URI to specify reference backend and directory
211
- - refs: support obtaining ref_store for given dir
304
+ . refs: add GIT_REF_URI to specify reference backend and directory
305
+ . refs: support obtaining ref_store for given dir
306
307
A mechanism to specify what reference backend to use and store
308
references in which directory is introduced, which would likely to
309
be useful during ref migration.
310
311
Will discard. Has been waiting for further comments for too long.
312
+ cf. <xmqqbjioxahm.fsf@gitster.g>
313
source: <20251201-kn-alternate-ref-dir-v3-0-c11b946bc2fa@gmail.com>
314
315
--------------------------------------------------
221
-[New Topics]
316
+[Cooking]
317
318
* ar/run-command-hook-take-2 (2026-01-14) 14 commits
319
- hook: make ungroup opt-out instead of opt-in
@@ -257,38 +352,42 @@ Release tarballs are available at:
352
353
354
* rj/cygwin-test-fixes-for-2.53 (2026-01-16) 2 commits
260
- - t0610-reftable-basics: mitigate a flaky test on cygwin
261
- - t9700/test.pl: fix path type expectation on cygwin
355
+ (merged to 'next' on 2026-01-21 at 8a1ed2cace)
356
+ + t0610-reftable-basics: mitigate a flaky test on cygwin
357
+ + t9700/test.pl: fix path type expectation on cygwin
358
359
Test fixup.
360
265
- Will merge to 'next' and then to 'master'.
361
+ Will merge to 'master'.
362
source: <f46e023b-1925-41b2-9842-42e7cb727056@ramsayjones.plus.com>
363
364
365
* jx/build-options-gettext (2026-01-17) 1 commit
270
- - help: report on whether or not gettext is enabled
366
+ (merged to 'next' on 2026-01-21 at dd35ac2e2a)
367
+ + help: report on whether or not gettext is enabled
368
369
"git bugreport" and "git version --build-options" learned to
370
include use of 'gettext' feature, to make it easier to diagnose
371
problems around l10n.
372
276
- Will merge to 'next'.
373
+ Will merge to 'master'.
374
source: <251e1b533ca2e38a9bedae44360ce636cdea4bc3.1768657640.git.zhiyou.jx@alibaba-inc.com>
375
376
377
* ty/t1005-test-path-is-helpers (2026-01-16) 1 commit
281
- - t1005: modernize "! test -f" to "test_path_is_missing"
378
+ (merged to 'next' on 2026-01-21 at 690bb3b255)
379
+ + t1005: modernize "! test -f" to "test_path_is_missing"
380
381
Test clean-up.
382
285
- Will merge to 'next'.
383
+ Will merge to 'master'.
384
source: <20260117062515.319664-1-a3205153416@gmail.com>
385
386
387
* js/ci-leak-skip-svn (2026-01-17) 2 commits
290
- - ci: skip CVS and P4 tests in leaks job, too
291
- - ci(*-leaks): skip the git-svn tests to save time
388
+ (merged to 'next' on 2026-01-21 at ebcf21d088)
389
+ + ci: skip CVS and P4 tests in leaks job, too
390
+ + ci(*-leaks): skip the git-svn tests to save time
391
392
Dscho observed that SVN tests are taking too much time in CI leak
393
checking tasks, but most time is spent not in our code but in libsvn
@@ -296,23 +395,23 @@ Release tarballs are available at:
395
value to discover for us. Skip SVN, P4, and CVS tests in the leak
396
checking tasks.
397
299
- Will merge to 'next' and down to 'master'.
300
- source: <pull.2031.git.1768584676520.gitgitgadget@gmail.com>
398
+ Will merge to 'master'.
399
+ source: <b649f137-7140-4fb6-848a-b3408e54bbe5@gmail.com>
400
401
402
* jk/remote-tracking-ref-leakfix (2026-01-18) 4 commits
304
- - remote: always allocate branch.push_tracking_ref
305
- - remote: fix leak in branch_get_push_1() with invalid "simple" config
306
- - remote: drop const return of tracking_for_push_dest()
307
- - remote: return non-const pointer from error_buf()
403
+ (merged to 'next' on 2026-01-21 at 7f0736a973)
404
+ + remote: always allocate branch.push_tracking_ref
405
+ + remote: fix leak in branch_get_push_1() with invalid "simple" config
406
+ + remote: drop const return of tracking_for_push_dest()
407
+ + remote: return non-const pointer from error_buf()
408
+ (this branch is used by hn/status-compare-with-push.)
409
410
Leakfix.
411
311
- Will merge to 'next'.
412
+ Will cook in 'next'.
413
source: <20260119051858.GA1991308@coredump.intra.peff.net>
414
314
---------------------------------------------------
315
-[Cooking]
415
416
* yc/histogram-hunk-shift-fix (2025-12-06) 1 commit
417
- xdiff: re-diff shifted change groups when using histogram algorithm
@@ -339,18 +438,17 @@ Release tarballs are available at:
438
source: <pull.1853.v3.git.1768602373.gitgitgadget@gmail.com>
439
440
342
-* tc/last-modified-options-cleanup (2026-01-16) 5 commits
441
+* tc/last-modified-options-cleanup (2026-01-20) 4 commits
442
- last-modified: change default max-depth to 0
344
- - last-modified: add option '--max-depth' to help output
345
- - last-modified: document option --max-depth
346
- - last-modified: add option '-z' to help output
347
- - last-modified: document NUL termination
443
+ - last-modified: document option '--max-depth'
444
+ - last-modified: document option '-z'
445
+ - last-modified: clarify in the docs the command takes a pathspec
446
447
The "-z" and "--max-depth" documentation (and implementation of
448
"-z") in the "git last-modified" command have been updated.
449
450
Will merge to 'next'?
353
- source: <20260116-toon-last-modified-zzzz-v2-0-79e44f2806fe@iotcl.com>
451
+ source: <20260120-toon-last-modified-zzzz-v3-0-9bffd4968b0e@iotcl.com>
452
453
454
* tc/last-modified-not-a-tree (2026-01-16) 4 commits
@@ -391,21 +489,20 @@ Release tarballs are available at:
489
source: <37fe7956e089394bb1d75f4c8af4a3347b204803.1768376879.git.gitgitgadget@gmail.com>
490
491
394
-* kn/ref-batch-output-error-reporting-fix (2026-01-16) 7 commits
492
+* kn/ref-batch-output-error-reporting-fix (2026-01-20) 6 commits
493
- fetch: delay user information post committing of transaction
494
- receive-pack: utilize rejected ref error details
495
- fetch: utilize rejected ref error details
496
- update-ref: utilize rejected error details if available
497
- refs: add rejection detail to the callback function
498
- refs: skip to next ref when current ref is rejected
401
- - refs: drop unnecessary header includes
499
500
A handful of code paths that started using batched ref update API
501
(after Git 2.51 or so) lost detailed error output, which have been
502
corrected.
503
504
Will merge to 'next'?
408
- source: <20260116-633-regression-lost-diagnostic-message-when-pushing-non-commit-objects-to-refs-heads-v2-0-925a0e9c7f32@gmail.com>
505
+ source: <20260120-633-regression-lost-diagnostic-message-when-pushing-non-commit-objects-to-refs-heads-v3-0-e0edb29acbef@gmail.com>
506
507
508
* ps/geometric-repacking-with-promisor-remotes (2026-01-05) 5 commits
@@ -467,7 +564,7 @@ Release tarballs are available at:
564
source: <20260115110832.15315-1-pushkarkumarsingh1970@gmail.com>
565
566
470
-* ps/odb-for-each-object (2026-01-15) 16 commits
567
+* ps/odb-for-each-object (2026-01-20) 16 commits
568
- odb: drop unused `for_each_{loose,packed}_object()` functions
569
- reachable: convert to use `odb_for_each_object()`
570
- builtin/pack-objects: use `packfile_store_for_each_object()`
@@ -484,12 +581,11 @@ Release tarballs are available at:
581
- odb: rename `FOR_EACH_OBJECT_*` flags
582
- Merge branch 'ps/packfile-store-in-odb-source' into ps/odb-for-each-object
583
- Merge branch 'ps/read-object-info-improvements' into ps/odb-for-each-object
487
- (this branch uses ps/packfile-store-in-odb-source and ps/read-object-info-improvements.)
584
585
Revamp object enumeration API around odb.
586
587
Comments?
492
- source: <20260115-pks-odb-for-each-object-v1-0-5418a91d5d99@pks.im>
588
+ source: <20260120-pks-odb-for-each-object-v2-0-d05cbfd3d6f8@pks.im>
589
590
591
* ps/validate-prefix-in-subtree-split (2026-01-15) 1 commit
@@ -503,33 +599,6 @@ Release tarballs are available at:
599
source: <20260115122652.18673-2-pushkarkumarsingh1970@gmail.com>
600
601
506
-* ps/ref-consistency-checks (2026-01-12) 17 commits
507
- (merged to 'next' on 2026-01-13 at ba6c9deadb)
508
- + builtin/fsck: drop `fsck_head_link()`
509
- + builtin/fsck: move generic HEAD check into `refs_fsck()`
510
- + builtin/fsck: move generic object ID checks into `refs_fsck()`
511
- + refs/reftable: introduce generic checks for refs
512
- + refs/reftable: fix consistency checks with worktrees
513
- + refs/reftable: extract function to retrieve backend for worktree
514
- + refs/reftable: adapt includes to become consistent
515
- + refs/files: introduce function to perform normal ref checks
516
- + refs/files: extract generic symref target checks
517
- + fsck: drop unused fields from `struct fsck_ref_report`
518
- + refs/files: perform consistency checks for root refs
519
- + refs/files: improve error handling when verifying symrefs
520
- + refs/files: extract function to check single ref
521
- + refs/files: remove useless indirection
522
- + refs/files: remove `refs_check_dir` parameter
523
- + refs/files: move fsck functions into global scope
524
- + refs/files: simplify iterating through root refs
525
-
526
- Update code paths that check data integrity around refs subsystem.
527
-
528
- Will merge to 'master'.
529
- cf. <CAOLa=ZShPP3BPXa=YnC-vuX4zF=pUTFdUidZwOdna8bfVTNM9w@mail.gmail.com>
530
- source: <20260112-pks-refs-verify-fixes-v2-0-2e9e453bd6c3@pks.im>
531
-
532
-
602
* rs/tree-wo-the-repository (2026-01-15) 11 commits
603
(merged to 'next' on 2026-01-16 at 72f0a82905)
604
+ cocci: remove obsolete the_repository rules
@@ -552,17 +621,6 @@ Release tarballs are available at:
621
source: <20260109213021.2546-1-l.s.r@web.de>
622
623
555
-* cs/rebased-subtree-split (2026-01-09) 1 commit
556
- (merged to 'next' on 2026-01-13 at b213ccc8c1)
557
- + contrib/subtree: detect rewritten subtree commits
558
-
559
- The split command in "git subtree" (in contrib/) has been taught to
560
- deal better with rebased history.
561
-
562
- Will merge to 'master'.
563
- source: <20260110011811.788219-1-ask+git@howdoi.land>
564
-
565
-
624
* sp/shallow-deepen-relative-fix (2026-01-16) 2 commits
625
- shallow: handling fetch relative-deepen
626
- shallow: free local object_array allocations
@@ -575,27 +633,6 @@ Release tarballs are available at:
633
source: <pull.2121.v4.git.git.1768602661.gitgitgadget@gmail.com>
634
635
578
-* kt/http-backend-errors (2026-01-11) 1 commit
579
- (merged to 'next' on 2026-01-13 at 35d72c8eb9)
580
- + http-backend: write newlines to stderr when responding with errors
581
-
582
- Some error messages from the http transport layer lacked the
583
- terminating newline, which has been corrected.
584
-
585
- Will merge to 'master'.
586
- source: <20260112014508.17248-1-kj@kjtsanaktsidis.id.au>
587
-
588
-
589
-* ps/t1410-cleanup (2026-01-11) 1 commit
590
- (merged to 'next' on 2026-01-13 at 51b666d16e)
591
- + t1410: use test helpers in reflog rewind test
592
-
593
- Test clean-up.
594
-
595
- Will merge to 'master'.
596
- source: <20260111191525.17087-1-pushkarkumarsingh1970@gmail.com>
597
-
598
-
636
* dd/t5403-modernise (2026-01-12) 2 commits
637
- t5403: use test_cmp for post-checkout argument checks
638
- t5403: introduce check_post_checkout helper function
@@ -635,16 +672,18 @@ Release tarballs are available at:
672
source: <pull.2156.git.git.1767379944.gitgitgadget@gmail.com>
673
674
638
-* hn/status-compare-with-push (2026-01-13) 2 commits
639
- - status: show comparison with push remote tracking branch
675
+* hn/status-compare-with-push (2026-01-18) 3 commits
676
+ - status: add status.compareBranches config for multiple branch comparisons
677
- refactor format_branch_comparison in preparation
678
+ - Merge branch 'jk/remote-tracking-ref-leakfix' into hn/status-compare-with-push
679
+ (this branch uses jk/remote-tracking-ref-leakfix.)
680
681
"git status" learned to show comparison between the current branch
682
and its push destination as well as its upstream, when the two are
683
different (i.e., triangular workflow).
684
685
Will merge to 'next'?
647
- source: <pull.2138.v25.git.git.1768306316.gitgitgadget@gmail.com>
686
+ source: <pull.2138.v26.git.git.1768766353.gitgitgadget@gmail.com>
687
688
689
* ob/core-attributesfile-in-repository (2026-01-13) 3 commits
@@ -661,12 +700,13 @@ Release tarballs are available at:
700
701
702
* aa/add-p-previous-decisions (2026-01-08) 1 commit
664
- - add -p: show user's hunk decision when selecting hunks
703
+ (merged to 'next' on 2026-01-21 at 4e2fe2bd9b)
704
+ + add -p: show user's hunk decision when selecting hunks
705
706
"git add -p" and friends notes what the current status of the hunk
707
being shown is.
708
669
- Will merge to 'next'?
709
+ Will cook in 'next'.
710
source: <aV_IGCld5T_dBxTs@Adekunles-MacBook-Air.local>
711
712
@@ -688,17 +728,6 @@ Release tarballs are available at:
728
source: <pull.2150.v2.git.git.1767226763360.gitgitgadget@gmail.com>
729
730
691
-* en/fsck-snapshot-ref-state (2026-01-09) 1 commit
692
- (merged to 'next' on 2026-01-12 at d5dff1bba4)
693
- + fsck: snapshot default refs before object walk
694
-
695
- "git fsck" used inconsistent set of refs to show a confused
696
- warning, which has been corrected.
697
-
698
- Will merge to 'master'.
699
- source: <pull.2026.v3.git.1767980953134.gitgitgadget@gmail.com>
700
-
701
-
731
* cc/lop-filter-auto (2025-12-23) 9 commits
732
- fetch-pack: wire up and enable auto filter logic
733
- promisor-remote: keep advertised filter in memory
@@ -738,91 +767,41 @@ Release tarballs are available at:
767
768
769
* js/symlink-windows (2026-01-09) 19 commits
741
- - mingw: special-case index entries for symlinks with buggy size
742
- - mingw: emulate `stat()` a little more faithfully
743
- - mingw: try to create symlinks without elevated permissions
744
- - mingw: add support for symlinks to directories
745
- - mingw: implement basic `symlink()` functionality (file symlinks only)
746
- - mingw: implement `readlink()`
747
- - mingw: allow `mingw_chdir()` to change to symlink-resolved directories
748
- - mingw: support renaming symlinks
749
- - mingw: handle symlinks to directories in `mingw_unlink()`
750
- - mingw: add symlink-specific error codes
751
- - mingw: change default of `core.symlinks` to false
752
- - mingw: factor out the retry logic
753
- - mingw: compute the correct size for symlinks in `mingw_lstat()`
754
- - mingw: teach dirent about symlinks
755
- - mingw: let `mingw_lstat()` error early upon problems with reparse points
756
- - mingw: drop the separate `do_lstat()` function
757
- - mingw: implement `stat()` with symlink support
758
- - mingw: don't call `GetFileAttributes()` twice in `mingw_lstat()`
759
- - Merge branch 'js/prep-symlink-windows' into js/symlink-windows
760
- (this branch uses js/prep-symlink-windows.)
770
+ (merged to 'next' on 2026-01-21 at eaaead3f22)
771
+ + mingw: special-case index entries for symlinks with buggy size
772
+ + mingw: emulate `stat()` a little more faithfully
773
+ + mingw: try to create symlinks without elevated permissions
774
+ + mingw: add support for symlinks to directories
775
+ + mingw: implement basic `symlink()` functionality (file symlinks only)
776
+ + mingw: implement `readlink()`
777
+ + mingw: allow `mingw_chdir()` to change to symlink-resolved directories
778
+ + mingw: support renaming symlinks
779
+ + mingw: handle symlinks to directories in `mingw_unlink()`
780
+ + mingw: add symlink-specific error codes
781
+ + mingw: change default of `core.symlinks` to false
782
+ + mingw: factor out the retry logic
783
+ + mingw: compute the correct size for symlinks in `mingw_lstat()`
784
+ + mingw: teach dirent about symlinks
785
+ + mingw: let `mingw_lstat()` error early upon problems with reparse points
786
+ + mingw: drop the separate `do_lstat()` function
787
+ + mingw: implement `stat()` with symlink support
788
+ + mingw: don't call `GetFileAttributes()` twice in `mingw_lstat()`
789
+ + Merge branch 'js/prep-symlink-windows' into js/symlink-windows
790
791
Upstream symbolic link support on Windows from Git-for-Windows.
792
764
- Expecting a reroll.
765
- cf. <5fe64b77-d10b-b66e-8622-14bec1e96f4a@gmx.de>
766
- cf. <14388349-d1b5-fc8f-b6c7-4a7b43e64494@gmx.de>
767
- cf. <704e952d-7924-00ce-b8b0-ad355e659335@gmx.de>
793
+ Will merge to 'master'.
794
source: <pull.2018.v2.git.1767989115.gitgitgadget@gmail.com>
795
796
771
-* pc/lockfile-pid (2026-01-07) 1 commit
797
+* pc/lockfile-pid (2026-01-20) 1 commit
798
- lockfile: add PID file for debugging stale locks
799
800
Allow recording process ID of the process that holds the lock next
801
to a lockfile for diagnosis.
802
777
- Comments?
778
- source: <pull.2011.v4.git.1767804355831.gitgitgadget@gmail.com>
779
-
780
-
781
-* ps/read-object-info-improvements (2026-01-12) 8 commits
782
- (merged to 'next' on 2026-01-14 at e84be1a7bc)
783
- + packfile: drop repository parameter from `packed_object_info()`
784
- + packfile: skip unpacking object header for disk size requests
785
- + packfile: disentangle return value of `packed_object_info()`
786
- + packfile: always populate pack-specific info when reading object info
787
- + packfile: extend `is_delta` field to allow for "unknown" state
788
- + packfile: always declare object info to be OI_PACKED
789
- + object-file: always set OI_LOOSE when reading object info
790
- + Merge branch 'jc/object-read-stream-fix' into ps/read-object-info-improvements
791
- (this branch is used by ps/odb-for-each-object.)
792
-
793
- The object-info API has been cleaned up.
794
-
795
- Will merge to 'master'.
796
- source: <20260112-b4-pks-odb-read-object-info-improvements-v5-0-9a6124e95bf2@pks.im>
797
-
798
-
799
-* tb/macos-iconv-workarounds (2026-01-12) 2 commits
800
- (merged to 'next' on 2026-01-13 at f2e51d72b8)
801
- + utf8.c: enable workaround for iconv under macOS 14/15
802
- + utf8.c: prepare workaround for iconv under macOS 14/15
803
-
804
- The iconv library on macOS fails to correctly handle stateful
805
- ISO/IEC 2022 encoded strings. Work it around instead of replacing
806
- it wholesale from homebrew.
807
-
808
- Will merge to 'master'.
809
- source: <20260112162553.774051-1-tboegi@web.de>
810
-
811
-
812
-* js/prep-symlink-windows (2026-01-09) 6 commits
813
- (merged to 'next' on 2026-01-14 at d05f3a8ea5)
814
- + trim_last_path_component(): avoid hard-coding the directory separator
815
- + strbuf_readlink(): support link targets that exceed 2*PATH_MAX
816
- + strbuf_readlink(): avoid calling `readlink()` twice in corner-cases
817
- + init: do parse _all_ core.* settings early
818
- + mingw: do resolve symlinks in `getcwd()`
819
- + Merge branch 'js/test-symlink-windows' into js/prep-symlink-windows
820
- (this branch is used by js/symlink-windows.)
821
-
822
- Further preparation to upstream symbolic link support on Windows.
823
-
824
- Will merge to 'master'.
825
- source: <pull.2017.v2.git.1767989109.gitgitgadget@gmail.com>
803
+ Will merge to 'next'?
804
+ source: <pull.2011.v5.git.1768933954845.gitgitgadget@gmail.com>
805
806
807
* ap/http-probe-rpc-use-auth (2026-01-14) 1 commit
@@ -835,47 +814,24 @@ Release tarballs are available at:
814
source: <20260114163619.614297-2-aplattner@nvidia.com>
815
816
838
-* ps/packfile-store-in-odb-source (2026-01-09) 12 commits
839
- (merged to 'next' on 2026-01-14 at f375c8e347)
840
- + packfile: move MIDX into packfile store
841
- + packfile: refactor `find_pack_entry()` to work on the packfile store
842
- + packfile: inline `find_kept_pack_entry()`
843
- + packfile: only prepare owning store in `packfile_store_prepare()`
844
- + packfile: only prepare owning store in `packfile_store_get_packs()`
845
- + packfile: move packfile store into object source
846
- + packfile: refactor misleading code when unusing pack windows
847
- + packfile: refactor kept-pack cache to work with packfile stores
848
- + packfile: pass source to `prepare_pack()`
849
- + packfile: create store via its owning source
850
- + Merge branch 'ps/odb-misc-fixes' into ps/packfile-store-in-odb-source
851
- + Merge branch 'ps/object-read-stream' into ps/packfile-store-in-odb-source
852
- (this branch is used by ps/odb-for-each-object.)
853
-
854
- The packfile_store data structure is moved from object store to odb
855
- source.
856
-
857
- Will merge to 'master'.
858
- source: <20260109-b4-pks-pack-store-via-source-v3-0-877fd7b7bf81@pks.im>
859
-
860
-
861
-* lo/repo-info-keys (2026-01-09) 3 commits
817
+* lo/repo-info-keys (2026-01-19) 3 commits
818
- repo: add new flag --keys to git-repo-info
819
- repo: add a default output format to enum output_format
820
- Merge branch 'lo/repo-struct-z' into lo/repo-info-keys
821
822
"git repo info" learns "--keys" action to list known keys.
823
868
- Expecting a (hopefully small and final) reroll?
869
- cf. <12814829.O9o76ZdvQC@piment-oiseau>
870
- source: <20251207190532.67107-1-lucasseikioshiro@gmail.com>
824
+ Will merge to 'next'?
825
+ source: <20260119210932.68893-1-lucasseikioshiro@gmail.com>
826
827
828
* sb/doc-update-ref-markup-fix (2025-12-08) 1 commit
874
- - doc: fix `update-ref` `symref-create` formatting
829
+ (merged to 'next' on 2026-01-21 at 60d4750233)
830
+ + doc: fix `update-ref` `symref-create` formatting
831
832
Doc mark-up fix.
833
878
- Will merge to 'next'.
834
+ Will merge to 'master'.
835
source: <pull.2123.git.git.1765261419802.gitgitgadget@gmail.com>
836
837
@@ -943,19 +899,6 @@ Release tarballs are available at:
899
source: <20251117221621.2863243-1-sandals@crustytoothpaste.net>
900
901
946
-* je/doc-reset (2026-01-05) 4 commits
947
- (merged to 'next' on 2026-01-12 at 44b4f99803)
948
- + doc: git-reset: clarify `git reset <pathspec>`
949
- + doc: git-reset: clarify `git reset [mode]`
950
- + doc: git-reset: clarify intro
951
- + doc: git-reset: reorder the forms
952
-
953
- Documentation updates.
954
-
955
- Will merge to 'master'.
956
- source: <cover.1767649692.git.ben.knoble+github@gmail.com>
957
-
958
-
902
* ps/history (2026-01-13) 9 commits
903
- builtin/history: implement "reword" subcommand
904
- builtin: add new "history" command
@@ -994,16 +937,3 @@ Release tarballs are available at:
937
938
Will merge to 'next'?
939
source: <20260112184632.1334495-1-adrian.ratiu@collabora.com>
997
-
998
---------------------------------------------------
999
-[Discarded]
1000
-
1001
-* wm/complete-git-short-opts (2025-11-26) 1 commit
1002
- . completion: complete "git -<TAB>" with short options
1003
-
1004
- The command line completion script (in contrib/) learned to
1005
- complete "git -<TAB>" to give single-letter options like "-C".
1006
-
1007
- We do not complete single-letter options themselves.
1008
- cf. <xmqqo6onjfwl.fsf@gitster.g>
1009
- source: <pull.2100.v2.git.git.1764174391776.gitgitgadget@gmail.com>