What's cooking (2025/12 #01)

Junio C Hamano committed Dec 7, 2025 at 12:36 UTC 765304b90aa9e213294faa2f6a7d1abe2c9f53c9
1 file changed +323 -241
whats-cooking.txt
+323 -241
@@ -1,11 +1,11 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Nov 2025, #10; Sun, 30)
3 -X-master-at: f0ef5b6d9bcc258e4cbef93839d1b7465d5212b9
4 -X-next-at: d5f0c6e74e9a802622dcc0000e49faff0f38e160
2 +Subject: What's cooking in git.git (Dec 2025, #01)
3 +X-master-at: bdc5341ff65278a3cc80b2e8a02a2f02aa1fac06
4 +X-next-at: 3f4935d65f8d04f04e16a208ba4f77a42d207db3
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Nov 2025, #10; Sun, 30)
8 ---------------------------------------------------
7 +What's cooking in git.git (Dec 2025, #01)
8 +-----------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
11 prefixed with '+' are in 'next' (being in 'next' is a sign that a
@@ -51,85 +51,289 @@ Release tarballs are available at:
51 --------------------------------------------------
52 [Graduated to 'master']
53
54 -* ja/doc-synopsis-style (2025-11-24) 4 commits
55 - (merged to 'next' on 2025-11-24 at 10610d9a57)
56 - + doc: pull-fetch-param typofix
57 - (merged to 'next' on 2025-11-21 at eb9c1703c0)
58 - + doc: convert git push to synopsis style
59 - + doc: convert git pull to synopsis style
60 - + doc: convert git fetch to synopsis style
61 -
62 - Doc mark-up updates.
63 -
64 - source: <pull.2002.git.1763588404.gitgitgadget@gmail.com>
65 -
66 -
67 -* jc/whitespace-incomplete-line (2025-11-12) 12 commits
68 - (merged to 'next' on 2025-11-24 at 9682c7f652)
69 - + attr: enable incomplete-line whitespace error for this project
70 - + diff: highlight and error out on incomplete lines
71 - + apply: check and fix incomplete lines
72 - + whitespace: allocate a few more bits and define WS_INCOMPLETE_LINE
73 - + apply: revamp the parsing of incomplete lines
74 - + diff: update the way rewrite diff handles incomplete lines
75 - + diff: call emit_callback ecbdata everywhere
76 - + diff: refactor output of incomplete line
77 - + diff: keep track of the type of the last line seen
78 - + diff: correct suppress_blank_empty hack
79 - + diff: emit_line_ws_markup() if/else style fix
80 - + whitespace: correct bit assignment comments
81 -
82 - Both "git apply" and "git diff" learn a new whitespace error class,
83 - "incomplete-line".
84 -
85 - source: <20251112220258.1009253-1-gitster@pobox.com>
86 -
87 -
88 -* je/doc-data-model (2025-11-12) 1 commit
89 - (merged to 'next' on 2025-11-24 at 50e59df383)
90 - + doc: add an explanation of Git's data model
91 -
92 - Add a new manual that describes the data model.
93 -
94 - source: <pull.1981.v7.git.1762977200244.gitgitgadget@gmail.com>
95 -
96 -
97 -* jk/asan-bonanza (2025-11-18) 9 commits
98 - (merged to 'next' on 2025-11-24 at 066fc38a19)
99 - + t: enable ASan's strict_string_checks option
100 - + fsck: avoid parse_timestamp() on buffer that isn't NUL-terminated
101 - + fsck: remove redundant date timestamp check
102 - + fsck: avoid strcspn() in fsck_ident()
103 - + fsck: assert newline presence in fsck_ident()
104 - + cache-tree: avoid strtol() on non-string buffer
105 - + Makefile: turn on NO_MMAP when building with ASan
106 - + pack-bitmap: handle name-hash lookups in incremental bitmaps
107 - + compat/mmap: mark unused argument in git_munmap()
108 -
109 - Various issues detected by Asan have been corrected.
110 -
111 - source: <20251118091127.GA4175601@coredump.intra.peff.net>
112 -
113 -
114 -* lo/repo-info-all (2025-11-18) 2 commits
115 - (merged to 'next' on 2025-11-21 at bb6bddcfc7)
116 - + repo: add --all to git-repo-info
117 - + repo: factor out field printing to dedicated function
118 -
119 - "git repo info" learned "--all" option.
120 -
121 - source: <20251118204929.43597-1-lucasseikioshiro@gmail.com>
54 +* cc/fast-import-strip-if-invalid (2025-11-16) 3 commits
55 + (merged to 'next' on 2025-11-26 at 7235cd0d18)
56 + + fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>
57 + + commit: refactor verify_commit_buffer()
58 + + fast-import: refactor finalize_commit_buffer()
59 +
60 + "git fast-import" learns "--strip-if-invalid" option to drop
61 + invalid cryptographic signature from objects.
62 + source: <20251117043450.322644-1-christian.couder@gmail.com>
63 +
64 +
65 +* en/xdiff-cleanup-2 (2025-11-18) 10 commits
66 + (merged to 'next' on 2025-11-25 at 452b7107da)
67 + + xdiff: rename rindex -> reference_index
68 + + xdiff: change rindex from long to size_t in xdfile_t
69 + + xdiff: make xdfile_t.nreff a size_t instead of long
70 + + xdiff: make xdfile_t.nrec a size_t instead of long
71 + + xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash
72 + + xdiff: use unambiguous types in xdl_hash_record()
73 + + xdiff: use size_t for xrecord_t.size
74 + + xdiff: make xrecord_t.ptr a uint8_t instead of char
75 + + xdiff: use ptrdiff_t for dstart/dend
76 + + doc: define unambiguous type mappings across C and Rust
77 +
78 + Code clean-up.
79 + source: <pull.2070.v5.git.git.1763505262.gitgitgadget@gmail.com>
80 +
81 +
82 +* jc/optional-path (2025-11-20) 3 commits
83 + (merged to 'next' on 2025-11-25 at 5e75404281)
84 + + config: really treat missing optional path as not configured
85 + + config: really pretend missing :(optional) value is not there
86 + + config: mark otherwise unused function as file-scope static
87 +
88 + "git config get --path" segfaulted on an ":(optional)path" that
89 + does not exist, which has been corrected.
90 + source: <xmqqikf47ajk.fsf@gitster.g>
91 +
92 +
93 +* js/ci-show-breakage-in-dockerized-jobs (2025-11-17) 1 commit
94 + (merged to 'next' on 2025-11-26 at 3c4a8c430f)
95 + + ci(dockerized): do show the result of failing tests again
96 +
97 + Dockerised jobs at the GitHub Actions CI have been taught to show
98 + more details of failed tests.
99 + cf. <xmqqpl9gike6.fsf@gitster.g>
100 + cf. <CABPp-BErdhTjbqDem4Xvc-XbhgLUEpy9-eiaaR1F_diMca--6A@mail.gmail.com>
101 + source: <pull.2003.git.1763399064983.gitgitgadget@gmail.com>
102 +
103 +
104 +* js/strip-scalar-too (2025-11-17) 1 commit
105 + (merged to 'next' on 2025-11-25 at 9f2607acfb)
106 + + make strip: include `scalar`
107 +
108 + "make strip" has been taught to strip "scalar" as well as "git".
109 + cf. <xmqq7bvoiadg.fsf@gitster.g>
110 + source: <pull.2004.git.1763409086322.gitgitgadget@gmail.com>
111 +
112 +
113 +* kh/doc-committer-date-is-author-date (2025-11-20) 1 commit
114 + (merged to 'next' on 2025-11-25 at 9f829587af)
115 + + doc: warn against --committer-date-is-author-date
116 +
117 + The "--committer-date-is-author-date" option of "git am/rebase" is
118 + a misguided one. The documentation is updated to discourage its
119 + use.
120 + source: <V2_committer-date-is-author-date.1@msgid.xyz>
121 +
122 +
123 +* ps/object-source-management (2025-11-18) 14 commits
124 + (merged to 'next' on 2025-11-26 at 6f98745b4a)
125 + + odb: handle recreation of quarantine directories
126 + + odb: handle changing a repository's commondir
127 + + chdir-notify: add function to unregister listeners
128 + + odb: handle initialization of sources in `odb_new()`
129 + + http-push: stop setting up `the_repository` for each reference
130 + + t/helper: stop setting up `the_repository` repeatedly
131 + + builtin/index-pack: fix deferred fsck outside repos
132 + + oidset: introduce `oidset_equal()`
133 + + odb: move logic to disable ref updates into repo
134 + + odb: refactor `odb_clear()` to `odb_free()`
135 + + odb: adopt logic to close object databases
136 + + setup: convert `set_git_dir()` to have file scope
137 + + path: move `enter_repo()` into "setup.c"
138 + + Merge branch 'ps/object-source-loose' into ps/object-source-management
139 +
140 + Code refactoring around object database sources.
141 + cf. <aSAZSyUzIMvn-IvR@pks.im>
142 + source: <20251119-b4-pks-odb-creation-v1-0-2b2ed2612cb6@pks.im>
143 +
144 +
145 +* rs/config-set-multi-error-message-fix (2025-11-24) 1 commit
146 + (merged to 'next' on 2025-11-26 at 639a1e26d2)
147 + + config: fix suggestion for failed set of multi-valued option
148 +
149 + The error message given by "git config set", when the variable
150 + being updated has more than one values defined, used old style "git
151 + config" syntax with an incorrect option in its hint, both of which
152 + have been corrected.
153 + source: <c09945fe-fee2-47f6-8193-ac60d7245209@web.de>
154 +
155 +
156 +* rs/config-unset-opthelp-fix (2025-11-24) 1 commit
157 + (merged to 'next' on 2025-11-26 at 31e282f4ae)
158 + + config: fix short help of unset flags
159 +
160 + The option help text given by "git config unset -h" described
161 + the "--all" option to "replace", not "unset", multiple variables,
162 + which has been corrected.
163 + source: <06997dce-e4d5-4889-8e70-5f44da3dc800@web.de>
164
165 --------------------------------------------------
166 [New Topics]
167
168 +* ap/packfile-promisor-object-optim (2025-12-05) 1 commit
169 + - packfile: skip decompressing and hashing blobs in add_promisor_object()
170 +
171 + The code path that enumerates promisor objects have been optimized
172 + to skip pointlessly parsing blob objects.
173 +
174 + Comments?
175 + source: <20251206002014.2066644-1-aplattner@nvidia.com>
176 +
177 +
178 +* je/doc-pull (2025-12-03) 1 commit
179 + (merged to 'next' on 2025-12-05 at 601711e5f2)
180 + + doc: git-pull: fix 'git --rebase abort' typo
181 +
182 + Doc fixup.
183 +
184 + Will merge to 'master'.
185 + source: <pull.2015.git.1764776095597.gitgitgadget@gmail.com>
186 +
187 +
188 +* js/last-modified-with-sparse-checkouts (2025-11-29) 1 commit
189 + (merged to 'next' on 2025-12-05 at f1d5abdd14)
190 + + last-modified: support sparse checkouts
191 +
192 + "git last-modified" used to mishandle "--" to mark the beginning of
193 + pathspec, which has been corrected.
194 +
195 + Will merge to 'master'.
196 + source: <pull.2013.git.1764423826908.gitgitgadget@gmail.com>
197 +
198 +
199 +* kh/advise-w-git-help-in-branch (2025-12-02) 1 commit
200 + (merged to 'next' on 2025-12-05 at 3b7b03150e)
201 + + branch: advice using git-help(1) instead of man(1)
202 +
203 + A help message from "git branch" now mentions "git help" instead of
204 + "man" when suggesting to read some documentation.
205 +
206 + Will merge to 'master'.
207 + source: <V2_advice_git-help.53@msgid.xyz>
208 +
209 +
210 +* lo/repo-struct-z (2025-12-04) 3 commits
211 + (merged to 'next' on 2025-12-06 at 4f602e14d8)
212 + + repo: add -z as an alias for --format=nul to git-repo-structure
213 + + repo: use [--format=... | -z] instead of [-z] in git-repo-info synopsis
214 + + repo: remove blank line from Documentation/git-repo.adoc
215 +
216 + "git repo struct" learned to take "-z" as a synonym to "--format=nul".
217 +
218 + Will merge to 'master'.
219 + cf. <aTK9X6ptrqs_9agD@pks.im>
220 + source: <20251204210843.79411-1-lucasseikioshiro@gmail.com>
221 +
222 +
223 +* tc/meson-cross-compile-fix (2025-12-03) 3 commits
224 + (merged to 'next' on 2025-12-05 at c45b57ca74)
225 + + meson: use is_cross_build() where possible
226 + + meson: only detect ICONV_OMITS_BOM if possible
227 + + meson: ignore subprojects/.wraplock
228 +
229 + Build fix.
230 +
231 + Will merge to 'master'.
232 + source: <20251202-toon-cross-compile-v1-0-cabc8bce529f@iotcl.com>
233 +
234 +
235 +* je/doc-data-model (2025-12-02) 1 commit
236 + (merged to 'next' on 2025-12-06 at 3f4935d65f)
237 + + doc: remove stray text in Git data model
238 +
239 + Docfix.
240 +
241 + Will merge to 'master'.
242 + source: <pull.2014.git.1764699084703.gitgitgadget@gmail.com>
243 +
244 +
245 +* ps/odb-misc-fixes (2025-12-05) 4 commits
246 + - odb: properly close sources before freeing them
247 + - builtin/gc: fix condition for whether to write commit graphs
248 + - builtin/repack: fix geometric repacks with promisor remotes
249 + - Merge branch 'ps/object-source-management' into ps/odb-misc-fixes
250 +
251 + Miscellaneous fixes on object database layer.
252 +
253 + Comments?
254 + source: <20251205-odb-related-fixes-v1-0-ef4250abb584@pks.im>
255 +
256 +
257 +* ps/clar-integers (2025-12-06) 3 commits
258 + - gitattributes: disable blank-at-eof errors for clar test expectations
259 + - t/unit-tests: demonstrate use of integer comparison assertions
260 + - t/unit-tests: update clar to 39f11fe
261 +
262 + Import newer version of "clar", unit testing framework.
263 +
264 + Comments?
265 + source: <20251206-b4-pks-clar-update-v2-0-9a14b10c1a36@pks.im>
266 +
267 +
268 +* rs/ban-mktemp (2025-12-06) 5 commits
269 + - compat: remove gitmkdtemp()
270 + - banned.h: ban mktemp(3)
271 + - compat: remove mingw_mktemp()
272 + - compat: use git_mkdtemp()
273 + - wrapper: add git_mkdtemp()
274 +
275 + Rewrite the only use of "mktemp()" that is subject to TOCTOU race
276 + and Stop using the insecure "mktemp()" function.
277 +
278 + Will merge to 'next'.
279 + source: <64e62623-b911-4ddd-a481-05191853c0a6@web.de>
280 +
281 +
282 +* tb/incremental-midx-part-3.2 (2025-12-06) 17 commits
283 + - midx: enable reachability bitmaps during MIDX compaction
284 + - midx: implement MIDX compaction
285 + - t/helper/test-read-midx.c: plug memory leak when selecting layer
286 + - midx-write.c: factor fanout layering from `compute_sorted_entries()`
287 + - midx-write.c: enumerate `pack_int_id` values directly
288 + - midx-write.c: extract `fill_pack_from_midx()`
289 + - midx-write.c: introduce `midx_pack_perm()` helper
290 + - git-compat-util.h: introduce `u32_add()`
291 + - midx: do not require packs to be sorted in lexicographic order
292 + - midx-write.c: introduce `struct write_midx_opts`
293 + - midx-write.c: don't use `pack_perm` when assigning `bitmap_pos`
294 + - t/t5319-multi-pack-index.sh: fix copy-and-paste error in t5319.39
295 + - git-multi-pack-index(1): align SYNOPSIS with 'git multi-pack-index -h'
296 + - git-multi-pack-index(1): remove non-existent incompatibility
297 + - builtin/multi-pack-index.c: make '--progress' a common option
298 + - midx: split `get_midx_checksum()` by adding `get_midx_hash()`
299 + - midx: mark `get_midx_checksum()` arguments as const
300 +
301 + Further work on incremental repacking using MIDX/bitmap
302 +
303 + Comments?
304 + source: <cover.1765053054.git.me@ttaylorr.com>
305 +
306 +
307 +* yc/histogram-hunk-shift-fix (2025-12-06) 1 commit
308 + - xdiff: re-diff shifted change groups when using histogram algorithm
309 +
310 + The final clean-up phase of the diff output could turn the result of
311 + histogram diff algorithm suboptimal, which has been corrected.
312 +
313 + Comments?
314 + source: <pull.2120.git.git.1765054287938.gitgitgadget@gmail.com>
315 +
316 +
317 +* jc/completion-no-single-letter-options (2025-12-06) 1 commit
318 + - completion: clarify support for short options and arguments
319 +
320 + In-code comment update to clarify that single-letter options are
321 + outside of the scope of command line completion script.
322 +
323 + Comments?
324 + source: <xmqqzf7vm7b7.fsf@gitster.g>
325 +
326 +--------------------------------------------------
327 +[Cooking]
328 +
329 * tc/last-modified-active-paths-optimization (2025-11-28) 1 commit
127 - - last-modified: fix use of uninitialized memory
330 + (merged to 'next' on 2025-12-05 at 42c18b607f)
331 + + last-modified: fix use of uninitialized memory
332
333 Recent optimization to "last-modified" command introduced use of
334 uninitialized block of memory, which has been corrected.
335
132 - Will merge to 'next'.
336 + Will merge to 'master'.
337 source: <20251128-toon-big-endian-ci-v1-1-80da0f629c1e@iotcl.com>
338
339
@@ -156,11 +360,13 @@ Release tarballs are available at:
360 Asan strict-string-check complains even when use of strtol() is
361 safe due to varified existence of whitespace after the digits).
362
159 - Will merge to 'next'?
363 + Expecting a reroll.
364 + cf. <aTFvKOHlm4zfT9dU@pks.im>
365 + cf. <4d83375b-76e2-4420-80dd-6a04d3201532@gmail.com>
366 source: <20251130131351.GA198697@coredump.intra.peff.net>
367
368
163 -* js/test-symlink-windows (2025-11-29) 10 commits
369 +* js/test-symlink-windows (2025-12-05) 10 commits
370 - t7800: work around the MSYS path conversion on Windows
371 - t6423: introduce Windows-specific handling for symlinking to /dev/null
372 - t1305: skip symlink tests that do not apply to Windows
@@ -172,30 +378,31 @@ Release tarballs are available at:
378 - apply: symbolic links lack a "trustable executable bit"
379 - t9700: accommodate for Windows paths
380
175 - Prepare test suite
381 + Prepare test suite for Git for Windows that supports symbolic
382 + links.
383
384 Comments?
385 cf. <xmqqms44cb7p.fsf@gitster.g>
386 cf. <xmqqecpgc8wd.fsf@gitster.g>
180 - source: <pull.2009.git.1764440906.gitgitgadget@gmail.com>
387 + source: <pull.2009.v2.git.1764946945.gitgitgadget@gmail.com>
388
389
390 * rs/diff-index-find-copies-harder-optim (2025-11-30) 1 commit
184 - - diff-index: don't queue unchanged filepairs with diff_change()
391 + (merged to 'next' on 2025-12-05 at 539b086bfc)
392 + + diff-index: don't queue unchanged filepairs with diff_change()
393
394 Halve the memory consumed by artificial filepairs created during
395 "git diff --find-copioes-harder", also making the operation run
396 faster.
397
190 - Will merge to 'next'.
398 + Will merge to 'master'.
399 source: <aa28974b-ec73-4562-bfc8-4745ad58b55a@web.de>
400
193 ---------------------------------------------------
194 -[Cooking]
401
402 * pw/replay-exclude-gpgsig-fix (2025-11-26) 1 commit
403 (merged to 'next' on 2025-11-30 at 3dda1242db)
404 + replay: do not copy "gpgsign-sha256" header
405 + (this branch is used by ps/history and pw/replay-drop-empty.)
406
407 "git replay" forgot to omit the "gpgsig-sha256" extended header
408 from the resulting commit the same way it omits "gpgsig", which has
@@ -240,7 +447,7 @@ Release tarballs are available at:
447 source: <20251128012107.101431-1-sandals@crustytoothpaste.net>
448
449
243 -* ds/doc-scalar-config (2025-11-26) 5 commits
450 +* ds/doc-scalar-config (2025-12-01) 5 commits
451 - scalar: document config settings
452 - scalar: alphabetize and simplify config
453 - scalar: remove stale config values
@@ -250,14 +457,14 @@ Release tarballs are available at:
457 Documentation updates.
458
459 Expecting a reroll.
253 - cf. <089c3225-82cb-4039-83df-f97ea9fd49b2@gmail.com>
254 - source: <pull.2010.git.1764195516.gitgitgadget@gmail.com>
460 + cf. <aS88bnmZXMZCV5oS@pks.im>
461 + source: <pull.2010.v2.git.1764607847.gitgitgadget@gmail.com>
462
463
464 * pw/replay-drop-empty (2025-11-27) 2 commits
465 - replay: drop commits that become empty
466 - Merge branch 'ps/history' into pw/replay-drop-empty
260 - (this branch uses ps/history.)
467 + (this branch uses ps/history and pw/replay-exclude-gpgsig-fix.)
468
469 "git replay" is taught to drop commits that become empty (not the
470 ones that are empty in the original).
@@ -277,76 +484,16 @@ Release tarballs are available at:
484 source: <pull.2107.v2.git.git.1763926552033.gitgitgadget@gmail.com>
485
486
280 -* rs/config-set-multi-error-message-fix (2025-11-24) 1 commit
281 - (merged to 'next' on 2025-11-26 at 639a1e26d2)
282 - + config: fix suggestion for failed set of multi-valued option
283 -
284 - The error message given by "git config set", when the variable
285 - being updated has more than one values defined, used old style "git
286 - config" syntax with an incorrect option in its hint, both of which
287 - have been corrected.
288 -
289 - Will merge to 'master'.
290 - source: <c09945fe-fee2-47f6-8193-ac60d7245209@web.de>
291 -
292 -
293 -* rs/config-unset-opthelp-fix (2025-11-24) 1 commit
294 - (merged to 'next' on 2025-11-26 at 31e282f4ae)
295 - + config: fix short help of unset flags
296 -
297 - The option help text given by "git config unset -h" described
298 - the "--all" option to "replace", not "unset", multiple variables,
299 - which has been corrected.
300 -
301 - Will merge to 'master'.
302 - source: <06997dce-e4d5-4889-8e70-5f44da3dc800@web.de>
303 -
304 -
305 -* wm/complete-git-short-opts (2025-11-26) 1 commit
306 - - completion: complete "git -<TAB>" with short options
307 -
308 - The command line completion script (in contrib/) learned to
309 - complete "git -<TAB>" to give single-letter options like "-C".
310 -
311 - Will merge to 'next'?
312 - source: <pull.2100.v2.git.git.1764174391776.gitgitgadget@gmail.com>
313 -
314 -
315 -* jc/optional-path (2025-11-20) 3 commits
316 - (merged to 'next' on 2025-11-25 at 5e75404281)
317 - + config: really treat missing optional path as not configured
318 - + config: really pretend missing :(optional) value is not there
319 - + config: mark otherwise unused function as file-scope static
320 -
321 - "git config get --path" segfaulted on an ":(optional)path" that
322 - does not exist, which has been corrected.
323 -
324 - Will merge to 'master'.
325 - source: <xmqqikf47ajk.fsf@gitster.g>
326 -
327 -
328 -* kh/doc-committer-date-is-author-date (2025-11-20) 1 commit
329 - (merged to 'next' on 2025-11-25 at 9f829587af)
330 - + doc: warn against --committer-date-is-author-date
331 -
332 - The "--committer-date-is-author-date" option of "git am/rebase" is
333 - a misguided one. The documentation is updated to discourage its
334 - use.
335 -
336 - Will merge to 'master'.
337 - source: <V2_committer-date-is-author-date.1@msgid.xyz>
338 -
339 -
487 * gf/win32-pthread-cond-init (2025-11-20) 1 commit
488 - win32: pthread_cond_init should return a value
489
490 Emulation code clean-up.
491
345 - Will merge to 'next'?
492 + Will merge to 'next'.
493 source: <pull.2103.v3.git.git.1763675016637.gitgitgadget@gmail.com>
494
495
349 -* kn/ref-location (2025-11-26) 2 commits
496 +* kn/ref-location (2025-12-01) 2 commits
497 - refs: add GIT_REF_URI to specify reference backend and directory
498 - refs: support obtaining ref_store for given dir
499
@@ -355,31 +502,7 @@ Release tarballs are available at:
502 be useful during ref migration.
503
504 Comments?
358 - source: <20251126-kn-alternate-ref-dir-v2-0-8b9f6f18f635@gmail.com>
359 -
360 -
361 -* js/ci-show-breakage-in-dockerized-jobs (2025-11-17) 1 commit
362 - (merged to 'next' on 2025-11-26 at 3c4a8c430f)
363 - + ci(dockerized): do show the result of failing tests again
364 -
365 - Dockerised jobs at the GitHub Actions CI have been taught to show
366 - more details of failed tests.
367 -
368 - Will merge to 'master'.
369 - cf. <xmqqpl9gike6.fsf@gitster.g>
370 - cf. <CABPp-BErdhTjbqDem4Xvc-XbhgLUEpy9-eiaaR1F_diMca--6A@mail.gmail.com>
371 - source: <pull.2003.git.1763399064983.gitgitgadget@gmail.com>
372 -
373 -
374 -* js/strip-scalar-too (2025-11-17) 1 commit
375 - (merged to 'next' on 2025-11-25 at 9f2607acfb)
376 - + make strip: include `scalar`
377 -
378 - "make strip" has been taught to strip "scalar" as well as "git".
379 -
380 - Will merge to 'master'.
381 - cf. <xmqq7bvoiadg.fsf@gitster.g>
382 - source: <pull.2004.git.1763409086322.gitgitgadget@gmail.com>
505 + source: <20251201-kn-alternate-ref-dir-v3-0-c11b946bc2fa@gmail.com>
506
507
508 * dw/config-global-list (2025-10-09) 4 commits
@@ -423,34 +546,10 @@ Release tarballs are available at:
546 The "git_istream" abstraction has been revamped to make it easier
547 to interface with pluggable object database design.
548
426 - Will merge to 'next'?
549 + Will merge to 'next'.
550 source: <20251123-b4-pks-odb-read-stream-v3-0-1a129182822b@pks.im>
551
552
430 -* ps/object-source-management (2025-11-18) 14 commits
431 - (merged to 'next' on 2025-11-26 at 6f98745b4a)
432 - + odb: handle recreation of quarantine directories
433 - + odb: handle changing a repository's commondir
434 - + chdir-notify: add function to unregister listeners
435 - + odb: handle initialization of sources in `odb_new()`
436 - + http-push: stop setting up `the_repository` for each reference
437 - + t/helper: stop setting up `the_repository` repeatedly
438 - + builtin/index-pack: fix deferred fsck outside repos
439 - + oidset: introduce `oidset_equal()`
440 - + odb: move logic to disable ref updates into repo
441 - + odb: refactor `odb_clear()` to `odb_free()`
442 - + odb: adopt logic to close object databases
443 - + setup: convert `set_git_dir()` to have file scope
444 - + path: move `enter_repo()` into "setup.c"
445 - + Merge branch 'ps/object-source-loose' into ps/object-source-management
446 -
447 - Code refactoring around object database sources.
448 -
449 - Will merge to 'master'.
450 - cf. <aSAZSyUzIMvn-IvR@pks.im>
451 - source: <20251119-b4-pks-odb-creation-v1-0-2b2ed2612cb6@pks.im>
452 -
453 -
553 * jc/submodule-add (2025-11-15) 1 commit
554 - submodule add: sanity check existing .gitmodules
555
@@ -472,7 +571,8 @@ Release tarballs are available at:
571 needs to overwrite existing one, failed to fetch other tags, which
572 has been corrected.
573
475 - Will merge to 'next'?
574 + Expecting a (hopefully small and final) reroll.
575 + cf. <CAOLa=ZQ-O7V9qHbgeuQ78R1bHGDmGEM6fP5Kr9aC0AfvSF8MZA@mail.gmail.com>
576 source: <20251121-fix-tags-not-fetching-v8-0-23b53a8a8334@gmail.com>
577
578
@@ -501,19 +601,6 @@ Release tarballs are available at:
601 source: <xmqqtsz9o3cn.fsf@gitster.g>
602
603
504 -* cc/fast-import-strip-if-invalid (2025-11-16) 3 commits
505 - (merged to 'next' on 2025-11-26 at 7235cd0d18)
506 - + fast-import: add 'strip-if-invalid' mode to --signed-commits=<mode>
507 - + commit: refactor verify_commit_buffer()
508 - + fast-import: refactor finalize_commit_buffer()
509 -
510 - "git fast-import" learns "--strip-if-invalid" option to drop
511 - invalid cryptographic signature from objects.
512 -
513 - Will merge to 'master'.
514 - source: <20251117043450.322644-1-christian.couder@gmail.com>
515 -
516 -
604 * bc/sha1-256-interop-02 (2025-11-17) 15 commits
605 - object-file-convert: always make sure object ID algo is valid
606 - rust: add a small wrapper around the hashfile code
@@ -536,26 +623,7 @@ Release tarballs are available at:
623 source: <20251117221621.2863243-1-sandals@crustytoothpaste.net>
624
625
539 -* en/xdiff-cleanup-2 (2025-11-18) 10 commits
540 - (merged to 'next' on 2025-11-25 at 452b7107da)
541 - + xdiff: rename rindex -> reference_index
542 - + xdiff: change rindex from long to size_t in xdfile_t
543 - + xdiff: make xdfile_t.nreff a size_t instead of long
544 - + xdiff: make xdfile_t.nrec a size_t instead of long
545 - + xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash
546 - + xdiff: use unambiguous types in xdl_hash_record()
547 - + xdiff: use size_t for xrecord_t.size
548 - + xdiff: make xrecord_t.ptr a uint8_t instead of char
549 - + xdiff: use ptrdiff_t for dstart/dend
550 - + doc: define unambiguous type mappings across C and Rust
551 -
552 - Code clean-up.
553 -
554 - Will merge to 'master'.
555 - source: <pull.2070.v5.git.git.1763505262.gitgitgadget@gmail.com>
556 -
557 -
558 -* ar/run-command-hook (2025-11-24) 10 commits
626 +* ar/run-command-hook (2025-12-04) 11 commits
627 - receive-pack: convert receive hooks to hook API
628 - receive-pack: convert update hooks to new API
629 - hooks: allow callers to capture output
@@ -566,12 +634,13 @@ Release tarballs are available at:
634 - hook: convert 'post-rewrite' hook in sequencer.c to hook API
635 - hook: provide stdin via callback
636 - run-command: add stdin callback for parallelization
637 + - run-command: add first helper for pp child states
638
639 Use hook API to replace ad-hoc invocation of hook scripts with the
640 run_command() API.
641
642 Will merge to 'next'?
574 - source: <20251124172043.1650014-1-adrian.ratiu@collabora.com>
643 + source: <20251204141535.1986263-1-adrian.ratiu@collabora.com>
644
645
646 * je/doc-reset (2025-10-17) 4 commits
@@ -587,9 +656,10 @@ Release tarballs are available at:
656 source: <pull.1991.git.1760731558.gitgitgadget@gmail.com>
657
658
590 -* ps/history (2025-10-27) 12 commits
659 +* ps/history (2025-12-03) 13 commits
660 - builtin/history: implement "split" subcommand
661 - cache-tree: allow writing in-memory index as tree
662 + - add-patch: allow disabling editing of hunks
663 - add-patch: add support for in-memory index patching
664 - add-patch: remove dependency on "add-interactive" subsystem
665 - add-patch: split out `struct interactive_options`
@@ -599,14 +669,13 @@ Release tarballs are available at:
669 - replay: stop using `the_repository`
670 - replay: extract logic to pick commits
671 - wt-status: provide function to expose status for trees
602 - - Merge branch 'sa/replay-atomic-ref-updates' into ps/history
603 - (this branch is used by pw/replay-drop-empty.)
672 + - Merge branch 'pw/replay-exclude-gpgsig-fix' into ps/history
673 + (this branch is used by pw/replay-drop-empty; uses pw/replay-exclude-gpgsig-fix.)
674
675 "git history" history rewriting UI.
676
607 - Expecting a reroll.
608 - cf. <aRxDYkeAi8T-HH8M@pks.im>
609 - source: <20251027-b4-pks-history-builtin-v6-0-407dd3f57ad3@pks.im>
677 + Ready?
678 + source: <20251203-b4-pks-history-builtin-v7-0-9e9f849bfd0e@pks.im>
679
680
681 * ms/doc-worktree-side-by-side (2025-10-10) 2 commits
@@ -634,5 +703,18 @@ Release tarballs are available at:
703 each other by encoding submodule names before using them as path
704 components.
705
637 - Will merge to 'next'?
706 + Expecting a reroll.
707 source: <20251119211030.2008441-1-adrian.ratiu@collabora.com>
708 +
709 +--------------------------------------------------
710 +[Discarded]
711 +
712 +* wm/complete-git-short-opts (2025-11-26) 1 commit
713 + - completion: complete "git -<TAB>" with short options
714 +
715 + The command line completion script (in contrib/) learned to
716 + complete "git -<TAB>" to give single-letter options like "-C".
717 +
718 + Will discard. We do not complete single-letter options themselves.
719 + cf. <xmqqo6onjfwl.fsf@gitster.g>
720 + source: <pull.2100.v2.git.git.1764174391776.gitgitgadget@gmail.com>