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>