{"thread":{"id":"66235","subject":"What's cooking in git.git (Aug 2026, #12)","startedAt":"2026-08-28T23:41:13Z","lastAt":"2026-08-31T19:31:14Z","messageCount":3,"participants":["Junio C Hamano","Toon Claes"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"551448","messageId":"xmqqy0dp24q1.fsf@gitster.g","threadId":"66235","inReplyTo":null,"subject":"What's cooking in git.git (Aug 2026, #12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-08-28T23:41:10Z","receivedAt":"2026-08-28T23:41:13Z","isPatch":false,"body":"Here are the topics that have been cooking in my tree.  Commits\nprefixed with '+' are in 'next' (being in 'next' is a sign that a\ntopic is stable enough to be used and is a candidate to be in a\nfuture release).  Commits prefixed with '-' are only in 'seen', and\naren't considered \"accepted\" at all.  They may be annotated with a URL\nto a message that raises issues but they are by no means exhaustive.\nA topic without enough support may be discarded after a long period\nof no activity (of course, it can be resubmitted when new interest\narises).\n\nThe 20th batch of topics have now graduated to the 'master' branch.\nWe have 567 non-merge commits in 'master' since Git 2.55.  There\nare 76 non-merge commits cooking in 'next' (note that some have\nbeen reverted), and 215 non-merge commits, including those in and\nout of 'next', in 'seen' as of this writing.\n\nCopies of the source code to Git live in many repositories, and the\nfollowing is a list of the ones I push into or their mirrors.  Some\nrepositories have only a subset of branches.\n\nWith maint, master, next, seen, todo:\n\n\tgit://git.kernel.org/pub/scm/git/git.git/\n\tgit://repo.or.cz/alt-git.git/\n\thttps://kernel.googlesource.com/pub/scm/git/git/\n\thttps://github.com/git/git/\n\thttps://gitlab.com/git-scm/git/\n\nWith all the integration branches and topics broken out:\n\n\thttps://github.com/gitster/git/\n\nEven though the preformatted documentation in HTML and man format\nare not sources, they are published in these repositories for\nconvenience (replace \"htmldocs\" with \"manpages\" for the manual\npages):\n\n\tgit://git.kernel.org/pub/scm/git/git-htmldocs.git/\n\thttps://github.com/gitster/git-htmldocs.git/\n\nRelease tarballs are available at:\n\n\thttps://www.kernel.org/pub/software/scm/git/\n\n--------------------------------------------------\n[Graduated to 'master']\n\n* kh/format-rev-doc-synopsis (2026-08-17) 2 commits\n  (merged to 'next' on 2026-08-20 at b9c47eddd0)\n + doc: format-rev: use [synopsis] on code block\n + doc: format-rev: quote subject placeholder before and after\n\n The documentation for 'git format-rev' has been updated to use the\n [synopsis] block definition on code blocks to properly highlight\n placeholders, and a quoting inconsistency in the running text has\n been fixed.\n\n Graduated to 'master'.\n cf. <xmqq33wc4dyq.fsf@gitster.g>\n source: <V4_CV_synopsis_block.b8e@msgid.xyz>\n\n\n* sk/object-name-use-after-free (2026-08-17) 1 commit\n  (merged to 'next' on 2026-08-20 at b0804dff5f)\n + object-name: avoid use-after-free in get_oid_with_context_1()\n\n A heap-use-after-free bug in the object name parsing code when\n reporting failures with a relative path to a sparse directory has\n been corrected.\n\n Graduated to 'master'.\n cf. <xmqq1pbw7nwi.fsf@gitster.g>\n source: <20260817082127.81132-1-diy2903@gmail.com>\n\n--------------------------------------------------\n[New Topics]\n\n* jc/die-for-incompatible-opts (2026-08-27) 1 commit\n - die_for_incompatible_opts(): unbounded number of options\n\n The die_for_incompatible_opt[234]() family of functions has been\n generalized to handle an arbitrary number of mutually exclusive\n options via a variadic function.\n\n Will merge to 'next'?\n source: <xmqqbjana2wv.fsf@gitster.g>\n\n\n* jc/you-still-use-that (2026-08-27) 1 commit\n - you_still_use_that(): reword the instructions\n\n The instructions for deprecated commands emitted by\n you_still_use_that() have been reworded to clarify that the removal\n decision is final and to provide more assertive guidance on finding\n a replacement.\n\n Will merge to 'next'?\n source: <xmqqse3z8m5g.fsf_-_@gitster.g>\n\n\n* ws/squelch-svn-migrate (2026-08-27) 2 commits\n - Makefile: add NO_GIT_SVN knob to skip building/installing git-svn\n - git-svn: don't print v1-layout migration noise when there's nothing to migrate\n\n Needs review.\n source: <20260827234345.1037130-1-wesleys@opperschaap.net>\n\n--------------------------------------------------\n[Stalled]\n\n* ec/commit-fixup-options (2026-05-26) 2 commits\n - commit: allow -c/-C for all kinds of --fixup\n - commit: allow -m/-F for all kinds of --fixup\n\n Support for '-m', '-F', '-c', or '-C' options to supply a commit log\n message from outside the editor has been added for all 'git commit\n --fixup' variations.\n\n Waiting for response, stalled.\n cf. <xmqq1pbkefh0.fsf@gitster.g>\n source: <cover.1779792311.git.erik@cervined.in>\n\n\n* ps/libgit-in-subdir (2026-07-12) 2 commits\n . Move libgit.a sources into separate \"lib/\" directory\n . t/helper: prepare \"test-example-tap.c\" for introduction of \"lib/\"\n . Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir\n\n The source files for 'libgit.a' have been moved into a new 'lib/'\n directory to clean up the top-level directory and clearly separate\n library code.  This topic has been ejected for now, as it causes too\n many evil merges with other topics.\n\n Waiting for response for too long, stalled.\n cf. <xmqqqzkx9t95.fsf@gitster.g>\n cf. <al6yCTDjBRn2HGq0@com-79390>\n cf. <xmqqqzk2t7sm.fsf@gitster.g>\n cf. <xmqq7blo4g7g.fsf@gitster.g>\n source: <20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im>\n\n\n* hs/rebase-continue-edit (2026-07-21) 1 commit\n - rebase: add --[no-]edit to --continue\n\n Support for skipping the editor when continuing a rebase after\n conflict resolution has been added with the '--no-edit' option, and\n forcing it with '--edit'.  A new configuration variable\n 'rebase.noEdit' can be used to set the default behavior.\n\n Waiting for response for too long, stalled.\n cf. <xmqqldb4xlqa.fsf@gitster.g>\n cf. <db7edc66-9b2a-47bc-98db-87d01885cef0@gmail.com>\n source: <20260721140443.1809379-2-hugo@hsal.es>\n\n\n* sn/rebase-update-refs-symrefs (2026-07-22) 2 commits\n - rebase: guard non-branch symref targets\n - rebase: skip branch symref aliases\n\n 'git rebase --update-refs' has been taught to resolve local branch\n symrefs to their referents before queuing updates, ensuring aliases of\n the current branch are skipped and duplicate updates are avoided to\n prevent failures when branch aliases are present.\n\n Waiting for response for too long, stalled.\n cf. <1eba5fb2-ab76-41e9-955d-e283256ad25d@gmail.com>\n cf. <98682fa4-55d9-4829-97f1-02e244b35266@gmail.com>\n source: <pull.2126.v3.git.1784708107.gitgitgadget@gmail.com>\n\n\n* tb/pack-with-duplicates (2026-07-24) 5 commits\n - pack-bitmap: handle duplicate pack entries during MIDX reuse\n - test-tool bitmap: reject packs with duplicate objects\n - midx: verify duplicate pack entries by OID and offset\n - packfile: recover delta cycles through duplicate entries\n - t5308: test reverse indexes with duplicate objects\n\n The handling of packfiles with duplicate object entries has been\n hardened.  Specifically, reverse index lookup, delta cycle\n recovery, multi-pack-index verification, and pack reuse paths have\n been updated to correctly handle or gracefully reject duplicate\n entries.\n\n Waiting for response for too long, stalled.\n cf. <xmqqecgs3vg6.fsf@gitster.g>\n source: <cover.1784927134.git.ttaylorr@openai.com>\n\n\n* tc/replay-linearize (2026-07-28) 3 commits\n - replay: offer an option to linearize the commit topology\n - replay: resolve the replay base outside pick_regular_commit()\n - replay: add helper to put entry into replayed_commits\n\n The 'git replay' command has been taught the '--linearize' option to\n drop merge commits and linearize the replayed history, mimicking 'git\n rebase --no-rebase-merges'.\n\n Waiting for response for too long, stalled.\n cf. <anYLeQj4Sx2vZqvy@denethor>\n cf. <CABPp-BEFGku8msiJCcXburV+tcersr6uqEumKaPh-TguA1LjSg@mail.gmail.com>\n source: <20260728-toon-git-replay-drop-merges-v8-0-ced11dffe749@iotcl.com>\n\n\n* cl/regexec-macos-leak (2026-07-28) 2 commits\n - SQUASH???\n - regexec: work around macOS TRE leak on invalid UTF-8\n\n A compatibility workaround has been introduced for macOS to address\n a memory leak in the system regex engine when it encounters invalid\n multibyte sequences.  The workaround segments the input buffer at\n invalid byte boundaries and searches each valid segment separately\n using regexec(), avoiding the leaking path.\n\n Waiting for response for too long, stalled.\n cf. <xmqqse52bpa9.fsf@gitster.g>\n cf. <anL7qL2-4h8ZlLcg@pks.im>\n source: <20260728052538.12429-1-chungmin@chungminlee.com>\n\n\n* cc/lazy-fetch-trusted-bit (2026-08-13) 5 commits\n - builtin/upload-pack: set GIT_NO_LAZY_FETCH to 0 on trusted repo\n - upload-pack: read uploadpack.lazyFetchTrusted\n - setup: add 'allow_dot' arg to path_allowlist_apply()\n - setup: extract path_allowlist_apply()\n - promisor-remote: factor out lazy_fetch_objects()\n\n A new 'uploadpack.lazyFetchTrusted' configuration variable has been\n introduced to allow 'upload-pack' to lazily fetch missing objects from\n configured promisor remotes when serving trusted repositories.\n\n Waiting for response for too long, stalled.\n cf. <xmqq1pc0mr5i.fsf@gitster.g>\n cf. <xmqqecg0oabe.fsf@gitster.g>\n cf. <xmqqy0e8mv0k.fsf@gitster.g>\n cf. <xmqqjypsoami.fsf@gitster.g>\n cf. <xmqq1pc0mr5i.fsf@gitster.g>\n source: <20260813154748.2378747-1-christian.couder@gmail.com>\n\n--------------------------------------------------\n[Cooking]\n\n* dw/config-read-both-global (2026-08-23) 3 commits\n - config: read global scope via config_sequence\n - config: let sequence require a successful file\n - path: use forward slashes in XDG config on Windows\n\n The git config --global read operations have been updated to respect\n both $HOME/.gitconfig and $XDG_CONFIG_HOME/git/config, fixing an\n inconsistency where only the former was read when both configuration\n files are present.\n\n Waiting for response.\n cf. <xmqqo6esti9o.fsf@gitster.g>\n cf. <xmqqecfkhify.fsf@gitster.g>\n cf. <xmqqy0dsg2vt.fsf@gitster.g>\n cf. <xmqqse40g22c.fsf@gitster.g>\n source: <20260823-fix-config-list-global-home-and-xdg-v2-0-b29cc63f017b@microsoft.com>\n\n\n* vv/branch-recurse-no-start-ref (2026-08-21) 2 commits\n - branch: allow recursion with no tracking name\n - branch: do not track a start point with no ref\n\n The --recurse-submodules option in 'git branch' has been fixed to\n avoid a crash when the start point is not a reference (e.g., a raw\n object ID).  The creation path now skips setting up tracking and\n properly forwards the absent tracking name to the submodule helper.\n\n Needs review.\n source: <20260822-vv-branch-recurse-no-start-ref-v1-0-46dc140acaa8@zitro.id>\n\n\n* kn/reftable-optimize-reloading (2026-08-24) 4 commits\n  (merged to 'next' on 2026-08-28 at d714ed570a)\n + reftable/stack: avoid reloading the stack when already locked\n + reftable/stack: move list lock to `struct reftable_stack`\n + reftable/stack: rename reftable_stack_new_addition()\n + reftable/stack: remove `REFTABLE_STACK_NEW_ADDITION_RELOAD`\n\n The reftable code has been optimized to avoid an unnecessary\n stat/reload of the stack when an addition already holds the\n list_file lock, reducing the number of newfstatat syscalls from\n linear to constant when writing refs.\n\n Will merge to 'master'.\n cf. <ao1uqpCxFHlOyTV-@pks.im>\n cf. <20260824225202.GA190620@coredump.intra.peff.net>\n source: <20260824-740-optimize-reloading-the-reftable-stack-v2-0-9c9de2eb0af7@gmail.com>\n\n\n* kh/format-patch-range-diff-notes (2026-08-24) 3 commits\n - format-patch: learn --[no-]range-diff-notes\n - revision.h: rename struct member to reflect notes role\n - format-patch: simplify get_notes_arg parameters\n\n The 'format-patch' command has been updated with options to\n configure notes specifically for range-diff output, allowing them to\n differ from the notes displayed on the patches themselves.\n\n Retracted.\n cf. <9335a35f-e9c0-4e62-812c-e5855c201003@app.fastmail.com>\n source: <CV_format-patch_learn_--range-diff-notes.c57@msgid.xyz>\n\n\n* jc/rerere-doc-typofix (2026-08-24) 1 commit\n  (merged to 'next' on 2026-08-25 at 62bdec98f9)\n + rerere: technical documentation typofix\n\n A missing preposition in the rerere technical documentation has been\n fixed.\n\n Will merge to 'master'.\n source: <xmqqtsojp4zf.fsf@gitster.g>\n\n\n* ps/odb-alternates-at-creation (2026-08-25) 8 commits\n - odb/source: remove the ability to write alternates\n - builtin/clone: write alternates via `odb_create_on_disk()`\n - odb/source: support writing alternates when creating the database\n - builtin/clone: move setup of alternates for non-shared local clones\n - builtin/clone: move setup of alternates for shared local clones\n - builtin/clone: refactor handling of \"--reference{,-if-able}\"\n - builtin/clone: move around `setup_reference()`\n - builtin/clone: defer setup of the object database\n - Merge branch 'ps/odb-eagerly-load-alternates' into ps/odb-alternates-at-creation\n (this branch uses ps/odb-eagerly-load-alternates.)\n\n The setup of alternates has been deferred to object database\n creation time during clone, which drops the unused ad-hoc alternate\n writing API, simplifying the object database backend interface.\n\n Waiting for response.\n cf. <874igeuwja.fsf@emacs.iotcl.com>\n cf. <8733vyuwid.fsf@emacs.iotcl.com>\n source: <20260825-pks-odb-write-alternates-at-creation-time-v1-0-911513ba95c3@pks.im>\n\n\n* ps/odb-pluggable-fsck (2026-08-25) 10 commits\n - builtin/fsck: move loose object verification into the loose source\n - builtin/fsck: move multi-pack index verification into the packed source\n - builtin/fsck: move bitmap verification into the packed source\n - builtin/fsck: move reverse index verification into the packed source\n - builtin/fsck: move packfile verification into the packed source\n - odb: provide infrastructure for pluggable fsck checks\n - builtin/fsck: don't check alternates with \"--no-full\"\n - builtin/fsck: de-globalize option handling\n - builtin/fsck: merge `fsck_obj_buffer()` and `fsck_obj()`\n - builtin/fsck: use `fsck_obj_buffer()` when checking loose objects\n - Merge branch 'ps/odb-eagerly-load-alternates' into ps/odb-pluggable-fsck\n - Merge branch 'ps/odb-pluggable-pack-generation' into ps/odb-pluggable-fsck\n (this branch uses ps/odb-eagerly-load-alternates and ps/odb-pluggable-pack-generation.)\n\n The consistency checks for the object database (fsck) have been\n decoupled from the generic builtin implementation and moved into the\n backend-specific object source layers, making them pluggable for\n different object storage formats.\n\n Waiting for response.\n cf. <CAOLa=ZRYSje476JJDr5b8hHozwa5=4bw4E30i3AfLX176=12ZA@mail.gmail.com>\n cf. <CAOLa=ZSmjfCD-5fPgJm4cbaKZOQa0S62wAf+vSxWFWLrrgczBA@mail.gmail.com>\n source: <20260825-pks-odb-source-fsck-v1-0-b756de0bf24f@pks.im>\n\n\n* rs/worktree-add-basename-fixes (2026-08-25) 4 commits\n - worktree add: let worktree_basename() return string copy\n - worktree add: trim slashes when deriving branch name from path\n - worktree add: reject separator-only path\n - worktree add: don't read out of bounds in worktree_basename()\n\n The string extraction logic for the branch name and worktree name\n from the given path in 'git worktree add' has been corrected and\n simplified to avoid out-of-bounds reads and improper handling of\n trailing slashes.\n\n Waiting for review.\n cf. <xmqq33w2m186.fsf@gitster.g>\n cf. <xmqqjypdj6g4.fsf@gitster.g>\n source: <20260825180350.2099-1-l.s.r@web.de>\n\n\n* en/no-amend-during-conflicts (2026-08-28) 5 commits\n - commit: refuse partial commits during conflict resolution\n - commit: refuse to amend during conflict resolution\n - commit: reword the empty-commit rebase amend error\n - commit: allow a partial commit when a rebase pick becomes empty\n - commit: clarify FROM_REBASE_PICK and is_from_rebase() names\n\n Teach 'am', 'revert', and 'rebase' that running 'commit --amend' or a\n partial 'commit <paths>' makes no sense during operations that stop\n and return control to the user to resolve conflicts left in the\n working tree, just like 'cherry-pick' and 'merge' do.\n\n Waiting for response.\n cf. <CABPp-BG0AmOgfT1CrS+hTo8sRBd4J1gT0_KN8TRBHSFo86hMvw@mail.gmail.com>\n cf. <xmqq33vy6ydu.fsf@gitster.g>\n cf. <xmqqy0dq5jpi.fsf@gitster.g>\n cf. <xmqqqzji5id2.fsf@gitster.g>\n source: <pull.2389.v3.git.git.1787903085.gitgitgadget@gmail.com>\n\n\n* as/utimensat-utimes (2026-08-21) 3 commits\n - compat/posix: drop legacy <utime.h> header and shims\n - treewide: use utimensat(2) instead of legacy utime(3p)\n - compat/posix: introduce utimensat(2) wrapper\n\n The codebase has been updated to use the newer utimensat() POSIX\n function instead of the obsolescent utime(), allowing\n high-precision timestamps while preserving fallback compatibility.\n\n Waiting for response.\n cf. <aonIVn-ZQoMKWCAd@fruit.crustytoothpaste.net>\n source: <pull.2209.git.1787322203.gitgitgadget@gmail.com>\n\n\n* ps/fetch-packfile-uris-parallel (2026-08-21) 2 commits\n - fetch-pack: allow parallelizing packfile URI fetches\n - fetch-pack: prepare for threaded fetching of packfile URIs\n\n The `git fetch` and `git clone` commands have been optimized to\n download packfile URIs in parallel when the new\n `fetch.packfileURIThreads` configuration is set, significantly\n speeding up fetches from servers that advertise multiple packfiles.\n\n Needs review.\n source: <20260821-pks-parallelize-fetching-packfile-uris-v1-0-0df52d9427ce@pks.im>\n\n\n* ps/odb-geometric-repack-loose-threshold (2026-08-11) 1 commit\n  (merged to 'next' on 2026-08-24 at f91738c4a4)\n + odb/files: be less aggressive with geometric repacking\n\n The threshold for geometric repacking to trigger based on loose\n object count has been adjusted to match that of 'git gc --auto',\n preventing over-aggressive repacking during concurrent writes.\n\n Will merge to 'master'.\n cf. <aoTcxJSmKWNhnjZ9@denethor>\n cf. <CABPp-BHgyVTHB_OGmCL4JprFFe6_MapOQNSjUOhJxu-+oWbErg@mail.gmail.com>\n source: <20260811-pks-geometric-maintenance-reduce-frequency-v1-1-7a54c42355ac@pks.im>\n\n\n* kn/receive-report-hook (2026-08-26) 3 commits\n - hook: introduce the receive-report hook\n - receive-pack: move message generation to separate function\n - doc: add proc-receive hook info in 'git-receive-pack.adoc'\n\n A new hook 'report' is added to 'git receive-pack', which runs after\n reference updates and allows the server to filter or modify the\n packet-line status report sent back to the client.\n\n Needs review.\n source: <20260826-758-introduce-hook-v4-0-6b14975ad957@gmail.com>\n\n\n* en/midx-missing-pack-fallback (2026-08-25) 4 commits\n - packfile: recover when a multi-pack-index names a removed pack\n - packfile: recover object lookups racing a concurrent repack\n - mktree: plug per-tree leak in --batch mode\n - replay: fail gracefully when a merge input is unreadable\n - Merge branch 'ps/odb-generic-corrupt-objects' into en/midx-missing-pack-fallback\n (this branch uses ps/odb-generic-corrupt-objects.)\n\n The object lookup machinery has been taught to gracefully recover\n when a multi-pack-index points to an owning pack that was removed\n during a concurrent geometric repack, and 'git replay' has been\n fixed to not segfault when reading such missing objects.\n\n Expecting a reroll.\n cf. <CABPp-BEmReAR-f-aweM=f=5QhRPxG1K-KLTsbyRt2aDQD_QnVA@mail.gmail.com>\n source: <pull.2207.v2.git.1787684429.gitgitgadget@gmail.com>\n\n\n* ll/zsh-complete-git-potty-options (2026-08-19) 1 commit\n - completion: zsh: support completion after \"git -C <path>\"\n\n The zsh completion script (in 'contrib/') has been updated to\n correctly locate the Git command after global options like '-C' by\n properly skipping them, similar to how the bash completion does.\n\n Will merge to 'next'?\n cf. <CALnO6CC35iuyJpKZtkEN7fGuGK7zKd_jbebyZdKSQ1pyfOBRZA@mail.gmail.com>\n cf. <xmqqld9sczd0.fsf@gitster.g>\n source: <pull.2155.v2.git.1787144872870.gitgitgadget@gmail.com>\n\n\n* ps/odb-generic-corrupt-objects (2026-08-19) 5 commits\n  (merged to 'next' on 2026-08-23 at fe72e268a1)\n + odb: handle `OBJECT_INFO_DIE_IF_CORRUPT` generically\n + odb/source: allow `read_object_info()` to bubble up error messages\n + odb/source: let callers discern missing and corrupt objects\n + odb/source: introduce error status when reading objects\n + odb/source-packed: flag known-bad objects as corrupt and not missing\n (this branch is used by en/midx-missing-pack-fallback.)\n\n The object database (odb) API has been refactored to distinguish\n between missing objects and corrupt ones by returning more\n descriptive error statuses.  Both the packed and loose backends now\n faithfully propagate error details using a generic strbuf error\n mechanism, removing backend-specific leakage from central lookup\n paths.\n\n Will merge to 'master'.\n cf. <CAOLa=ZTVxdVAJynKjb0LjmZ-+b5nQmyD0Bm-aT81rOOdJ0a5yg@mail.gmail.com>\n source: <20260819-pks-odb-generic-corrupt-objects-v2-0-a984e3a0ad6f@pks.im>\n\n\n* ap/http-preserve-wwwauth-redirect (2026-08-19) 1 commit\n - http: preserve wwwauth_headers across redirects\n\n When an HTTP request triggers a redirect and the target yields an\n authentication challenge, the WWW-Authenticate headers received\n during the redirect are now explicitly preserved across the\n credential URL update, fixing an issue where they were incorrectly\n cleared.\n\n Needs review.\n source: <20260819-http-preserve-wwwauth-redirect-v2-1-4c61039432b0@nvidia.com>\n\n\n* fr/pack-objects-trace-pack-bytes (2026-08-19) 1 commit\n  (merged to 'next' on 2026-08-24 at dcc6a34978)\n + pack-objects: trace pack bytes written\n\n The pack-objects command has been updated to record the total bytes\n written to pack files in trace2 output, allowing performance\n analysis of different compression settings by comparing the\n resulting pack sizes.\n\n Will merge to 'master'.\n cf. <aobFLJuiuM1EuNpv@pks.im>\n cf. <20260820082102.GA2973952@coredump.intra.peff.net>\n source: <c6a8cdac36d2202055d637ebcc97e484122cdcd4.1787158152.git.friel@openai.com>\n\n\n* kh/doc-datamodel (2026-08-23) 4 commits\n - doc: datamodel: link to the glossary\n - doc: glossary: link four of the terms to gitdatamodel(7)\n - doc: git: link to the gitdatamodel(7) tutorial\n - doc: git: list gitdatamodel(7) as a concept guide\n\n The gitdatamodel documentation page has been linked from a handful\n of key documentaiton pages.\n\n Needs review.\n source: <V2_CV_doc_datamodel_advertize.c20@msgid.xyz>\n\n\n* yn/worktree-repair-relative (2026-08-28) 1 commit\n - worktree repair: detect relative path in .git file correctly\n\n The git worktree repair command failed to rewrite the .git file of\n a working tree from a relative path to an absolute path when the\n command was run in the working tree itself. The\n read_gitfile_gently() function was modified to also return whether\n the path originally recorded in the file was absolute, and this new\n capability is used to correctly detect such mismatches.\n\n Will merge to 'next'?\n cf. <xmqqh5ke3zxt.fsf@gitster.g>\n source: <pull.2205.v4.git.1787930386252.gitgitgadget@gmail.com>\n\n\n* kh/format-rev-more-options (2026-08-18) 5 commits\n - format-rev: learn --abbrev, --color, and --date\n - doc: rev-list-options.adoc: factor out --date alts\n - format-rev: factor option variables into a struct\n - format-rev: place BUG calls first in callback\n - format-rev: use lower case for opts description\n\n The experimental 'git format-rev' has been taught a few more\n formatting options.\n\n Needs review.\n cf. <xmqqse40ei5f.fsf@gitster.g>\n source: <V2_CV_format-rev_three_more_opts.bd3@msgid.xyz>\n\n\n* ps/odb-pluggable-pack-generation (2026-08-20) 6 commits\n  (merged to 'next' on 2026-08-24 at 4d8acd97d0)\n + bundle: generate packfiles via the object database\n + bundle: get (mostly) rid of `the_repository`\n + builtin/bundle: refactor option handling for progress meter\n + send-pack: generate packfiles via the object database\n + upload-pack: generate packfiles via the object database\n + odb: introduce interface to generate packfiles\n (this branch is used by ps/odb-pluggable-fsck.)\n\n The mechanism to generate a packfile corresponding to the result of\n a fetch/push has been made pluggable through a set of object\n database callback functions, removing hardcoded references to\n 'pack-objects' and enabling alternative ODBs to serve packfiles\n themselves.\n\n Will merge to 'master'.\n cf. <CABPp-BHAeb5Q6kWw8e0fz9+avKyJL0_k7cUzRhesHScJjB3Xfw@mail.gmail.com>\n cf. <CAOLa=ZQMjb1SzYTVVuMF0ajmre_5_q=L6bmSQwYY233f-RiVXA@mail.gmail.com>\n source: <20260821-b4-pks-odb-generate-pack-v4-0-074e8bd641f8@pks.im>\n\n\n* ty/repository-fetch-if-missing (2026-08-14) 1 commit\n  (merged to 'next' on 2026-08-25 at 2cc77c1ca1)\n + repository: move fetch_if_missing into struct repository\n\n The global variable 'fetch_if_missing' has been moved to a member in\n 'struct repository', continuing the libification process and\n allowing per-repository control (such as for submodules).\n\n Will merge to 'master'.\n cf. <xmqqmrun8jeu.fsf@gitster.g>\n source: <20260815064747.2196896-1-cat@malon.dev>\n\n\n* ns/ref-symref-additional-tests (2026-08-20) 2 commits\n - t1402: test forbidden characters in refnames\n - t1401: check symbolic-ref failure and --quiet silence on a non-symbolic ref\n\n A few tests for the reference handling subsystem have been added to\n exercise the handling of forbidden characters and symbolic references.\n\n Needs review.\n source: <pull.2203.v2.git.1787264417682.gitgitgadget@gmail.com>\n source: <pull.2204.v3.git.1787763107646.gitgitgadget@gmail.com>\n\n\n* jt/receive-pack-pluggable-writes (2026-08-20) 9 commits\n  (merged to 'next' on 2026-08-24 at cf024e685d)\n + odb/transaction: add transaction interface to write packfiles\n + odb: return temporary ODB source when set\n + builtin/receive-pack: explicitly pass packfile fd\n + builtin/receive-pack: report unpack errors via strbuf\n + builtin/receive-pack: lift global state out of unpack()\n + builtin/receive-pack: read unpack limit config lazily\n + builtin/receive-pack: pass shallow file explicitly\n + odb/transaction: add transaction finalize interface\n + builtin/receive-pack: properly clean up keep files\n\n The 'git receive-pack' command has been updated to use a new ODB\n transaction interface for writing incoming packfiles, making it more\n backend-agnostic.\n\n Will merge to 'master'.\n cf. <aohD54ZQEyybw008@pks.im>\n cf. <xmqqo6evqzsu.fsf@gitster.g>\n source: <20260820234940.894624-1-jltobler@gmail.com>\n\n\n* ps/odb-eagerly-load-alternates (2026-08-17) 5 commits\n  (merged to 'next' on 2026-08-24 at a431cd5887)\n + odb: drop `alternates_db` field\n + odb: drop `loaded_alternates` field\n + odb: eagerly initialize alternates\n + odb: decouple source path comparisons from `the_repository`\n + setup: create ref and object databases after config is written\n + Merge branch 'ps/odb-make-creation-pluggable' into ps/odb-eagerly-load-alternates\n (this branch is used by ps/odb-alternates-at-creation and ps/odb-pluggable-fsck.)\n\n The object database layer has been simplified by eagerly loading\n alternate object directories upon initialization, instead of\n deferring it to the first object lookup.  This eliminates the need\n for scattered lazy-loading calls throughout the codebase and paves\n the way for integrating alternates with the pluggable backends.\n\n Will merge to 'master'.\n cf. <CAOLa=ZReodSXjEbQkFoxcofMLq6mUOjXANRg7bZ2uEKKQn=DXw@mail.gmail.com>\n cf. <xmqqik53qz5j.fsf@gitster.g>\n source: <20260817-pks-odb-eagerly-prepare-alternates-v3-0-1115a7e02467@pks.im>\n\n\n* gg/http-ssl-verify-status (2026-08-18) 1 commit\n - http: add http.sslVerifyStatus to check stapled OCSP responses\n\n The HTTP transport has been taught to check the revocation status of\n the server certificate using the stapled OCSP response during the\n TLS handshake via a new 'http.sslVerifyStatus' configuration\n variable.\n\n Waiting for review.\n cf. <CALgUfNjd_y-e-zTKJ31o8_bQuRw8wFWe=sdsf2KJ7LOmmO21aQ@mail.gmail.com>\n source: <20260818214858.65122-1-ggordon@gitlab.com>\n\n\n* ty/repo-config-cleanups (2026-08-07) 3 commits\n - environment: remove inaccurate repo_config_values comments\n - environment: clarify repository config getter documentation\n - environment: drop redundant NULL checks in config getters\n\n Repository configuration getters in 'environment.c' have been\n simplified by removing redundant NULL checks.  The documentation for\n these getters in 'environment.h' has been clarified, and inaccurate\n section comments inside 'struct repo_config_values' have been removed.\n\n Needs review.\n source: <20260807085932.3958759-1-cat@malon.dev>\n\n\n* vm/complete-history (2026-08-13) 4 commits\n  (merged to 'next' on 2026-08-24 at f6498b4afc)\n + completion: complete 'git history split' pathspecs\n + completion: complete 'git history --update-refs' values\n + completion: complete 'git history --empty' values\n + completion: add 'git history' subcommands\n\n The command line completion (in contrib/) has been taught to handle\n the experimental 'git history' command.\n\n Will merge to 'master'.\n cf. <aoWP3TYq5rNjUx7S@pks.im>\n cf. <xmqqse49uanx.fsf@gitster.g>\n source: <20260813-history_autocompletion-v3-0-69eed1cea93a@kernel.org>\n\n\n* dk/use-nsec-runtime (2026-08-20) 3 commits\n - core: convert build-time USE_NSEC into runtime core.useNanosec\n - environment: align repo_config_values_init with struct declaration\n - meson: expose knob for xmlto relative links in manuals\n\n The build-time knob 'USE_NSEC' for nanosecond stat precision has been\n converted to a runtime configuration 'core.useNanosec', allowing\n distributions to bundle one binary that adapts to filesystem\n capabilities dynamically.\n\n Expecting a (hopefully a small and final) reroll.\n cf. <xmqqa4qgsn20.fsf@gitster.g>\n cf. <aoaP7oIrR_Bpvx34@pks.im>\n cf. <CALnO6CC-=0X2r6USab=6MBG-yWYrwrA6zEXnDC91P8q4WDeY8Q@mail.gmail.com>\n source: <cover.1787231825.git.ben.knoble@gmail.com>\n\n\n* bc/restrict-hex-to-lowercase (2026-07-29) 6 commits\n - hex: allow only lowercase object IDs in breaking changes mode\n - object-name: use hexval\n - hex: label usages of hex parsing for object IDs\n - hex: make hex_to_bytes accept kind of hex to use\n - hex: allow specifying hex type with hex2chr\n - hex: add functionality for lowercase-only hex\n\n The parser for hex object names has been updated to reject uppercase\n hexadecimal characters when running in the breaking changes mode, in\n preparation for Git 3.0.\n\n Expecting a reroll.\n cf. <ao4MJQgp6Ai4tJxi@fruit.crustytoothpaste.net>\n cf. <ao4MqtDxZJaMEBBI@fruit.crustytoothpaste.net>\n source: <20260729233215.398654-1-sandals@crustytoothpaste.net>\n\n\n* js/mingw-build-updates (2026-08-12) 12 commits\n - mingw: allow `git.exe` to be used instead of the \"Git wrapper\"\n - mingw: ensure valid CTYPE\n - mingw: always define `ETC_*` for MSYS2 environments\n - windows: skip linking `git-<command>` for built-ins\n - mingw: rely on MSYS2's metadata instead of hard-coding it\n - mingw: only enable the MSYS2-specific stuff when compiling in MSYS2\n - mingw: set the prefix and HOST_CPU as per MSYS2's settings\n - mingw: avoid over-specifying `--pic-executable`\n - mingw: only use -Wl,--large-address-aware for 32-bit builds\n - mingw: drop the -D_USE_32BIT_TIME_T option\n - mingw: stop hard-coding `CC = gcc`\n - mingw: include the Python parts in the build\n\n A collection of patches from Git for Windows has been upstreamed,\n mostly focusing on simplifying and robustifying build configurations\n for MinGW/MSYS2, dropping obsolete compatibility options, and allowing\n the main 'git.exe' to be used directly without the extra wrapper\n process on Windows.\n\n Waiting for response.\n cf. <4f4129df-681f-4e99-8b1f-8bb96e206a2d@kdbg.org>\n source: <pull.2195.v2.git.1786521173.gitgitgadget@gmail.com>\n\n\n* yn/worktree-add-no-dwim-with-b (2026-08-20) 1 commit\n  (merged to 'next' on 2026-08-23 at 6e4bf24274)\n + worktree add: shouldn't dwim if -b or -B is given\n\n The DWIM logic in 'git worktree add' sometimes tried to infer a\n remote-tracking branch when an explicit '-b' or '-B' option was\n given to create a new branch, causing the explicit branch name to\n be ignored, which has been corrected.\n\n Will merge to 'master'.\n cf. <xmqqecfssnk0.fsf@gitster.g>\n source: <pull.2192.v4.git.1787221888406.gitgitgadget@gmail.com>\n\n\n* yn/worktree-ambiguous-remote-advice (2026-08-27) 4 commits\n - worktree add: treat multiple matches with --guess-remote as an error\n - worktree add: improve message for ambiguous remote branch name\n - checkout: improve message for ambiguous remote branch name\n - checkout: extract function to display advice for ambiguous remotes\n\n 'git worktree add' did not prevent DWIM behavior when '-b' or '-B' was\n specified, which has been corrected.\n\n Will merge to 'next'?\n cf. <xmqq4igfa2pv.fsf@gitster.g>\n source: <pull.2197.v10.git.1787841717.gitgitgadget@gmail.com>\n\n\n* hn/ci-cancel-stale-pr-runs (2026-07-31) 1 commit\n - ci: cancel stale pull request workflow runs\n\n GitHub Actions CI workflow runs triggered by pull requests have\n been configured to cancel older runs when a new push is made to the\n same pull request.\n\n Waiting for response.\n cf. <xmqqa4q8fyjh.fsf@gitster.g>\n source: <pull.2369.git.git.1785492641983.gitgitgadget@gmail.com>\n\n\n* kh/trailers-no-urls (2026-08-20) 1 commit\n  (merged to 'next' on 2026-08-24 at 11e10f8626)\n + trailers: stop recognizing URLs as trailers\n + Merge branch 'kh/doc-trailers' into kh/trailers-no-urls\n\n The trailer parsing machinery has been updated to avoid mistaking\n lines that begin with a URL (e.g., 'https://...') as trailer lines.\n This prevents intended textual URLs from being mangled or mistakenly\n treated as metadata keys.\n\n Will merge to 'master'.\n cf. <20260821004248.GA296777@coredump.intra.peff.net>\n cf. <xmqqecfrqxic.fsf@gitster.g>\n source: <V3_URLs_not_trailers.bfc@msgid.xyz>\n\n\n* hn/checkout-m-autostash-refine (2026-07-25) 2 commits\n - checkout -m: refine autostash fallback\n - sequencer: teach autostash apply to report conflicts\n\n The autostash fallback in 'git checkout -m' has been refined to only\n retry when there are local changes.  Additionally, a blank line now\n visually separates autostash conflict advice from the subsequent\n branch-switch message.\n\n Waiting for response.\n cf. <ec6c3986-94ab-4692-a4c2-47569b77e9ca@gmail.com>\n source: <pull.2364.git.git.1784993669.gitgitgadget@gmail.com>\n\n\n* kj/repo-info-more-path-keys (2026-08-25) 7 commits\n - repo: add path.cdup\n - repo: add path.git-prefix\n - repo: add path.grafts with absolute and relative suffixes\n - repo: add path.index with absolute and relative suffixes\n - repo: add path.hooks with absolute and relative suffixes\n - repo: add path.superproject-root with absolute and relative suffixes\n - repo: add path.toplevel with absolute and relative suffix formatting\n\n The 'git repo info' command has been taught more keys to output\n paths of various repository components (such as the working tree\n root, superproject working tree, object database, etc.), supporting\n both absolute and relative path formats.\n\n Needs review.\n source: <20260825175818.645579-1-jayatheerthkulkarni2005@gmail.com>\n\n\n* tc/last-modified-bloom (2026-08-07) 6 commits\n - last-modified: keep per-path Bloom filters for wildcard pathspecs\n - last-modified: check pathspec against Bloom filter first\n - revision: add Bloom check that includes parent directories\n - bloom: add helper to check if any key in a vector is present\n - revision: expose check for paths maybe changed in Bloom filter\n - revision: move bloom keyvec precondition into function\n\n The 'git last-modified' command has been optimized by using Bloom\n filters.  It now reuses revision walk filtering logic from 'git log'\n to pre-filter commits, and maintains per-path Bloom filters even when\n wildcard pathspecs are used.\n\n Waiting for response.\n cf. <xmqqtsp4a6c2.fsf@gitster.g>\n source: <20260807-toon-speed-up-last-modified-v2-0-7d87bbdeaf9b@iotcl.com>\n\n\n* ds/trace2-tolerate-failed-timestamp (2026-08-25) 7 commits\n - trace2: remove use of xcalloc()\n - trace2: remove use of ALLOC_GROW()\n - trace2: remove use of xstrfmt()\n - trace2: remove use of ALLOC_ARRAY()\n - trace2: remove use of xstrdup()\n - trace2: tolerate failed timestamp formatting\n - banned-die: create header for banning of functions\n\n The trace2 API has been updated to avoid calling 'die()' (by banning\n the use of certain functions like xcalloc and xstrfmt) to prevent\n unwanted process exits and recursion.\n\n Waiting for response.\n cf. <CABPp-BHxpt1UBTY5LCn9OFMZ6EtOcUPc-61RMWvjpjDBmv1rzg@mail.gmail.com>\n cf. <20260827052318.GC176544@coredump.intra.peff.net>\n source: <pull.2178.v2.git.1787684181.gitgitgadget@gmail.com>\n\n\n* pz/fetch-submodule-errors-config (2026-07-16) 2 commits\n - fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal\n - submodule: fix premature failure in recursive submodule fetch\n\n The 'git fetch' command can now configure how submodule fetch errors\n are handled via 'fetch.submoduleErrors' and '--submodule-errors',\n making them non-fatal.  A premature failure during recursive submodule\n fetches has been fixed by deferring the error until the OID-based\n retry phase fails.\n\n Needs review.\n source: <20260716140956.1023740-1-paulius.zaleckas@gmail.com>\n\n\n* gr/add-e-use-apply-api (2026-07-10) 1 commit\n - builtin/add.c: replace run_command() with direct apply_all_patches() call\n\n The application of the edited patch in 'git add -e' has been\n refactored to use the internal apply API directly, avoiding the need\n to spawn a 'git apply' subprocess.\n\n Will merge to 'next'?\n cf. <xmqq8q6to4em.fsf@gitster.g>\n cf. <xmqqbjaoiyzx.fsf@gitster.g>\n source: <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com>\n\n\n* fz/rebase-autosquash-empty (2026-08-27) 1 commit\n - sequencer: honor --empty when a fixup!/squash! empties its target\n\n A commit that is emptied by melding a 'fixup!' or 'squash!' commit\n during 'git rebase --autosquash' is now handled according to the\n '--empty' option, allowing it to be dropped, kept, or to halt the\n rebase.\n\n Needs review.\n source: <20260827-fz-autosquash-empty-v4-1-f98ffd575780@gmail.com>\n\n\n* mm/lib-httpd-cgi-safe (2026-08-12) 3 commits\n - t/lib-httpd: document writing concurrency-safe CGI helpers\n - t/lib-httpd: make http-429 first-request check atomic\n - t/lib-httpd: fix apply-one-time-script race under concurrent requests\n\n CGI helper scripts used by HTTP-related test scripts have been updated\n to use atomic filesystem operations, preventing race conditions when\n Apache handles concurrent requests.\n\n Needs review.\n source: <pull.2171.v3.git.1786583137.gitgitgadget@gmail.com>\n\n\n* ij/subtree-reject-v2-config (2026-07-06) 2 commits\n - git-subtree: Bail out if we find output from Rust rewrite (test)\n - git-subtree: Bail out if we find output from Rust rewrite\n\n The shell script implementation of 'git subtree' has been updated to\n check for the presence of the configuration file of the new Rust\n implementation, preventing users from accidentally running the old\n script on repositories already managed by the new tool.\n\n Expecting a reroll.\n cf. <27219.20156.438730.881821@chiark.greenend.org.uk>\n source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>\n\n\n* zy/apply-abandoned-header-fix (2026-07-01) 1 commit\n . apply: avoid leaking abandoned git-header state\n\n A candidate 'git diff' header parsed by 'git apply' has been isolated\n in a temporary structure, preventing any partially parsed state from\n polluting the main patch structure and causing assertions to trip if\n the header is ultimately rejected.\n\n Will discard.\n cf. <xmqqtsogei9d.fsf@gitster.g>\n source: <20260702041759.51572-1-zhihao.yao@njit.edu>\n\n\n* mm/line-log-limited-ops (2026-06-27) 7 commits\n - diffcore-pickaxe: scope -G to the -L tracked range\n - diff: support --check with -L line ranges\n - line-log: support diff stat formats with -L\n - diff: extract a line-range diff helper for reuse\n - diff: emit -L hunk headers via xdiff's formatter\n - diff: simplify the line-range filter by classifying removals immediately\n - diff: rename and group the line-range filter for clarity\n (this branch is used by mm/diff-process-hunks.)\n\n The 'git log -L<range>:<path>' command has been taught to limit\n various 'diff' operations, such as '--stat', '--check', and '-G', to\n the specified range and path.\n\n Needs review.\n source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>\n\n\n* hn/history-squash (2026-08-20) 8 commits\n - history: support editing squashed commit messages\n - history: create squashed commits without editing\n - history: protect branches when squashing a range\n - history: validate squash revision ranges\n - history: add skeleton for squash subcommand\n - sequencer: share the squash message marker helpers and flags\n - history: give commit_tree_ext a message template\n - history: extract helper for a commit's parent tree\n\n The experimental 'git history' command has been taught a new 'squash'\n subcommand to fold a range of commits into a single commit, with any\n descendants replayed on top.\n\n Waiting for response.\n cf. <xmqq4igov9h9.fsf@gitster.g>\n source: <pull.2337.v14.git.git.1787249432.gitgitgadget@gmail.com>\n\n\n* tb/midx-incremental-custom-base (2026-06-12) 3 commits\n - midx-write: include packs above custom incremental base\n - midx: pass custom '--base' through incremental writes\n - t5334: expose shared `nth_line()` helper\n\n The 'git multi-pack-index write --incremental' command has been\n corrected to properly honor the '--base' option.  Previously, the\n custom base was ignored by the normal write path; packs from layers\n above the selected base were incorrectly skipped by the pack exclusion\n logic, and reachability closure for bitmaps was broken.\n\n Waiting for review.\n cf. <an2FAWvyfX2LuGsG@pks.im>\n cf. <ao945zRwDt9ThFTG@com-79390>\n source: <cover.1781294771.git.me@ttaylorr.com>\n\n\n* mm/diff-process-hunks (2026-08-13) 11 commits\n - fixup! diff: consult oid-only hunk providers via diff.<driver>.process\n - diff: consult oid-only hunk providers via diff.<driver>.process\n - userdiff: add diff.<driver>.process config\n - sub-process: add a gentle status read\n - sub-process: separate process lifecycle from hashmap management\n - blame: read precomputed hunks\n - diff: read precomputed hunks for stat output\n - diff: record precomputed hunks during stat output\n - diff-hunks: add the store format, library, and command\n - diff: introduce a hunk provider interface\n - gitattributes: document how external diff drivers relate to diff features\n - Merge branch 'mm/line-log-limited-ops' into mm/diff-process-hunks\n (this branch uses mm/line-log-limited-ops.)\n\n A new 'diff.<driver>.process' configuration has been introduced to\n allow a long-running external process to act as a hunk provider,\n enabling external tools to control which lines Git considers changed\n while leaving all output formatting (word diff, color, blame, etc.) to\n Git's standard pipeline.\n\n Expecting a reroll.\n cf. <CAC2Qwm+kzT_3_GKrpay=JLGYsxS10oWCg2MJPHrCVogFHA0OdA@mail.gmail.com>\n source: <20260801174156.2998808-1-mmontalbo@gmail.com>\n"},{"id":"551571","messageId":"87wlt6wbxt.fsf@emacs.iotcl.com","threadId":"66235","inReplyTo":"xmqqy0dp24q1.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2026, #12)","fromName":"Toon Claes","fromEmail":"toon@iotcl.com","sentAt":"2026-08-31T15:23:58Z","receivedAt":"2026-08-31T15:24:07Z","isPatch":false,"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> * tc/replay-linearize (2026-07-28) 3 commits\n>  - replay: offer an option to linearize the commit topology\n>  - replay: resolve the replay base outside pick_regular_commit()\n>  - replay: add helper to put entry into replayed_commits\n>\n>  The 'git replay' command has been taught the '--linearize' option to\n>  drop merge commits and linearize the replayed history, mimicking 'git\n>  rebase --no-rebase-merges'.\n>\n>  Waiting for response for too long, stalled.\n>  cf. <anYLeQj4Sx2vZqvy@denethor>\n>  cf. <CABPp-BEFGku8msiJCcXburV+tcersr6uqEumKaPh-TguA1LjSg@mail.gmail.com>\n>  source: <20260728-toon-git-replay-drop-merges-v8-0-ced11dffe749@iotcl.com>\n\nSorry it took me some longer because I was on leave. I've sent out v9\njust now.\n\n> * tc/last-modified-bloom (2026-08-07) 6 commits\n>  - last-modified: keep per-path Bloom filters for wildcard pathspecs\n>  - last-modified: check pathspec against Bloom filter first\n>  - revision: add Bloom check that includes parent directories\n>  - bloom: add helper to check if any key in a vector is present\n>  - revision: expose check for paths maybe changed in Bloom filter\n>  - revision: move bloom keyvec precondition into function\n>\n>  The 'git last-modified' command has been optimized by using Bloom\n>  filters.  It now reuses revision walk filtering logic from 'git log'\n>  to pre-filter commits, and maintains per-path Bloom filters even when\n>  wildcard pathspecs are used.\n>\n>  Waiting for response.\n>  cf. <xmqqtsp4a6c2.fsf@gitster.g>\n>  source: <20260807-toon-speed-up-last-modified-v2-0-7d87bbdeaf9b@iotcl.com>\n\nRerolled v3.\n\n-- \nLaters,\nToon\n"},{"id":"551599","messageId":"xmqqy0dmulxb.fsf@gitster.g","threadId":"66235","inReplyTo":"87wlt6wbxt.fsf@emacs.iotcl.com","subject":"Re: What's cooking in git.git (Aug 2026, #12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-08-31T19:31:12Z","receivedAt":"2026-08-31T19:31:14Z","isPatch":false,"body":"Toon Claes <toon@iotcl.com> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> * tc/replay-linearize (2026-07-28) 3 commits\n> ...\n> Sorry it took me some longer because I was on leave. I've sent out v9\n> just now.\n>\n>> * tc/last-modified-bloom (2026-08-07) 6 commits\n> ...\n> Rerolled v3.\n\nThanks for both.  Queued and pushed out.\n"}]}