What's cooking (2025/11 #01)

todo
Junio C Hamano 2025-11-03 08:33:12 -08:00
parent 5962acfb4d
commit 7dad50d06a
1 changed files with 160 additions and 258 deletions

View File

@ -1,10 +1,10 @@
To: git@vger.kernel.org To: git@vger.kernel.org
Subject: What's cooking in git.git (Oct 2025, #12; Thu, 30) Subject: What's cooking in git.git (Nov 2025, #01; Mon, 3)
X-master-at: a99f379adf116d53eb11957af5bab5214915f91d X-master-at: 7f278e958afbf9b7e0727631b4c26dcfa1c63d6e
X-next-at: c1ab5b90caafe0e01395e0937868c10fd1c06ddf X-next-at: 8a68052cd46a8a443a1b8f0eb3beec2fb4a7eef9
Bcc: lwn@lwn.net, gitster@pobox.com Bcc: lwn@lwn.net, gitster@pobox.com


What's cooking in git.git (Oct 2025, #12; Thu, 30) What's cooking in git.git (Nov 2025, #01; Mon, 3)
-------------------------------------------------- --------------------------------------------------


Here are the topics that have been cooking in my tree. Commits Here are the topics that have been cooking in my tree. Commits
@ -17,6 +17,12 @@ topic without enough support may be discarded after a long period of
no activity (of course they can be resubmit when new interests no activity (of course they can be resubmit when new interests
arise). arise).


Git 2.52-rc0 has been tagged. Later this week we'd go into
pre-release freeze after tagging 2.52-rc1 and hopefully we can have
a reasonably solid Git 2.52 in the middle of this month. Until then
let's concentrate on finding and fixing regressions introduced
during this cycle, if any.

Copies of the source code to Git live in many repositories, and the Copies of the source code to Git live in many repositories, and the
following is a list of the ones I push into or their mirrors. Some following is a list of the ones I push into or their mirrors. Some
repositories have only a subset of branches. repositories have only a subset of branches.
@ -48,143 +54,120 @@ Release tarballs are available at:
-------------------------------------------------- --------------------------------------------------
[Graduated to 'master'] [Graduated to 'master']


* ey/commit-graph-changed-paths-config (2025-10-17) 1 commit * jk/diff-patch-dry-run-cleanup (2025-10-24) 6 commits
(merged to 'next' on 2025-10-23 at 48fd936ff1) (merged to 'next' on 2025-10-26 at 28426e9102)
+ commit-graph: add new config for changed-paths & recommend it in scalar + diff: simplify run_external_diff() quiet logic
+ diff: drop dry-run redirection to /dev/null
+ diff: replace diff_options.dry_run flag with NULL file
+ diff: drop save/restore of color_moved in dry-run mode
+ diff: send external diff output to diff_options.file
+ Merge branch 'ly/diff-name-only-with-diff-from-content' into jk/diff-patch-dry-run-cleanup


A new configuration variable commitGraph.changedPaths allows to Finishing touches to fixes to the recent regression in "git diff -w
turn "--changed-paths" on by default for "git commit-graph". --quiet" and anything that needs to internally generate patch to
source: <pull.1983.v2.git.1760734739642.gitgitgadget@gmail.com> see if it turns empty.
source: <20251024170522.GA2344972@coredump.intra.peff.net>




* kf/log-shortlog-completion-fix (2025-10-20) 1 commit * jk/match-pathname-fix (2025-10-26) 2 commits
(merged to 'next' on 2025-10-24 at 2300659a0a) (merged to 'next' on 2025-10-26 at f18b45f0df)
+ completion: complete some 'git log' options + match_pathname(): give fnmatch one char of prefix context
+ match_pathname(): reorder prefix-match check


"git shortlog" knows "--committer" and "--author" options, which The wildmatch code had a corner case bug that mistakenly makes
the command line completion (in contrib/) did not handle well, "foo**/bar" match with "foobar", which has been corrected.
which has been corrected. source: <20251026154036.GA2173430@coredump.intra.peff.net>
source: <pull.2073.v2.git.git.1760981577441.gitgitgadget@gmail.com>




* ly/diff-name-only-with-diff-from-content (2025-10-19) 3 commits * kh/doc-patch-id-1 (2025-10-13) 2 commits
(merged to 'next' on 2025-10-24 at 237c19e4e6) (merged to 'next' on 2025-10-26 at e284077116)
+ diff: stop output garbled message in dry run mode + doc: patch-id: convert to the modern synopsis style
+ Merge branch 'jc/diff-from-contents-fix' into ly/diff-name-only-with-diff-from-content + Merge branch 'kh/doc-patch-id-markup-fix' into kh/doc-patch-id-1
+ Merge branch 'jk/diff-from-contents-fix' into ly/diff-name-only-with-diff-from-content
(this branch is used by jk/diff-patch-dry-run-cleanup.)


Regression fixes for a topic that has already been merged. Will merge to 'master'.
source: <20251019163024.18939-1-yldhome2d2@gmail.com> source: <v2-38645ea253c.1760369708.git.code@khaugsbakk.name>




* ob/gpg-interface-cleanup (2025-10-23) 2 commits * ps/maintenance-geometric (2025-10-27) 12 commits
(merged to 'next' on 2025-10-24 at ce6d041635) (merged to 'next' on 2025-10-27 at 839fc31de9)
+ gpg-interface: do not use misdesigned strbuf_split*() + t7900: fix a flaky test due to git-repack always regenerating MIDX
+ gpg-interface: do not use misdesigned strbuf_split*() (merged to 'next' on 2025-10-26 at 505f26dcf7)
+ builtin/maintenance: introduce "geometric" strategy
+ builtin/maintenance: make "gc" strategy accessible
+ builtin/maintenance: extend "maintenance.strategy" to manual maintenance
+ builtin/maintenance: run maintenance tasks depending on type
+ builtin/maintenance: improve readability of strategies
+ builtin/maintenance: don't silently ignore invalid strategy
+ builtin/maintenance: make the geometric factor configurable
+ builtin/maintenance: introduce "geometric-repack" task
+ builtin/gc: make `too_many_loose_objects()` reusable without GC config
+ builtin/gc: remove global `repack` variable
+ Merge branch 'tb/incremental-midx-part-3.1' into ps/maintenance-geometric


strbuf_split*() to split a string into multiple strbufs is often a "git maintenance" command learns the "geometric" strategy where it
wrong API to use. A few uses of it have been removed by avoids doing maintenance tasks that rebuilds everything from
simplifying the code. scratch.
cf. <CAP8UFD1fousSKKduFAaZrsV9REnOaRDOQYcqB+rTQ0Ys60OWGA@mail.gmail.com> source: <20251024-pks-maintenance-geometric-strategy-v3-0-9b5b3bdb4387@pks.im>
source: <cover.1761217100.git.belkid98@gmail.com> source: <20251027-pks-maintenance-geometric-strategy-v4-0-18049e4a0adf@pks.im>




* ps/remove-packfile-store-get-packs (2025-10-09) 7 commits * rs/add-patch-quit (2025-10-24) 2 commits
(merged to 'next' on 2025-10-24 at e2f6fba6fe) (merged to 'next' on 2025-10-26 at 859e2555b2)
+ packfile: rename `packfile_store_get_all_packs()` + add-patch: quit on EOF
+ packfile: introduce macro to iterate through packs + add-patch: quit without skipping undecided hunks
+ packfile: drop `packfile_store_get_packs()`
+ builtin/grep: simplify how we preload packs
+ builtin/gc: convert to use `packfile_store_get_all_packs()`
+ object-name: convert to use `packfile_store_get_all_packs()`
+ Merge branch 'tb/incremental-midx-part-3.1' into ps/remove-packfile-store-get-packs
(this branch is used by ps/packed-git-in-object-store.)


Two slightly different ways to get at "all the packfiles" in API The 'q'(uit) command in "git add -p" has been improved to quit
has been cleaned up. without doing any meaningless work before leaving, and giving EOF
source: <20251009-pks-packfiles-convert-get-all-v2-0-0d73b87ce711@pks.im> (typically control-D) to the prompt is made to behave the same way.
source: <13529bee-1e02-4c20-9461-6569312bfe4f@web.de>




* ps/symlink-symref-deprecation (2025-10-14) 1 commit * rs/merge-base-optim (2025-10-24) 1 commit
(merged to 'next' on 2025-10-24 at b37ca35280) (merged to 'next' on 2025-10-26 at 45f9bd4b81)
+ refs/files: deprecate writing symrefs as symbolic links + commit-reach: avoid commit_list_insert_by_date()


"Symlink symref" has been added to the list of things that will The code to walk revision graph to compute merge base has been
disappear at Git 3.0 boundary. optimized.
source: <20251015-pks-ref-files-deprecate-symbolic-links-v2-1-0529ba48db41@pks.im> source: <87a00cb8-8faf-48ec-91aa-009e6e906363@web.de>


* rz/bisect-help-unknown (2025-10-22) 1 commit
(merged to 'next' on 2025-10-24 at d0633ab14d)
+ bisect: fix handling of `help` and invalid subcommands

"git bisect" command did not react correctly to "git bisect help"
and "git bisect unknown", which has been corrected.
source: <pull.2078.git.git.1761122173126.gitgitgadget@gmail.com>


* tb/incremental-midx-part-3.1 (2025-10-15) 50 commits
(merged to 'next' on 2025-10-22 at e78054f5a0)
+ builtin/repack.c: clean up unused `#include`s
+ repack: move `write_cruft_pack()` out of the builtin
+ repack: move `write_filtered_pack()` out of the builtin
+ repack: move `pack_kept_objects` to `struct pack_objects_args`
+ repack: move `finish_pack_objects_cmd()` out of the builtin
+ builtin/repack.c: pass `write_pack_opts` to `finish_pack_objects_cmd()`
+ repack: extract `write_pack_opts_is_local()`
+ repack: move `find_pack_prefix()` out of the builtin
+ builtin/repack.c: use `write_pack_opts` within `write_cruft_pack()`
+ builtin/repack.c: introduce `struct write_pack_opts`
+ repack: 'write_midx_included_packs' API from the builtin
+ builtin/repack.c: inline packs within `write_midx_included_packs()`
+ builtin/repack.c: pass `repack_write_midx_opts` to `midx_included_packs`
+ builtin/repack.c: inline `remove_redundant_bitmaps()`
+ builtin/repack.c: reorder `remove_redundant_bitmaps()`
+ repack: keep track of MIDX pack names using existing_packs
+ builtin/repack.c: use a string_list for 'midx_pack_names'
+ builtin/repack.c: extract opts struct for 'write_midx_included_packs()'
+ builtin/repack.c: remove ref snapshotting from builtin
+ repack: remove pack_geometry API from the builtin
+ builtin/repack.c: pass 'packdir' to `pack_geometry_remove_redundant()`
+ builtin/repack.c: pass 'pack_kept_objects' to `pack_geometry_init()`
+ builtin/repack.c: rename various pack_geometry functions
+ builtin/repack.c: remove "repack_promisor_objects()" from the builtin
+ builtin/repack.c: pass "packtmp" to `repack_promisor_objects()`
+ repack: remove 'generated_pack' API from the builtin
+ builtin/repack.c: provide pack locations to `generated_pack_install()`
+ builtin/repack.c: pass "packtmp" to `generated_pack_populate()`
+ builtin/repack.c: factor out "generated_pack_install"
+ builtin/repack.c: rename "struct generated_pack_data"
+ repack: remove 'existing_packs' API from the builtin
+ builtin/repack.c: avoid unnecessary numeric casts in existing_packs
+ builtin/repack.c: pass "packdir" when removing packs
+ repack: remove 'remove_redundant_pack' from the builtin
+ builtin/repack.c: rename many 'struct existing_packs' functions
+ repack: remove 'prepare_pack_objects' from the builtin
+ repack: move 'delta_base_offset' to 'struct pack_objects_args'
+ builtin/repack.c: pass both pack_objects args to repack_config
+ repack: introduce new compilation unit
+ builtin/repack.c: avoid using `hash_to_hex()` in pack geometry
+ builtin/repack.c: avoid "the_hash_algo" in `finish_pack_objects_cmd()`
+ builtin/repack: avoid "the_hash_algo" in `repack_promisor_objects()`
+ builtin/repack.c: avoid "the_hash_algo" in `write_oid()`
+ builtin/repack.c: avoid "the_hash_algo" when deleting packs
+ builtin/repack.c: avoid "the_repository" when repacking promisor objects
+ builtin/repack.c: avoid "the_repository" when removing packs
+ builtin/repack.c: avoid "the_repository" when taking a ref snapshot
+ builtin/repack.c: avoid "the_repository" in existing packs API
+ builtin/repack.c: avoid "the_repository" in `cmd_repack()`
+ Merge branch 'ps/packfile-store' into tb/incremental-midx-part-3.1
(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.)

Clean-up "git repack" machinery to prepare for incremental update
of midx files.
source: <cover.1760567210.git.me@ttaylorr.com>


-------------------------------------------------- --------------------------------------------------
[New Topics] [New Topics]


* tc/last-modified-active-paths-optimization (2025-10-23) 1 commit
(merged to 'next' on 2025-11-03 at 9ab444edfb)
+ last-modified: implement faster algorithm

"git last-modified" was optimized by narrowing the set of paths to
follow as it dug deeper in the history.

Will merge to 'master'.
source: <20251023-b4-toon-last-modified-faster-v3-1-40a4ddbbadec@iotcl.com>


* ps/object-source-loose (2025-10-30) 13 commits
- object-file: refactor writing objects via a stream
- object-file: rename `write_object_file()`
- object-file: refactor freshening of objects
- object-file: rename `has_loose_object()`
- object-file: read objects via the loose object source
- object-file: move loose object map into loose source
- object-file: hide internals when we need to reprepare loose sources
- object-file: move loose object cache into loose source
- object-file: introduce `struct odb_loose_source`
- object-file: move `fetch_if_missing`
- odb: adjust naming to free object sources
- odb: introduce `odb_source_new()`
- odb: fix subtle logic to check whether an alternate is usable

A part of code paths that deals with loose objects has been cleaned
up.

Will merge to 'next'?
source: <20251031-b4-pks-odb-loose-backend-v2-0-920f721aef71@pks.im>

--------------------------------------------------
[Cooking]

* kh/doc-checkout-markup-fix (2025-10-28) 1 commit * kh/doc-checkout-markup-fix (2025-10-28) 1 commit
(merged to 'next' on 2025-10-29 at f106c77f74) (merged to 'next' on 2025-10-29 at f106c77f74)
+ doc: git-checkout: fix placeholder markup + doc: git-checkout: fix placeholder markup
@ -196,12 +179,13 @@ Release tarballs are available at:




* rz/t0450-bisect-doc-update (2025-10-28) 1 commit * rz/t0450-bisect-doc-update (2025-10-28) 1 commit
- bisect: update usage and docs to match each other (merged to 'next' on 2025-10-31 at f563b543eb)
+ bisect: update usage and docs to match each other


The help text and manual page of "git bisect" command have been The help text and manual page of "git bisect" command have been
made consistent with each other. made consistent with each other.


Will merge to 'next'. Will merge to 'master'.
source: <pull.2084.git.git.1761690461697.gitgitgadget@gmail.com> source: <pull.2084.git.git.1761690461697.gitgitgadget@gmail.com>




@ -249,8 +233,6 @@ Release tarballs are available at:
Will merge to 'master'. Will merge to 'master'.
source: <20251029191031.GA1257596@coredump.intra.peff.net> source: <20251029191031.GA1257596@coredump.intra.peff.net>


--------------------------------------------------
[Cooking]


* qj/doc-my1stcontrib-email-verify (2025-10-27) 1 commit * qj/doc-my1stcontrib-email-verify (2025-10-27) 1 commit
(merged to 'next' on 2025-10-29 at 33f961f37a) (merged to 'next' on 2025-10-29 at 33f961f37a)
@ -286,15 +268,16 @@ Release tarballs are available at:




* cc/fast-import-export-i18n-cleanup (2025-10-30) 5 commits * cc/fast-import-export-i18n-cleanup (2025-10-30) 5 commits
- gpg-interface: mark a string for translation (merged to 'next' on 2025-11-03 at 41a35c3e52)
- fast-import: mark strings for translation + gpg-interface: mark a string for translation
- fast-export: mark strings for translation + fast-import: mark strings for translation
- gpg-interface: use left shift to define GPG_VERIFY_* + fast-export: mark strings for translation
- gpg-interface: simplify ssh fingerprint parsing + gpg-interface: use left shift to define GPG_VERIFY_*
+ gpg-interface: simplify ssh fingerprint parsing


Messages from fast-import/export are now marked for i18n. Messages from fast-import/export are now marked for i18n.


Will merge to 'next'? Will merge to 'master'.
source: <20251030123332.3337684-1-christian.couder@gmail.com> source: <20251030123332.3337684-1-christian.couder@gmail.com>




@ -309,20 +292,21 @@ Release tarballs are available at:




* ps/packed-git-in-object-store (2025-10-30) 9 commits * ps/packed-git-in-object-store (2025-10-30) 9 commits
- packfile: track packs via the MRU list exclusively (merged to 'next' on 2025-11-03 at 1eb3440abd)
- packfile: always add packfiles to MRU when adding a pack + packfile: track packs via the MRU list exclusively
- packfile: move list of packs into the packfile store + packfile: always add packfiles to MRU when adding a pack
- builtin/pack-objects: simplify logic to find kept or nonlocal objects + packfile: move list of packs into the packfile store
- packfile: fix approximation of object counts + builtin/pack-objects: simplify logic to find kept or nonlocal objects
- http: refactor subsystem to use `packfile_list`s + packfile: fix approximation of object counts
- packfile: move the MRU list into the packfile store + http: refactor subsystem to use `packfile_list`s
- packfile: use a `strmap` to store packs by name + packfile: move the MRU list into the packfile store
- Merge branch 'ps/remove-packfile-store-get-packs' into ps/packed-git-in-object-store + packfile: use a `strmap` to store packs by name
+ Merge branch 'ps/remove-packfile-store-get-packs' into ps/packed-git-in-object-store


The list of packfiles used in a running Git process is moved from The list of packfiles used in a running Git process is moved from
the object-database layer down to object-store layer. the packed_git structure into the packfile store.


Will merge to 'next'? Will merge to 'master'.
source: <20251030-pks-packfiles-store-drop-list-v2-0-84654f080cc0@pks.im> source: <20251030-pks-packfiles-store-drop-list-v2-0-84654f080cc0@pks.im>




@ -337,23 +321,6 @@ Release tarballs are available at:
source: <f67b3cbd-a117-a863-37ba-fbba7a2ca17a@mailbox.tu-dresden.de> source: <f67b3cbd-a117-a863-37ba-fbba7a2ca17a@mailbox.tu-dresden.de>




* jk/diff-patch-dry-run-cleanup (2025-10-24) 6 commits
(merged to 'next' on 2025-10-26 at 28426e9102)
+ diff: simplify run_external_diff() quiet logic
+ diff: drop dry-run redirection to /dev/null
+ diff: replace diff_options.dry_run flag with NULL file
+ diff: drop save/restore of color_moved in dry-run mode
+ diff: send external diff output to diff_options.file
+ Merge branch 'ly/diff-name-only-with-diff-from-content' into jk/diff-patch-dry-run-cleanup

Finishing touches to fixes to the recent regression in "git diff -w
--quiet" and anything that needs to internally generate patch to
see if it turns empty.

Will merge to 'master'.
source: <20251024170522.GA2344972@coredump.intra.peff.net>


* qj/doc-first-contrib-check-lore (2025-10-24) 1 commit * qj/doc-first-contrib-check-lore (2025-10-24) 1 commit
- MyFirstContribution: add tip to confirm patches reached the mailing list - MyFirstContribution: add tip to confirm patches reached the mailing list
(this branch uses ps/rust-cbindgen.) (this branch uses ps/rust-cbindgen.)
@ -364,30 +331,6 @@ Release tarballs are available at:
source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im> source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im>




* rs/merge-base-optim (2025-10-24) 1 commit
(merged to 'next' on 2025-10-26 at 45f9bd4b81)
+ commit-reach: avoid commit_list_insert_by_date()

The code to walk revision graph to compute merge base has been
optimized.

Will merge to 'master'.
source: <87a00cb8-8faf-48ec-91aa-009e6e906363@web.de>


* rs/add-patch-quit (2025-10-24) 2 commits
(merged to 'next' on 2025-10-26 at 859e2555b2)
+ add-patch: quit on EOF
+ add-patch: quit without skipping undecided hunks

The 'q'(uit) command in "git add -p" has been improved to quit
without doing any meaningless work before leaving, and giving EOF
(typically control-D) to the prompt is made to behave the same way.

Will merge to 'master'.
source: <13529bee-1e02-4c20-9461-6569312bfe4f@web.de>


* ps/rust-cbindgen (2025-10-24) 6 commits * ps/rust-cbindgen (2025-10-24) 6 commits
- rust: generate bindings via cbindgen - rust: generate bindings via cbindgen
- meson: rename Rust library target - meson: rename Rust library target
@ -405,28 +348,17 @@ Release tarballs are available at:
source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im> source: <20251024-b4-pks-rust-cbindgen-v2-0-4b4bd4f18490@pks.im>




* jk/match-pathname-fix (2025-10-26) 2 commits
(merged to 'next' on 2025-10-26 at f18b45f0df)
+ match_pathname(): give fnmatch one char of prefix context
+ match_pathname(): reorder prefix-match check

The wildmatch code had a corner case bug that mistakenly makes
"foo**/bar" match with "foobar", which has been corrected.

Will merge to 'master'.
source: <20251026154036.GA2173430@coredump.intra.peff.net>


* kn/refs-optim-cleanup (2025-10-20) 4 commits * kn/refs-optim-cleanup (2025-10-20) 4 commits
- t/pack-refs-tests: move the 'test_done' to callees (merged to 'next' on 2025-11-03 at 8c2d7a4413)
- refs: rename 'pack_refs_opts' to 'refs_optimize_opts' + t/pack-refs-tests: move the 'test_done' to callees
- refs: move to using the '.optimize' functions + refs: rename 'pack_refs_opts' to 'refs_optimize_opts'
- Merge branch 'ps/ref-peeled-tags' into kn/refs-optim-cleanup + refs: move to using the '.optimize' functions
+ Merge branch 'ps/ref-peeled-tags' into kn/refs-optim-cleanup
(this branch uses jt/repo-structure and ps/ref-peeled-tags.) (this branch uses jt/repo-structure and ps/ref-peeled-tags.)


Code clean-up. Code clean-up.


Will merge to 'next' after base topics are merged. Will merge to 'master'.
source: <20251020-refs-code-cleanup-v2-0-f5349ed0f6a5@gmail.com> source: <20251020-refs-code-cleanup-v2-0-f5349ed0f6a5@gmail.com>




@ -436,7 +368,8 @@ Release tarballs are available at:


"git repo info" learned "--all" option. "git repo info" learned "--all" option.


Will merge to 'next'? Expecting a (hopefully small and final) reroll.
cf. <xmqqpla43wcp.fsf@gitster.g> <aQRaRuBtt_r7SamL@pks.im>
source: <20251026225409.46647-1-lucasseikioshiro@gmail.com> source: <20251026225409.46647-1-lucasseikioshiro@gmail.com>




@ -459,31 +392,6 @@ Release tarballs are available at:
source: <20251021182601.2687284-1-jltobler@gmail.com> source: <20251021182601.2687284-1-jltobler@gmail.com>




* ps/maintenance-geometric (2025-10-27) 12 commits
(merged to 'next' on 2025-10-27 at 839fc31de9)
+ t7900: fix a flaky test due to git-repack always regenerating MIDX
(merged to 'next' on 2025-10-26 at 505f26dcf7)
+ builtin/maintenance: introduce "geometric" strategy
+ builtin/maintenance: make "gc" strategy accessible
+ builtin/maintenance: extend "maintenance.strategy" to manual maintenance
+ builtin/maintenance: run maintenance tasks depending on type
+ builtin/maintenance: improve readability of strategies
+ builtin/maintenance: don't silently ignore invalid strategy
+ builtin/maintenance: make the geometric factor configurable
+ builtin/maintenance: introduce "geometric-repack" task
+ builtin/gc: make `too_many_loose_objects()` reusable without GC config
+ builtin/gc: remove global `repack` variable
+ Merge branch 'tb/incremental-midx-part-3.1' into ps/maintenance-geometric

"git maintenance" command learns the "geometric" strategy where it
avoids doing maintenance tasks that rebuilds everything from
scratch.

Will merge to 'master'.
source: <20251024-pks-maintenance-geometric-strategy-v3-0-9b5b3bdb4387@pks.im>
source: <20251027-pks-maintenance-geometric-strategy-v4-0-18049e4a0adf@pks.im>


* en/xdiff-cleanup-2 (2025-10-29) 10 commits * en/xdiff-cleanup-2 (2025-10-29) 10 commits
- xdiff: rename rindex -> reference_index - xdiff: rename rindex -> reference_index
- xdiff: change rindex from long to size_t in xdfile_t - xdiff: change rindex from long to size_t in xdfile_t
@ -534,15 +442,6 @@ Release tarballs are available at:
source: <pull.1991.git.1760731558.gitgitgadget@gmail.com> source: <pull.1991.git.1760731558.gitgitgadget@gmail.com>




* kh/doc-patch-id-1 (2025-10-13) 2 commits
(merged to 'next' on 2025-10-26 at e284077116)
+ doc: patch-id: convert to the modern synopsis style
+ Merge branch 'kh/doc-patch-id-markup-fix' into kh/doc-patch-id-1

Will merge to 'master'.
source: <v2-38645ea253c.1760369708.git.code@khaugsbakk.name>


* tz/test-prepare-gnupghome (2024-07-03) 2 commits * tz/test-prepare-gnupghome (2024-07-03) 2 commits
(merged to 'next' on 2025-10-28 at f612107bf9) (merged to 'next' on 2025-10-28 at f612107bf9)
+ t/lib-gpg: call prepare_gnupghome() in GPG2 prereq + t/lib-gpg: call prepare_gnupghome() in GPG2 prereq
@ -560,39 +459,42 @@ Release tarballs are available at:




* ps/ref-peeled-tags (2025-10-23) 16 commits * ps/ref-peeled-tags (2025-10-23) 16 commits
- ref-filter: parse objects on demand (merged to 'next' on 2025-11-03 at 8ac48a10de)
- ref-filter: detect broken tags when dereferencing them + ref-filter: parse objects on demand
- refs: don't store peeled object IDs for invalid tags + ref-filter: detect broken tags when dereferencing them
- object: add flag to `peel_object()` to verify object type + refs: don't store peeled object IDs for invalid tags
- refs: drop infrastructure to peel via iterators + object: add flag to `peel_object()` to verify object type
- refs: drop `current_ref_iter` hack + refs: drop infrastructure to peel via iterators
- builtin/show-ref: convert to use `reference_get_peeled_oid()` + refs: drop `current_ref_iter` hack
- ref-filter: propagate peeled object ID + builtin/show-ref: convert to use `reference_get_peeled_oid()`
- upload-pack: convert to use `reference_get_peeled_oid()` + ref-filter: propagate peeled object ID
- refs: expose peeled object ID via the iterator + upload-pack: convert to use `reference_get_peeled_oid()`
- refs: refactor reference status flags + refs: expose peeled object ID via the iterator
- refs: fully reset `struct ref_iterator::ref` on iteration + refs: refactor reference status flags
- refs: introduce `.ref` field for the base iterator + refs: fully reset `struct ref_iterator::ref` on iteration
- refs: introduce wrapper struct for `each_ref_fn` + refs: introduce `.ref` field for the base iterator
- Merge branch 'jt/repo-structure' into ps/ref-peeled-tags + refs: introduce wrapper struct for `each_ref_fn`
- Merge branch 'tb/incremental-midx-part-3.1' into ps/ref-peeled-tags + Merge branch 'jt/repo-structure' into ps/ref-peeled-tags
+ Merge branch 'tb/incremental-midx-part-3.1' into ps/ref-peeled-tags
(this branch is used by kn/refs-optim-cleanup; uses jt/repo-structure.) (this branch is used by kn/refs-optim-cleanup; uses jt/repo-structure.)


Some ref backend storage can hold not just the object name of an Some ref backend storage can hold not just the object name of an
annotated tag, but the object name of the object the tag points at. annotated tag, but the object name of the object the tag points at.
The code to handle this information has been streamlined. The code to handle this information has been streamlined.


Will merge to 'next' after base topics are merged. Will merge to 'master'.
source: <20251023-b4-pks-ref-filter-skip-parsing-objects-v4-0-2be68ce82c9a@pks.im> source: <20251023-b4-pks-ref-filter-skip-parsing-objects-v4-0-2be68ce82c9a@pks.im>




* je/doc-data-model (2025-10-27) 1 commit * je/doc-data-model (2025-10-31) 2 commits
- SQUASH??? fix xml that does not validate
- doc: add an explanation of Git's data model - doc: add an explanation of Git's data model


Add a new manual that describes the data model. Add a new manual that describes the data model.


Comments? Expecting a (hopefully small and final) reroll?
source: <pull.1981.v4.git.1761593537924.gitgitgadget@gmail.com> cf. <aQhcZwv0PdwNc6RW@pks.im>
source: <pull.1981.v5.git.1761856336360.gitgitgadget@gmail.com>




* cc/doc-submitting-patches-with-ai (2025-10-01) 1 commit * cc/doc-submitting-patches-with-ai (2025-10-01) 1 commit
@ -639,7 +541,7 @@ Release tarballs are available at:
source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de> source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de>




* sa/replay-atomic-ref-updates (2025-10-28) 3 commits * sa/replay-atomic-ref-updates (2025-10-30) 3 commits
- replay: add replay.refAction config option - replay: add replay.refAction config option
- replay: make atomic ref updates the default behavior - replay: make atomic ref updates the default behavior
- replay: use die_for_incompatible_opt2() for option validation - replay: use die_for_incompatible_opt2() for option validation
@ -649,8 +551,8 @@ Release tarballs are available at:
in a transaction by default, instead of emitting where each refs in a transaction by default, instead of emitting where each refs
should point at and leaving the actual update to another command. should point at and leaving the actual update to another command.


Reroll exists. Will merge to 'next'?
source: <20251028214609.10041-1-siddharthasthana31@gmail.com> source: <20251030191931.30837-1-siddharthasthana31@gmail.com>




* ar/submodule-gitdir-tweak (2025-10-06) 5 commits * ar/submodule-gitdir-tweak (2025-10-06) 5 commits