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>