What's cooking (2025/10 #12)

Junio C Hamano committed Oct 30, 2025 at 13:10 UTC 5962acfb4d611282d4f12bc00e9cdcd43bdd89fc
1 file changed +256 -238
whats-cooking.txt
+256 -238
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Oct 2025, #11; Tue, 28)
3 -X-master-at: 57da342c786f59eaeb436c18635cc1c7597733d9
4 -X-next-at: a50a493c49d755bf293be8b21ea65208572816ae
2 +Subject: What's cooking in git.git (Oct 2025, #12; Thu, 30)
3 +X-master-at: a99f379adf116d53eb11957af5bab5214915f91d
4 +X-next-at: c1ab5b90caafe0e01395e0937868c10fd1c06ddf
5 Bcc: lwn@lwn.net, gitster@pobox.com
6
7 -What's cooking in git.git (Oct 2025, #11; Tue, 28)
7 +What's cooking in git.git (Oct 2025, #12; Thu, 30)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -48,102 +48,267 @@ Release tarballs are available at:
48 --------------------------------------------------
49 [Graduated to 'master']
50
51 -* cc/fast-import-strip-signed-tags (2025-10-13) 5 commits
52 - (merged to 'next' on 2025-10-22 at c25f8aa54a)
53 - + fast-import: add '--signed-tags=<mode>' option
54 - + fast-export: handle all kinds of tag signatures
55 - + t9350: properly count annotated tags
56 - + lib-gpg: allow tests with GPGSM or GPGSSH prereq first
57 - + doc: git-tag: stop focusing on GPG signed tags
58 -
59 - "git fast-import" is taught to handle signed tags, just like it
60 - recently learned to handle signed commits, in different ways.
61 -
62 - source: <20251013084857.1646783-1-christian.couder@gmail.com>
63 -
64 -
65 -* ds/sparse-checkout-clean (2025-10-20) 8 commits
66 - (merged to 'next' on 2025-10-20 at afc50f3401)
67 - + sparse-index: improve advice message instructions
68 - (merged to 'next' on 2025-09-25 at 00b296f153)
69 - + t: expand tests around sparse merges and clean
70 - + sparse-index: point users to new 'clean' action
71 - + sparse-checkout: add --verbose option to 'clean'
72 - + dir: add generic "walk all files" helper
73 - + sparse-checkout: match some 'clean' behavior
74 - + sparse-checkout: add basics of 'clean' command
75 - + sparse-checkout: remove use of the_repository
76 -
77 - "git sparse-checkout" subcommand learned a new "clean" action to
78 - prune otherwise unused working-tree files that are outside the
79 - areas of interest.
80 -
81 - source: <pull.1941.v3.git.1757673011.gitgitgadget@gmail.com>
82 -
83 -
84 -* ps/ci-rust (2025-10-14) 8 commits
85 - (merged to 'next' on 2025-10-22 at 89129fa777)
86 - + rust: support for Windows
87 - + ci: verify minimum supported Rust version
88 - + ci: check for common Rust mistakes via Clippy
89 - + rust/varint: add safety comments
90 - + ci: check formatting of our Rust code
91 - + ci: deduplicate calls to `apt-get update`
92 - + Merge branch 'ps/gitlab-ci-windows-improvements' into ps/ci-rust
93 - + Merge branch 'ps/rust-balloon' into ps/ci-rust
94 - (this branch is used by ps/rust-cbindgen and qj/doc-first-contrib-check-lore.)
95 -
96 - CI improvements to handle the recent Rust integration better.
97 -
98 - source: <20251015-b4-pks-ci-rust-v3-0-13810af33bd5@pks.im>
51 +* ey/commit-graph-changed-paths-config (2025-10-17) 1 commit
52 + (merged to 'next' on 2025-10-23 at 48fd936ff1)
53 + + commit-graph: add new config for changed-paths & recommend it in scalar
54 +
55 + A new configuration variable commitGraph.changedPaths allows to
56 + turn "--changed-paths" on by default for "git commit-graph".
57 + source: <pull.1983.v2.git.1760734739642.gitgitgadget@gmail.com>
58 +
59 +
60 +* kf/log-shortlog-completion-fix (2025-10-20) 1 commit
61 + (merged to 'next' on 2025-10-24 at 2300659a0a)
62 + + completion: complete some 'git log' options
63 +
64 + "git shortlog" knows "--committer" and "--author" options, which
65 + the command line completion (in contrib/) did not handle well,
66 + which has been corrected.
67 + source: <pull.2073.v2.git.git.1760981577441.gitgitgadget@gmail.com>
68 +
69 +
70 +* ly/diff-name-only-with-diff-from-content (2025-10-19) 3 commits
71 + (merged to 'next' on 2025-10-24 at 237c19e4e6)
72 + + diff: stop output garbled message in dry run mode
73 + + Merge branch 'jc/diff-from-contents-fix' into ly/diff-name-only-with-diff-from-content
74 + + Merge branch 'jk/diff-from-contents-fix' into ly/diff-name-only-with-diff-from-content
75 + (this branch is used by jk/diff-patch-dry-run-cleanup.)
76 +
77 + Regression fixes for a topic that has already been merged.
78 + source: <20251019163024.18939-1-yldhome2d2@gmail.com>
79 +
80 +
81 +* ob/gpg-interface-cleanup (2025-10-23) 2 commits
82 + (merged to 'next' on 2025-10-24 at ce6d041635)
83 + + gpg-interface: do not use misdesigned strbuf_split*()
84 + + gpg-interface: do not use misdesigned strbuf_split*()
85 +
86 + strbuf_split*() to split a string into multiple strbufs is often a
87 + wrong API to use. A few uses of it have been removed by
88 + simplifying the code.
89 + cf. <CAP8UFD1fousSKKduFAaZrsV9REnOaRDOQYcqB+rTQ0Ys60OWGA@mail.gmail.com>
90 + source: <cover.1761217100.git.belkid98@gmail.com>
91 +
92 +
93 +* ps/remove-packfile-store-get-packs (2025-10-09) 7 commits
94 + (merged to 'next' on 2025-10-24 at e2f6fba6fe)
95 + + packfile: rename `packfile_store_get_all_packs()`
96 + + packfile: introduce macro to iterate through packs
97 + + packfile: drop `packfile_store_get_packs()`
98 + + builtin/grep: simplify how we preload packs
99 + + builtin/gc: convert to use `packfile_store_get_all_packs()`
100 + + object-name: convert to use `packfile_store_get_all_packs()`
101 + + Merge branch 'tb/incremental-midx-part-3.1' into ps/remove-packfile-store-get-packs
102 + (this branch is used by ps/packed-git-in-object-store.)
103 +
104 + Two slightly different ways to get at "all the packfiles" in API
105 + has been cleaned up.
106 + source: <20251009-pks-packfiles-convert-get-all-v2-0-0d73b87ce711@pks.im>
107 +
108 +
109 +* ps/symlink-symref-deprecation (2025-10-14) 1 commit
110 + (merged to 'next' on 2025-10-24 at b37ca35280)
111 + + refs/files: deprecate writing symrefs as symbolic links
112 +
113 + "Symlink symref" has been added to the list of things that will
114 + disappear at Git 3.0 boundary.
115 + source: <20251015-pks-ref-files-deprecate-symbolic-links-v2-1-0529ba48db41@pks.im>
116 +
117 +
118 +* rz/bisect-help-unknown (2025-10-22) 1 commit
119 + (merged to 'next' on 2025-10-24 at d0633ab14d)
120 + + bisect: fix handling of `help` and invalid subcommands
121 +
122 + "git bisect" command did not react correctly to "git bisect help"
123 + and "git bisect unknown", which has been corrected.
124 + source: <pull.2078.git.git.1761122173126.gitgitgadget@gmail.com>
125 +
126 +
127 +* tb/incremental-midx-part-3.1 (2025-10-15) 50 commits
128 + (merged to 'next' on 2025-10-22 at e78054f5a0)
129 + + builtin/repack.c: clean up unused `#include`s
130 + + repack: move `write_cruft_pack()` out of the builtin
131 + + repack: move `write_filtered_pack()` out of the builtin
132 + + repack: move `pack_kept_objects` to `struct pack_objects_args`
133 + + repack: move `finish_pack_objects_cmd()` out of the builtin
134 + + builtin/repack.c: pass `write_pack_opts` to `finish_pack_objects_cmd()`
135 + + repack: extract `write_pack_opts_is_local()`
136 + + repack: move `find_pack_prefix()` out of the builtin
137 + + builtin/repack.c: use `write_pack_opts` within `write_cruft_pack()`
138 + + builtin/repack.c: introduce `struct write_pack_opts`
139 + + repack: 'write_midx_included_packs' API from the builtin
140 + + builtin/repack.c: inline packs within `write_midx_included_packs()`
141 + + builtin/repack.c: pass `repack_write_midx_opts` to `midx_included_packs`
142 + + builtin/repack.c: inline `remove_redundant_bitmaps()`
143 + + builtin/repack.c: reorder `remove_redundant_bitmaps()`
144 + + repack: keep track of MIDX pack names using existing_packs
145 + + builtin/repack.c: use a string_list for 'midx_pack_names'
146 + + builtin/repack.c: extract opts struct for 'write_midx_included_packs()'
147 + + builtin/repack.c: remove ref snapshotting from builtin
148 + + repack: remove pack_geometry API from the builtin
149 + + builtin/repack.c: pass 'packdir' to `pack_geometry_remove_redundant()`
150 + + builtin/repack.c: pass 'pack_kept_objects' to `pack_geometry_init()`
151 + + builtin/repack.c: rename various pack_geometry functions
152 + + builtin/repack.c: remove "repack_promisor_objects()" from the builtin
153 + + builtin/repack.c: pass "packtmp" to `repack_promisor_objects()`
154 + + repack: remove 'generated_pack' API from the builtin
155 + + builtin/repack.c: provide pack locations to `generated_pack_install()`
156 + + builtin/repack.c: pass "packtmp" to `generated_pack_populate()`
157 + + builtin/repack.c: factor out "generated_pack_install"
158 + + builtin/repack.c: rename "struct generated_pack_data"
159 + + repack: remove 'existing_packs' API from the builtin
160 + + builtin/repack.c: avoid unnecessary numeric casts in existing_packs
161 + + builtin/repack.c: pass "packdir" when removing packs
162 + + repack: remove 'remove_redundant_pack' from the builtin
163 + + builtin/repack.c: rename many 'struct existing_packs' functions
164 + + repack: remove 'prepare_pack_objects' from the builtin
165 + + repack: move 'delta_base_offset' to 'struct pack_objects_args'
166 + + builtin/repack.c: pass both pack_objects args to repack_config
167 + + repack: introduce new compilation unit
168 + + builtin/repack.c: avoid using `hash_to_hex()` in pack geometry
169 + + builtin/repack.c: avoid "the_hash_algo" in `finish_pack_objects_cmd()`
170 + + builtin/repack: avoid "the_hash_algo" in `repack_promisor_objects()`
171 + + builtin/repack.c: avoid "the_hash_algo" in `write_oid()`
172 + + builtin/repack.c: avoid "the_hash_algo" when deleting packs
173 + + builtin/repack.c: avoid "the_repository" when repacking promisor objects
174 + + builtin/repack.c: avoid "the_repository" when removing packs
175 + + builtin/repack.c: avoid "the_repository" when taking a ref snapshot
176 + + builtin/repack.c: avoid "the_repository" in existing packs API
177 + + builtin/repack.c: avoid "the_repository" in `cmd_repack()`
178 + + Merge branch 'ps/packfile-store' into tb/incremental-midx-part-3.1
179 + (this branch is used by kn/refs-optim-cleanup, ps/maintenance-geometric, ps/packed-git-in-object-store, ps/ref-peeled-tags and ps/remove-packfile-store-get-packs.)
180 +
181 + Clean-up "git repack" machinery to prepare for incremental update
182 + of midx files.
183 + source: <cover.1760567210.git.me@ttaylorr.com>
184
185 --------------------------------------------------
186 [New Topics]
187
188 +* kh/doc-checkout-markup-fix (2025-10-28) 1 commit
189 + (merged to 'next' on 2025-10-29 at f106c77f74)
190 + + doc: git-checkout: fix placeholder markup
191 +
192 + Doc mark-up fix.
193 +
194 + Will merge to 'master'.
195 + source: <v2-cb38c701537.1761675472.git.code@khaugsbakk.name>
196 +
197 +
198 +* rz/t0450-bisect-doc-update (2025-10-28) 1 commit
199 + - bisect: update usage and docs to match each other
200 +
201 + The help text and manual page of "git bisect" command have been
202 + made consistent with each other.
203 +
204 + Will merge to 'next'.
205 + source: <pull.2084.git.git.1761690461697.gitgitgadget@gmail.com>
206 +
207 +
208 +* bc/sha1-256-interop-02 (2025-10-29) 15 commits
209 + - SQUASH??? downgrade build.rs syntax
210 + - object-file-convert: always make sure object ID algo is valid
211 + - rust: add a small wrapper around the hashfile code
212 + - rust: add a new binary loose object map format
213 + - rust: add functionality to hash an object
214 + - rust: add a build.rs script for tests
215 + - hash: expose hash context functions to Rust
216 + - write-or-die: add an fsync component for the loose object map
217 + - csum-file: define hashwrite's count as a uint32_t
218 + - hash: add a function to look up hash algo structs
219 + - rust: add a hash algorithm abstraction
220 + - rust: add a ObjectID struct
221 + - hash: use uint32_t for object_id algorithm
222 + - conversion: don't crash when no destination algo
223 + - repository: require Rust support for interoperability
224 +
225 + The code to maintain mapping between object names in multiple hash
226 + functions is being added, written in Rust.
227 +
228 + Expecting a reroll.
229 + source: <20251027004404.2152927-1-sandals@crustytoothpaste.net>
230 +
231 +
232 +* jk/doc-backslash-in-exclude (2025-10-29) 1 commit
233 + (merged to 'next' on 2025-10-30 at 29790121d5)
234 + + doc: document backslash in gitignore patterns
235 +
236 + The patterns used in the .gitignore files use backslash in the way
237 + documented for fnmatch(3); document as such to reduce confusion.
238 +
239 + Will merge to 'master'.
240 + source: <20251029153237.GA1133542@coredump.intra.peff.net>
241 +
242 +
243 +* jk/test-delete-gpgsig-leakfix (2025-10-29) 1 commit
244 + (merged to 'next' on 2025-10-30 at 097810cb65)
245 + + test-tool: fix leak in delete-gpgsig command
246 +
247 + Leakfix.
248 +
249 + Will merge to 'master'.
250 + source: <20251029191031.GA1257596@coredump.intra.peff.net>
251 +
252 +--------------------------------------------------
253 +[Cooking]
254 +
255 * qj/doc-my1stcontrib-email-verify (2025-10-27) 1 commit
104 - - MyFirstContribution: add note on confirming patches
256 + (merged to 'next' on 2025-10-29 at 33f961f37a)
257 + + MyFirstContribution: add note on confirming patches
258
259 The "MyFirstContribution" tutorial tells the reader how to send out
260 their patches; the section gained a hint to verify the message
261 reached the mailing list.
262
110 - Will merge to 'next'.
263 + Will merge to 'master'.
264 source: <20251027111600.1481-1-qjessa662@gmail.com>
265
266
267 * xr/ref-debug-remove-on-disk (2025-10-24) 1 commit
115 - - refs: add missing remove_on_disk implementation for debug backend
268 + (merged to 'next' on 2025-10-29 at 316e4afdbf)
269 + + refs: add missing remove_on_disk implementation for debug backend
270
271 The "debug" ref-backend was missing a method implementation, which
272 has been corrected.
273
120 - Will merge to 'next'.
274 + Will merge to 'master'.
275 source: <pull.2082.git.git.1761295094982.gitgitgadget@gmail.com>
276
277
278 * ad/blame-diff-algorithm (2025-10-28) 1 commit
279 - blame: make diff algorithm configurable
280
281 + "git blame" learns "--diff-algorithm=<algo>" option.
282 +
283 + Expecting a reroll.
284 + cf. <fde3dae1-bb11-45e8-9211-50ae003ca497@gmail.com>
285 source: <pull.2075.v2.git.git.1761658643278.gitgitgadget@gmail.com>
286
287
130 -* cc/fast-import-export-i18n-cleanup (2025-10-28) 5 commits
288 +* cc/fast-import-export-i18n-cleanup (2025-10-30) 5 commits
289 - gpg-interface: mark a string for translation
290 - fast-import: mark strings for translation
291 - fast-export: mark strings for translation
292 - gpg-interface: use left shift to define GPG_VERIFY_*
293 - gpg-interface: simplify ssh fingerprint parsing
294
137 - source: <20251028081232.3068147-1-christian.couder@gmail.com>
295 + Messages from fast-import/export are now marked for i18n.
296 +
297 + Will merge to 'next'?
298 + source: <20251030123332.3337684-1-christian.couder@gmail.com>
299
300
301 * eb/t1016-hash-transition-fix (2025-10-28) 1 commit
141 - - t1016-compatObjectFormat: really freeze time for reproduciblity
302 + (merged to 'next' on 2025-10-30 at b743410ab6)
303 + + t1016-compatObjectFormat: really freeze time for reproduciblity
304
305 + Test fix.
306 +
307 + Will merge to 'master'.
308 source: <87frb310d2.fsf_-_@email.froward.int.ebiederm.org>
309
310
146 -* ps/packed-git-in-object-store (2025-10-28) 9 commits
311 +* ps/packed-git-in-object-store (2025-10-30) 9 commits
312 - packfile: track packs via the MRU list exclusively
313 - packfile: always add packfiles to MRU when adding a pack
314 - packfile: move list of packs into the packfile store
@@ -153,12 +318,13 @@ Release tarballs are available at:
318 - packfile: move the MRU list into the packfile store
319 - packfile: use a `strmap` to store packs by name
320 - Merge branch 'ps/remove-packfile-store-get-packs' into ps/packed-git-in-object-store
156 - (this branch uses ps/remove-packfile-store-get-packs and tb/incremental-midx-part-3.1.)
321
158 - source: <20251028-pks-packfiles-store-drop-list-v1-0-1a3b82030a7a@pks.im>
322 + The list of packfiles used in a running Git process is moved from
323 + the object-database layer down to object-store layer.
324 +
325 + Will merge to 'next'?
326 + source: <20251030-pks-packfiles-store-drop-list-v2-0-84654f080cc0@pks.im>
327
160 ---------------------------------------------------
161 -[Cooking]
328
329 * tu/credential-install (2025-10-25) 1 commit
330 (merged to 'next' on 2025-10-28 at 43589c4832)
@@ -179,7 +345,6 @@ Release tarballs are available at:
345 + diff: drop save/restore of color_moved in dry-run mode
346 + diff: send external diff output to diff_options.file
347 + Merge branch 'ly/diff-name-only-with-diff-from-content' into jk/diff-patch-dry-run-cleanup
182 - (this branch uses ly/diff-name-only-with-diff-from-content.)
348
349 Finishing touches to fixes to the recent regression in "git diff -w
350 --quiet" and anything that needs to internally generate patch to
@@ -195,7 +360,7 @@ Release tarballs are available at:
360
361 Doc update.
362
198 - Comments?
363 + Will merge to 'next'?
364 source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im>
365
366
@@ -223,42 +388,6 @@ Release tarballs are available at:
388 source: <13529bee-1e02-4c20-9461-6569312bfe4f@web.de>
389
390
226 -* ey/commit-graph-changed-paths-config (2025-10-17) 1 commit
227 - (merged to 'next' on 2025-10-23 at 48fd936ff1)
228 - + commit-graph: add new config for changed-paths & recommend it in scalar
229 -
230 - A new configuration variable commitGraph.changedPaths allows to
231 - turn "--changed-paths" on by default for "git commit-graph".
232 -
233 - Will merge to 'master'.
234 - source: <pull.1983.v2.git.1760734739642.gitgitgadget@gmail.com>
235 -
236 -
237 -* ob/gpg-interface-cleanup (2025-10-23) 2 commits
238 - (merged to 'next' on 2025-10-24 at ce6d041635)
239 - + gpg-interface: do not use misdesigned strbuf_split*()
240 - + gpg-interface: do not use misdesigned strbuf_split*()
241 -
242 - strbuf_split*() to split a string into multiple strbufs is often a
243 - wrong API to use. A few uses of it have been removed by
244 - simplifying the code.
245 -
246 - Will merge to 'master'.
247 - cf. <CAP8UFD1fousSKKduFAaZrsV9REnOaRDOQYcqB+rTQ0Ys60OWGA@mail.gmail.com>
248 - source: <cover.1761217100.git.belkid98@gmail.com>
249 -
250 -
251 -* rz/bisect-help-unknown (2025-10-22) 1 commit
252 - (merged to 'next' on 2025-10-24 at d0633ab14d)
253 - + bisect: fix handling of `help` and invalid subcommands
254 -
255 - "git bisect" command did not react correctly to "git bisect help"
256 - and "git bisect unknown", which has been corrected.
257 -
258 - Will merge to 'master'.
259 - source: <pull.2078.git.git.1761122173126.gitgitgadget@gmail.com>
260 -
261 -
391 * ps/rust-cbindgen (2025-10-24) 6 commits
392 - rust: generate bindings via cbindgen
393 - meson: rename Rust library target
@@ -271,7 +400,8 @@ Release tarballs are available at:
400 Introduce cbindgen in the build framework to help interfacing with
401 Rust.
402
274 - Another dependency in an ecosystem that is not mature yet complicates things a bit too much?
403 + More discussion?
404 + cf. <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im>
405 source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im>
406
407
@@ -287,24 +417,12 @@ Release tarballs are available at:
417 source: <20251026154036.GA2173430@coredump.intra.peff.net>
418
419
290 -* kf/log-shortlog-completion-fix (2025-10-20) 1 commit
291 - (merged to 'next' on 2025-10-24 at 2300659a0a)
292 - + completion: complete some 'git log' options
293 -
294 - "git shortlog" knows "--committer" and "--author" options, which
295 - the command line completion (in contrib/) did not handle well,
296 - which has been corrected.
297 -
298 - Will merge to 'master'.
299 - source: <pull.2073.v2.git.git.1760981577441.gitgitgadget@gmail.com>
300 -
301 -
420 * kn/refs-optim-cleanup (2025-10-20) 4 commits
421 - t/pack-refs-tests: move the 'test_done' to callees
422 - refs: rename 'pack_refs_opts' to 'refs_optimize_opts'
423 - refs: move to using the '.optimize' functions
424 - Merge branch 'ps/ref-peeled-tags' into kn/refs-optim-cleanup
307 - (this branch uses jt/repo-structure, ps/ref-peeled-tags and tb/incremental-midx-part-3.1.)
425 + (this branch uses jt/repo-structure and ps/ref-peeled-tags.)
426
427 Code clean-up.
428
@@ -322,32 +440,20 @@ Release tarballs are available at:
440 source: <20251026225409.46647-1-lucasseikioshiro@gmail.com>
441
442
325 -* ly/diff-name-only-with-diff-from-content (2025-10-19) 3 commits
326 - (merged to 'next' on 2025-10-24 at 237c19e4e6)
327 - + diff: stop output garbled message in dry run mode
328 - + Merge branch 'jc/diff-from-contents-fix' into ly/diff-name-only-with-diff-from-content
329 - + Merge branch 'jk/diff-from-contents-fix' into ly/diff-name-only-with-diff-from-content
330 - (this branch is used by jk/diff-patch-dry-run-cleanup.)
331 -
332 - Regression fixes for a topic that has already been merged.
333 -
334 - Will merge to 'master'.
335 - source: <20251019163024.18939-1-yldhome2d2@gmail.com>
336 -
337 -
443 * jt/repo-structure (2025-10-21) 7 commits
339 - - builtin/repo: add progress meter for structure stats
340 - - builtin/repo: add keyvalue and nul format for structure stats
341 - - builtin/repo: add object counts in structure output
342 - - builtin/repo: introduce structure subcommand
343 - - ref-filter: export ref_kind_from_refname()
344 - - ref-filter: allow NULL filter pattern
345 - - builtin/repo: rename repo_info() to cmd_repo_info()
444 + (merged to 'next' on 2025-10-28 at c4d81a2da9)
445 + + builtin/repo: add progress meter for structure stats
446 + + builtin/repo: add keyvalue and nul format for structure stats
447 + + builtin/repo: add object counts in structure output
448 + + builtin/repo: introduce structure subcommand
449 + + ref-filter: export ref_kind_from_refname()
450 + + ref-filter: allow NULL filter pattern
451 + + builtin/repo: rename repo_info() to cmd_repo_info()
452 (this branch is used by kn/refs-optim-cleanup and ps/ref-peeled-tags.)
453
454 "git repo structure", a new command.
455
350 - Will merge to 'next'.
456 + Will merge to 'master'.
457 cf. <eesy5qhqzi56qrzv7wlpenxag23l2zykakvpmr6p5rnak6cril@ap3rugp44bcz>
458 cf. <aPsLS6lbzG27W-C8@pks.im>
459 source: <20251021182601.2687284-1-jltobler@gmail.com>
@@ -368,7 +474,6 @@ Release tarballs are available at:
474 + builtin/gc: make `too_many_loose_objects()` reusable without GC config
475 + builtin/gc: remove global `repack` variable
476 + Merge branch 'tb/incremental-midx-part-3.1' into ps/maintenance-geometric
371 - (this branch uses tb/incremental-midx-part-3.1.)
477
478 "git maintenance" command learns the "geometric" strategy where it
479 avoids doing maintenance tasks that rebuilds everything from
@@ -379,7 +484,7 @@ Release tarballs are available at:
484 source: <20251027-pks-maintenance-geometric-strategy-v4-0-18049e4a0adf@pks.im>
485
486
382 -* en/xdiff-cleanup-2 (2025-10-15) 9 commits
487 +* en/xdiff-cleanup-2 (2025-10-29) 10 commits
488 - xdiff: rename rindex -> reference_index
489 - xdiff: change rindex from long to size_t in xdfile_t
490 - xdiff: make xdfile_t.nreff a size_t instead of long
@@ -389,9 +494,12 @@ Release tarballs are available at:
494 - xdiff: use size_t for xrecord_t.size
495 - xdiff: make xrecord_t.ptr a uint8_t instead of char
496 - xdiff: use ssize_t for dstart/dend, make them last in xdfile_t
497 + - doc: define unambiguous type mappings across C and Rust
498
499 Code clean-up.
394 - source: <pull.2070.git.git.1760563101.gitgitgadget@gmail.com>
500 +
501 + Comments?
502 + source: <pull.2070.v2.git.git.1761776388.gitgitgadget@gmail.com>
503
504
505 * ar/run-command-hook (2025-10-17) 10 commits
@@ -426,17 +534,6 @@ Release tarballs are available at:
534 source: <pull.1991.git.1760731558.gitgitgadget@gmail.com>
535
536
429 -* ps/symlink-symref-deprecation (2025-10-14) 1 commit
430 - (merged to 'next' on 2025-10-24 at b37ca35280)
431 - + refs/files: deprecate writing symrefs as symbolic links
432 -
433 - "Symlink symref" has been added to the list of things that will
434 - disappear at Git 3.0 boundary.
435 -
436 - Will merge to 'master'.
437 - source: <20251015-pks-ref-files-deprecate-symbolic-links-v2-1-0529ba48db41@pks.im>
438 -
439 -
537 * kh/doc-patch-id-1 (2025-10-13) 2 commits
538 (merged to 'next' on 2025-10-26 at e284077116)
539 + doc: patch-id: convert to the modern synopsis style
@@ -447,14 +544,15 @@ Release tarballs are available at:
544
545
546 * tz/test-prepare-gnupghome (2024-07-03) 2 commits
450 - - t/lib-gpg: call prepare_gnupghome() in GPG2 prereq
451 - - t/lib-gpg: add prepare_gnupghome() to create GNUPGHOME dir
547 + (merged to 'next' on 2025-10-28 at f612107bf9)
548 + + t/lib-gpg: call prepare_gnupghome() in GPG2 prereq
549 + + t/lib-gpg: add prepare_gnupghome() to create GNUPGHOME dir
550
551 Tests did not set up GNUPGHOME correctly, which is fixed but some
552 flaky tests are exposed in t1016, which needs to be addressed
553 before this topic can move forward.
554
457 - Will merge to 'next'.
555 + Will merge to 'master'.
556 cf. <ZoV8b2RvYxLOotSJ@teonanacatl.net>
557 cf. <xmqqbjlump3m.fsf@gitster.g>
558 cf. <87frb310d2.fsf_-_@email.froward.int.ebiederm.org>
@@ -478,7 +576,7 @@ Release tarballs are available at:
576 - refs: introduce wrapper struct for `each_ref_fn`
577 - Merge branch 'jt/repo-structure' into ps/ref-peeled-tags
578 - Merge branch 'tb/incremental-midx-part-3.1' into ps/ref-peeled-tags
481 - (this branch is used by kn/refs-optim-cleanup; uses jt/repo-structure and tb/incremental-midx-part-3.1.)
579 + (this branch is used by kn/refs-optim-cleanup; uses jt/repo-structure.)
580
581 Some ref backend storage can hold not just the object name of an
582 annotated tag, but the object name of the object the tag points at.
@@ -488,24 +586,6 @@ Release tarballs are available at:
586 source: <20251023-b4-pks-ref-filter-skip-parsing-objects-v4-0-2be68ce82c9a@pks.im>
587
588
491 -* ps/remove-packfile-store-get-packs (2025-10-09) 7 commits
492 - (merged to 'next' on 2025-10-24 at e2f6fba6fe)
493 - + packfile: rename `packfile_store_get_all_packs()`
494 - + packfile: introduce macro to iterate through packs
495 - + packfile: drop `packfile_store_get_packs()`
496 - + builtin/grep: simplify how we preload packs
497 - + builtin/gc: convert to use `packfile_store_get_all_packs()`
498 - + object-name: convert to use `packfile_store_get_all_packs()`
499 - + Merge branch 'tb/incremental-midx-part-3.1' into ps/remove-packfile-store-get-packs
500 - (this branch is used by ps/packed-git-in-object-store; uses tb/incremental-midx-part-3.1.)
501 -
502 - Two slightly different ways to get at "all the packfiles" in API
503 - has been cleaned up.
504 -
505 - Will merge to 'master'.
506 - source: <20251009-pks-packfiles-convert-get-all-v2-0-0d73b87ce711@pks.im>
507 -
508 -
589 * je/doc-data-model (2025-10-27) 1 commit
590 - doc: add an explanation of Git's data model
591
@@ -515,67 +595,6 @@ Release tarballs are available at:
595 source: <pull.1981.v4.git.1761593537924.gitgitgadget@gmail.com>
596
597
518 -* tb/incremental-midx-part-3.1 (2025-10-15) 50 commits
519 - (merged to 'next' on 2025-10-22 at e78054f5a0)
520 - + builtin/repack.c: clean up unused `#include`s
521 - + repack: move `write_cruft_pack()` out of the builtin
522 - + repack: move `write_filtered_pack()` out of the builtin
523 - + repack: move `pack_kept_objects` to `struct pack_objects_args`
524 - + repack: move `finish_pack_objects_cmd()` out of the builtin
525 - + builtin/repack.c: pass `write_pack_opts` to `finish_pack_objects_cmd()`
526 - + repack: extract `write_pack_opts_is_local()`
527 - + repack: move `find_pack_prefix()` out of the builtin
528 - + builtin/repack.c: use `write_pack_opts` within `write_cruft_pack()`
529 - + builtin/repack.c: introduce `struct write_pack_opts`
530 - + repack: 'write_midx_included_packs' API from the builtin
531 - + builtin/repack.c: inline packs within `write_midx_included_packs()`
532 - + builtin/repack.c: pass `repack_write_midx_opts` to `midx_included_packs`
533 - + builtin/repack.c: inline `remove_redundant_bitmaps()`
534 - + builtin/repack.c: reorder `remove_redundant_bitmaps()`
535 - + repack: keep track of MIDX pack names using existing_packs
536 - + builtin/repack.c: use a string_list for 'midx_pack_names'
537 - + builtin/repack.c: extract opts struct for 'write_midx_included_packs()'
538 - + builtin/repack.c: remove ref snapshotting from builtin
539 - + repack: remove pack_geometry API from the builtin
540 - + builtin/repack.c: pass 'packdir' to `pack_geometry_remove_redundant()`
541 - + builtin/repack.c: pass 'pack_kept_objects' to `pack_geometry_init()`
542 - + builtin/repack.c: rename various pack_geometry functions
543 - + builtin/repack.c: remove "repack_promisor_objects()" from the builtin
544 - + builtin/repack.c: pass "packtmp" to `repack_promisor_objects()`
545 - + repack: remove 'generated_pack' API from the builtin
546 - + builtin/repack.c: provide pack locations to `generated_pack_install()`
547 - + builtin/repack.c: pass "packtmp" to `generated_pack_populate()`
548 - + builtin/repack.c: factor out "generated_pack_install"
549 - + builtin/repack.c: rename "struct generated_pack_data"
550 - + repack: remove 'existing_packs' API from the builtin
551 - + builtin/repack.c: avoid unnecessary numeric casts in existing_packs
552 - + builtin/repack.c: pass "packdir" when removing packs
553 - + repack: remove 'remove_redundant_pack' from the builtin
554 - + builtin/repack.c: rename many 'struct existing_packs' functions
555 - + repack: remove 'prepare_pack_objects' from the builtin
556 - + repack: move 'delta_base_offset' to 'struct pack_objects_args'
557 - + builtin/repack.c: pass both pack_objects args to repack_config
558 - + repack: introduce new compilation unit
559 - + builtin/repack.c: avoid using `hash_to_hex()` in pack geometry
560 - + builtin/repack.c: avoid "the_hash_algo" in `finish_pack_objects_cmd()`
561 - + builtin/repack: avoid "the_hash_algo" in `repack_promisor_objects()`
562 - + builtin/repack.c: avoid "the_hash_algo" in `write_oid()`
563 - + builtin/repack.c: avoid "the_hash_algo" when deleting packs
564 - + builtin/repack.c: avoid "the_repository" when repacking promisor objects
565 - + builtin/repack.c: avoid "the_repository" when removing packs
566 - + builtin/repack.c: avoid "the_repository" when taking a ref snapshot
567 - + builtin/repack.c: avoid "the_repository" in existing packs API
568 - + builtin/repack.c: avoid "the_repository" in `cmd_repack()`
569 - + Merge branch 'ps/packfile-store' into tb/incremental-midx-part-3.1
570 - (this branch is used by kn/refs-optim-cleanup, ps/maintenance-geometric, ps/packed-git-in-object-store, ps/ref-peeled-tags and ps/remove-packfile-store-get-packs.)
571 -
572 - Clean-up "git repack" machinery to prepare for incremental update
573 - of midx files.
574 -
575 - Will merge to 'master'.
576 - source: <cover.1760567210.git.me@ttaylorr.com>
577 -
578 -
598 * cc/doc-submitting-patches-with-ai (2025-10-01) 1 commit
599 (merged to 'next' on 2025-10-28 at 9b5e0701fa)
600 + SubmittingPatches: add section about AI
@@ -620,7 +639,7 @@ Release tarballs are available at:
639 source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de>
640
641
623 -* sa/replay-atomic-ref-updates (2025-10-22) 3 commits
642 +* sa/replay-atomic-ref-updates (2025-10-28) 3 commits
643 - replay: add replay.refAction config option
644 - replay: make atomic ref updates the default behavior
645 - replay: use die_for_incompatible_opt2() for option validation
@@ -630,9 +649,8 @@ Release tarballs are available at:
649 in a transaction by default, instead of emitting where each refs
650 should point at and leaving the actual update to another command.
651
633 - Expecting a (hopefully small and final) reroll.
634 - cf. <xmqqzf9encl1.fsf@gitster.g>
635 - source: <20251022185045.29256-1-siddharthasthana31@gmail.com>
652 + Reroll exists.
653 + source: <20251028214609.10041-1-siddharthasthana31@gmail.com>
654
655
656 * ar/submodule-gitdir-tweak (2025-10-06) 5 commits