What's cooking (2026/01 #10)
Junio C Hamano committed
Jan 29, 2026 at 14:48 UTC
6e9f4f2a3f930bb8ea4a6d727ba66cb148525b6f
1 file changed
+90
-138
whats-cooking.txt
+90
-138
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
-Subject: What's cooking in git.git (Jan 2026, #09)
3
-X-master-at: ab380cb80b0727f7f2d7f6b17592ae6783e9820c
4
-X-next-at: 2597b5adb47d07fac54316d0a3d81a2567b43e87
2
+Subject: What's cooking in git.git (Jan 2026, #10)
3
+X-master-at: ea717645d199f6f1b66058886475db3e8c9330e9
4
+X-next-at: 66b2238f5c17644ddf15f75a53c76faeca6d9f1e
5
Bcc: lwn@lwn.net, gitster@pobox.com
6
7
-What's cooking in git.git (Jan 2026, #09)
7
+What's cooking in git.git (Jan 2026, #10)
8
-----------------------------------------
9
10
Here are the topics that have been cooking in my tree. Commits
@@ -51,6 +51,60 @@ Release tarballs are available at:
51
--------------------------------------------------
52
[New Topics]
53
54
+* jc/checkout-switch-restore (2026-01-29) 2 commits
55
+ - checkout: tell "parse_remote_branch" which command is calling it
56
+ - checkout: pass program-readable token to unified "main"
57
+
58
+ "git switch <name>", in an attempt to create a local branch <name>
59
+ after a remote tracking branch of the same name gave an advise
60
+ message to disambiguate using "git checkout", which has been
61
+ updated to use "git switch".
62
+
63
+ Comments?
64
+ source: <20260129190616.645471-1-gitster@pobox.com>
65
+
66
+
67
+* jt/odb-transaction-per-source (2026-01-28) 4 commits
68
+ - odb: transparently handle common transaction behavior
69
+ - odb: prepare `struct odb_transaction` to support more sources
70
+ - object-file: rename transaction functions
71
+ - odb: store ODB source in `struct odb_transaction`
72
+
73
+ Transaction to create objects (or not) is currently tied to the
74
+ repository, but in the future a repository can have multiple object
75
+ sources, which may have different transaction mechanisms. Make the
76
+ odb transaction API per object source.
77
+
78
+ Expecting a reroll?
79
+ cf. <aXtDZyFoSQahkxBa@pks.im>
80
+ source: <20260128234519.2721179-1-jltobler@gmail.com>
81
+
82
+
83
+* ps/for-each-ref-in-fixes (2026-01-29) 4 commits
84
+ - bisect: simplify string_list memory handling
85
+ - bisect: fix misuse of `refs_for_each_ref_in()`
86
+ - pack-bitmap: fix bug with exact ref match in "pack.preferBitmapTips"
87
+ - pack-bitmap: deduplicate logic to iterate over preferred bitmap tips
88
+
89
+ A handful of places used refs_for_each_ref_in() API incorrectly,
90
+ which has been corrected.
91
+
92
+ Need any more work on pack-bitmap side?
93
+ cf. <xmqq7bt0cqec.fsf@gitster.g>
94
+ source: <20260128-b4-pks-fix-for-each-ref-in-misuse-v1-0-deccae3ea725@pks.im>
95
+
96
+
97
+* ty/perf-3400-optim (2026-01-28) 1 commit
98
+ - t/perf/p3400: speed up setup using fast-import
99
+
100
+ Improve set-up time of a perf test.
101
+
102
+ Comments?
103
+ source: <20260128160717.611391-1-a3205153416@gmail.com>
104
+
105
+--------------------------------------------------
106
+[Cooking]
107
+
108
* ja/doc-synopsis-style-even-more (2026-01-26) 4 commits
109
- doc: convert git-show to synopsis style
110
- doc: fix some style issues in git-clone and for-each-ref-options
@@ -64,7 +118,7 @@ Release tarballs are available at:
118
source: <pull.2036.v2.git.1769462744.gitgitgadget@gmail.com>
119
120
67
-* ac/string-list-sort-u-and-tests (2026-01-26) 2 commits
121
+* ac/string-list-sort-u-and-tests (2026-01-29) 2 commits
122
- string-list: add string_list_sort_u() that mimics "sort -u"
123
- u-string-list: add unit tests for string-list methods
124
@@ -72,7 +126,7 @@ Release tarballs are available at:
126
new unit tests to extend coverage.
127
128
Will merge to 'next'.
75
- source: <20260126185604.90089-1-amishhhaaaa@gmail.com>
129
+ source: <20260125201500.63904-2-amishhhaaaa@gmail.com>
130
131
132
* ps/object-info-bits-cleanup (2026-01-26) 3 commits
@@ -98,109 +152,6 @@ Release tarballs are available at:
152
This conflicts with en/xdiff-cleanup-3 that has been dormant for some time.
153
source: <cover.1769424529.git.phillip.wood@dunelm.org.uk>
154
101
---------------------------------------------------
102
-[Graduated to 'master']
103
-
104
-* dk/replay-doc-omit-irrelevant-rev-list-options (2026-01-21) 2 commits
105
- (merged to 'next' on 2026-01-21 at a17b449304)
106
- + lint-gitlink: preemptively ignore all /ifn?def|endif/ macros
107
- + replay: drop rev-list formatting options from manual
108
-
109
- Documentation clean-up.
110
- source: <01a7acfaf87494419b3766da57d4c05cf99c79bb.1768873599.git.ben.knoble+github@gmail.com>
111
-
112
-
113
-* js/ci-leak-skip-svn (2026-01-17) 2 commits
114
- (merged to 'next' on 2026-01-21 at ebcf21d088)
115
- + ci: skip CVS and P4 tests in leaks job, too
116
- + ci(*-leaks): skip the git-svn tests to save time
117
-
118
- Dscho observed that SVN tests are taking too much time in CI leak
119
- checking tasks, but most time is spent not in our code but in libsvn
120
- code (which happen to be written in Perl), whose leaks have little
121
- value to discover for us. Skip SVN, P4, and CVS tests in the leak
122
- checking tasks.
123
- source: <b649f137-7140-4fb6-848a-b3408e54bbe5@gmail.com>
124
-
125
-
126
-* js/symlink-windows (2026-01-09) 19 commits
127
- (merged to 'next' on 2026-01-21 at eaaead3f22)
128
- + mingw: special-case index entries for symlinks with buggy size
129
- + mingw: emulate `stat()` a little more faithfully
130
- + mingw: try to create symlinks without elevated permissions
131
- + mingw: add support for symlinks to directories
132
- + mingw: implement basic `symlink()` functionality (file symlinks only)
133
- + mingw: implement `readlink()`
134
- + mingw: allow `mingw_chdir()` to change to symlink-resolved directories
135
- + mingw: support renaming symlinks
136
- + mingw: handle symlinks to directories in `mingw_unlink()`
137
- + mingw: add symlink-specific error codes
138
- + mingw: change default of `core.symlinks` to false
139
- + mingw: factor out the retry logic
140
- + mingw: compute the correct size for symlinks in `mingw_lstat()`
141
- + mingw: teach dirent about symlinks
142
- + mingw: let `mingw_lstat()` error early upon problems with reparse points
143
- + mingw: drop the separate `do_lstat()` function
144
- + mingw: implement `stat()` with symlink support
145
- + mingw: don't call `GetFileAttributes()` twice in `mingw_lstat()`
146
- + Merge branch 'js/prep-symlink-windows' into js/symlink-windows
147
-
148
- Upstream symbolic link support on Windows from Git-for-Windows.
149
- source: <pull.2018.v2.git.1767989115.gitgitgadget@gmail.com>
150
-
151
-
152
-* jx/build-options-gettext (2026-01-17) 1 commit
153
- (merged to 'next' on 2026-01-21 at dd35ac2e2a)
154
- + help: report on whether or not gettext is enabled
155
-
156
- "git bugreport" and "git version --build-options" learned to
157
- include use of 'gettext' feature, to make it easier to diagnose
158
- problems around l10n.
159
- source: <251e1b533ca2e38a9bedae44360ce636cdea4bc3.1768657640.git.zhiyou.jx@alibaba-inc.com>
160
-
161
-
162
-* kh/mailmap-avila (2026-01-21) 1 commit
163
- (merged to 'next' on 2026-01-22 at d81095ad13)
164
- + .mailmap: fix and expand mappings for Jean-Noël Avila
165
-
166
- Will merge to 'master'.
167
- source: <gggadget.24e@msgid.xyz>
168
-
169
-
170
-* pw/mailmap-self (2026-01-20) 1 commit
171
- (merged to 'next' on 2026-01-21 at da7d118d77)
172
- + mailmap: add an entry for Phillip Wood
173
-
174
- Unify entries in .mailmap file for Phillip Wood.
175
- source: <f10c3f680d58ca0abbf795ae8b0f2ad14ab85419.1768906910.git.phillip.wood@dunelm.org.uk>
176
-
177
-
178
-* rj/cygwin-test-fixes-for-2.53 (2026-01-16) 2 commits
179
- (merged to 'next' on 2026-01-21 at 8a1ed2cace)
180
- + t0610-reftable-basics: mitigate a flaky test on cygwin
181
- + t9700/test.pl: fix path type expectation on cygwin
182
-
183
- Test fixup.
184
- source: <f46e023b-1925-41b2-9842-42e7cb727056@ramsayjones.plus.com>
185
-
186
-
187
-* sb/doc-update-ref-markup-fix (2025-12-08) 1 commit
188
- (merged to 'next' on 2026-01-21 at 60d4750233)
189
- + doc: fix `update-ref` `symref-create` formatting
190
-
191
- Doc mark-up fix.
192
- source: <pull.2123.git.git.1765261419802.gitgitgadget@gmail.com>
193
-
194
-
195
-* ty/t1005-test-path-is-helpers (2026-01-16) 1 commit
196
- (merged to 'next' on 2026-01-21 at 690bb3b255)
197
- + t1005: modernize "! test -f" to "test_path_is_missing"
198
-
199
- Test clean-up.
200
- source: <20260117062515.319664-1-a3205153416@gmail.com>
201
-
202
---------------------------------------------------
203
-[Cooking]
155
156
* sp/t5500-cleanup (2026-01-21) 1 commit
157
(merged to 'next' on 2026-01-23 at d5adc61ce8)
@@ -244,10 +195,10 @@ Release tarballs are available at:
195
source: <20260122152722.866341-1-nasser.grainawi@oss.qualcomm.com>
196
197
247
-* ar/run-command-hook-take-2 (2026-01-21) 12 commits
198
+* ar/run-command-hook-take-2 (2026-01-28) 12 commits
199
- receive-pack: convert receive hooks to hook API
200
- receive-pack: convert update hooks to new API
250
- - run-command: poll child stdin in addition to stdout
201
+ - run-command: poll child input in addition to output
202
- hook: add jobs option
203
- reference-transaction: use hook API instead of run-command
204
- transport: convert pre-push to hook API
@@ -255,15 +206,14 @@ Release tarballs are available at:
206
- hook: convert 'post-rewrite' hook in sequencer.c to hook API
207
- hook: provide stdin via callback
208
- run-command: add stdin callback for parallelization
258
- - run-command: add first helper for pp child states
209
+ - run-command: add helper for pp child states
210
- t1800: add hook output stream tests
211
212
Use the hook API to replace ad-hoc invocation of hook scripts via
213
the run_command() API.
214
264
- Expecting a reroll.
265
- cf. <87cy32q9qh.fsf@collabora.com>
266
- source: <20260121215436.1473800-1-adrian.ratiu@collabora.com>
215
+ Comments?
216
+ source: <20260128213927.3026875-1-adrian.ratiu@collabora.com>
217
218
219
* lp/diff-stat-utf8-display-width-fix (2026-01-15) 2 commits
@@ -331,18 +281,18 @@ Release tarballs are available at:
281
source: <20260120-toon-last-modified-zzzz-v3-0-9bffd4968b0e@iotcl.com>
282
283
334
-* tc/last-modified-not-a-tree (2026-01-23) 4 commits
284
+* tc/last-modified-not-a-tree (2026-01-27) 4 commits
285
- last-modified: verify revision argument is a commit-ish
286
- last-modified: remove double error message
337
- - last-modified: fix memory leak when more than one revision is given
338
- - last-modified: rewrite error message when more than one revision given
287
+ - last-modified: fix memory leak when more than one commit is given
288
+ - last-modified: rewrite error message when more than one commit given
289
290
Giving "git last-modified" a tree (not a commit-ish) died an
291
uncontrolled death, which has been corrected.
292
293
Expecting a reroll.
344
- cf. <xmqqpl70i7pj.fsf@gitster.g>
345
- source: <20260123-toon-last-modified-tree-v4-0-86bf97bad4e2@iotcl.com>
294
+ cf. <87v7gkqxb0.fsf@iotcl.com>
295
+ source: <20260127-toon-last-modified-tree-v5-0-38d18a0956d4@iotcl.com>
296
297
298
* sp/myfirstcontribution-include-update (2026-01-12) 1 commit
@@ -430,6 +380,7 @@ Release tarballs are available at:
380
Revamp object enumeration API around odb.
381
382
Will merge to 'next'?
383
+ cf. <aXk2FjTUMMThs5Kp@nand.local>
384
source: <20260126-pks-odb-for-each-object-v4-0-5a64a038c791@pks.im>
385
386
@@ -579,15 +530,14 @@ Release tarballs are available at:
530
source: <pull.2144.git.git.1766850014289.gitgitgadget@gmail.com>
531
532
582
-* sb/doc-worktree-prune-expire-improvement (2025-12-19) 2 commits
583
- - worktree: use 'prune' instead of 'expire' in help text
584
- - worktree: clarify --expire applies to missing worktrees
533
+* sb/doc-worktree-prune-expire-improvement (2026-01-27) 1 commit
534
+ - worktree: clarify that --expire only affects missing worktrees
535
536
The help text and the documentation for the "--expire" option of
537
"git worktree [list|prune]" have been improved.
538
589
- Expecting a reroll.
590
- source: <pull.2135.v2.git.git.1766168169.gitgitgadget@gmail.com>
539
+ Will merge to 'next'?
540
+ source: <pull.2135.v3.git.git.1769578785381.gitgitgadget@gmail.com>
541
542
543
* pc/lockfile-pid (2026-01-22) 1 commit
@@ -649,14 +599,15 @@ Release tarballs are available at:
599
600
601
* pw/replay-drop-empty (2025-12-18) 2 commits
652
- - replay: drop commits that become empty
653
- - Merge branch 'ps/history' into pw/replay-drop-empty
602
+ (merged to 'next' on 2026-01-29 at 66b2238f5c)
603
+ + replay: drop commits that become empty
604
+ + Merge branch 'ps/history' into pw/replay-drop-empty
605
(this branch uses ps/history.)
606
607
"git replay" is taught to drop commits that become empty (not the
608
ones that are empty in the original).
609
659
- Will merge to 'next', together with 'ps/history'?
610
+ Will cook in 'next'.
611
source: <375adc4e941f3bb22a2b12ee26a083951ed724dd.1766076625.git.phillip.wood@dunelm.org.uk>
612
613
@@ -685,20 +636,21 @@ Release tarballs are available at:
636
637
638
* ps/history (2026-01-13) 9 commits
688
- - builtin/history: implement "reword" subcommand
689
- - builtin: add new "history" command
690
- - wt-status: provide function to expose status for trees
691
- - replay: support updating detached HEAD
692
- - replay: support empty commit ranges
693
- - replay: small set of cleanups
694
- - builtin/replay: move core logic into "libgit.a"
695
- - builtin/replay: extract core logic to replay revisions
696
- - Merge branch 'kh/replay-invalid-onto-advance' into ps/history
639
+ (merged to 'next' on 2026-01-29 at ecac247f83)
640
+ + builtin/history: implement "reword" subcommand
641
+ + builtin: add new "history" command
642
+ + wt-status: provide function to expose status for trees
643
+ + replay: support updating detached HEAD
644
+ + replay: support empty commit ranges
645
+ + replay: small set of cleanups
646
+ + builtin/replay: move core logic into "libgit.a"
647
+ + builtin/replay: extract core logic to replay revisions
648
+ + Merge branch 'kh/replay-invalid-onto-advance' into ps/history
649
(this branch is used by pw/replay-drop-empty.)
650
651
"git history" history rewriting UI.
652
701
- Will merge to 'next'.
653
+ Will cook in 'next'.
654
cf. <aWpoMcgwsfRCCrr4@szeder.dev>
655
cf. <CABPp-BHkNLdH4C7U4sFoVhrsSPH8KAaDtOdLEQGyajmXZz9hVg@mail.gmail.com>
656
source: <20260113-b4-pks-history-builtin-v11-0-e74ebfa2652d@pks.im>