@leroysheep / LeeRoySheep / commits / 3184592402

What's cooking (2026/08 #01)

Junio C Hamano committed Aug 3, 2026 at 10:12 UTC 31845924025950bbe110bcd34e9841f3b4147b95
1 file changed +476 -564
whats-cooking.txt
+476 -564
index 74c2217250..9a99791efe 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org -Subject: What's cooking in git.git (Jul 2026, #13) -X-master-at: 13c7afec212fc97ce257d15601659314c6673d6c -X-next-at: 250fe7f19410a4727d35b49738074248c2348aa6 +Subject: What's cooking in git.git (Aug 2026, #01) +X-master-at: 5b2471720c93ee30e5764a19f3d3b3ae9ec9712a +X-next-at: 6767b8d81c83adffcd5ce7f852af5e071b7b07f7 Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Jul 2026, #13) +What's cooking in git.git (Aug 2026, #01) ----------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -17,7 +17,7 @@ A topic without enough support may be discarded after a long period of no activity (of course, it can be resubmitted when new interest arises). -The 8th batch of topics have now graduated to the 'master' branch. +The 10th batch of topics have now graduated to the 'master' branch. 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 @@ -48,308 +48,323 @@ Release tarballs are available at: https://www.kernel.org/pub/software/scm/git/ -------------------------------------------------- -[Graduated to 'master'] +[New Topics] -* bc/rust-hash-cleanups (2026-07-18) 2 commits - (merged to 'next' on 2026-07-21 at 51627468a0) - + rust: discard hash context when finished - + hash: initialize context before cloning +* hn/ci-cancel-stale-pr-runs (2026-07-31) 1 commit + - ci: cancel stale pull request workflow runs - A few memory problems in the Rust interface to C hash functions have - been corrected. The 'Clone' implementation of 'CryptoHasher' now - properly initializes the context before cloning, and its 'Drop' - implementation now discards the context to prevent leaks. + GitHub Actions CI workflow runs triggered by pull requests have + been configured to cancel older runs when a new push is made to the + same pull request. - Graduated to 'master'. - cf. <20260719080754.GA429688@coredump.intra.peff.net> - source: <20260719010842.17991-1-sandals@crustytoothpaste.net> + Needs review. + source: <pull.2369.git.git.1785492641983.gitgitgadget@gmail.com> -* jc/submodule-helper-avoid-zu (2026-07-15) 1 commit - (merged to 'next' on 2026-07-19 at b12d5d76f5) - + submodule--helper: avoid use of %zu for now +* kh/doc-refs-migrate-limitations (2026-07-31) 2 commits + - doc: refs: linkgit to git-maintenance(1) + - doc: refs: put ref migration warning under the command - An accidental use of the '%zu' format specifier in 'git - submodule--helper' has been corrected to use 'PRIuMAX' and cast the - value to 'uintmax_t' to avoid portability issues. + The known limitations of the ref format migration in 'git refs' have + been moved to be displayed as a caution admonition directly under the + description of the 'migrate' subcommand, improving visibility. A + reference to 'git-maintenance' has also been corrected to use the + 'linkgit' macro. - Graduated to 'master'. - source: <xmqq4ii0ko9t.fsf@gitster.g> + Will merge to 'next'? + cf. <xmqqbjbncdv5.fsf@gitster.g> + source: <CV_git_ref_migration_warning.b09@msgid.xyz> -* ps/copy-wo-the-repository (2026-07-16) 1 commit - (merged to 'next' on 2026-07-20 at 9e38da0efc) - + copy: drop dependency on `the_repository` +* jc/complete-diff-tracked-paths (2026-08-02) 1 commit + - completion: complete tracked paths for git diff - The copy_file() and copy_file_with_time() functions have been - refactored to take a repository parameter, allowing the removal of the - implicit dependency on the global 'the_repository' variable in - 'copy.c'. + "git -C <dir> diff fi<TAB>" did not complete dir/file, which has + been corrected. - Graduated to 'master'. - cf. <b0df688a-3b26-48f6-8b1c-98530483885e@gmail.com> - cf. <xmqqo6g54k7m.fsf@gitster.g> - source: <20260716-pks-copy-wo-the-repository-v2-1-8f5e32942929@pks.im> - - -* ps/refs-wo-the-repository (2026-07-15) 7 commits - (merged to 'next' on 2026-07-19 at 12685f410c) - + refs: remove remaining uses of `the_repository` - + worktree: pass repository to public functions - + worktree: pass repository to file-local functions - + worktree: refactor code to use available repositories - + refs/files: drop `USE_THE_REPOSITORY_VARIABLE` - + refs/packed: de-globalize handling of "core.packedRefsTimeout" - + Merge branch 'ps/refs-writing-subcommands' into ps/refs-wo-the-repository - - The ref subsystem and the worktree API have been refactored to pass a - repository pointer down the call chain, allowing them to drop - references to the global 'the_repository' variable. As part of this, - the handling of the 'core.packedRefsTimeout' configuration has been - moved into the per-repository ref store structure. + Will merge to 'next'? + cf. <anAqfqcEueSKmAH+@szeder.dev> + cf. <xmqqpkzzyzq4.fsf@gitster.g> + source: <xmqqcxw010me.fsf@gitster.g> - Graduated to 'master'. - source: <20260716-pks-refs-wo-the-repository-v3-0-db0a804e0224@pks.im> +* kh/trailers-no-urls (2026-08-02) 2 commits + - trailers: stop recognizing URLs as trailers + - Merge branch 'kh/doc-trailers' into kh/trailers-no-urls + (this branch uses kh/doc-trailers.) -* ps/refspec-wo-the-repository (2026-07-16) 3 commits - (merged to 'next' on 2026-07-20 at 31044c3fc9) - + refspec: stop depending on `the_repository` - + refspec: let callers pass in hash algorithm when parsing items - + refspec: group related structures and functions + The trailers code has been taught to avoid mistaking a line that has + <token>:// at the beginning as a trailer line. - The dependency on the global 'the_repository' variable in the - 'refspec.c' API has been removed by passing the hash algorithm - explicitly to refspec-parsing functions and storing it in 'struct - refspec'. + Will merge to 'next'? + cf. <20260803152025.GA189075@coredump.intra.peff.net> + cf. <xmqqmrv42lrg.fsf@gitster.g> + cf. <xmqqtspbz00x.fsf@gitster.g> + source: <URLs_not_trailers.b13@msgid.xyz> - Graduated to 'master'. - source: <20260716-pks-refspec-wo-the-repository-v1-0-aa40844d067f@pks.im> +* kl/t7528-ssh-agent-for-csh-users (2026-08-02) 1 commit + - t7528: fix failure under csh -* ps/shift-root-in-graph (2026-07-14) 7 commits - (merged to 'next' on 2026-07-19 at bebf13a239) - + graph: add --[no-]graph-indent and log.graphIndent - + graph: move config reading into graph_read_config() - + graph: wrap cascading commits after 4 columns - + graph: indent visual root in graph - + graph: add a 2 commit buffer for lookahead - + revision: add next_commit_to_show() - + lib-log-graph: move check_graph function + The 'ssh-agent' tests in 't7528' have been fixed to work when the + user's login shell is csh-like, by explicitly passing '-s' to + 'ssh-agent' to force Bourne shell syntax. - 'git log --graph' has been modified to visually distinguish parentless - 'root' commits (and commits that become roots due to history - simplification) by indenting them, preventing them from appearing - falsely related to unrelated commits rendered immediately above them. + Will merge to 'next'? + cf. <am_5YymI-UnCT_s1@fruit.crustytoothpaste.net> + cf. <xmqqy0enz2o4.fsf@gitster.g> + source: <20260803004105.36913-2-keni@his.com> - Graduated to 'master'. - cf. <CA+J6zkQNzEAhhY74qDrOwfFVrshEF7YFxWRRkwE3ttJo15ZbAg@mail.gmail.com> - source: <20260714-ps-pre-commit-indent-v12-0-d50938e006df@gmail.com> - - -* pw/rebase-drop-notes-with-commit (2026-07-15) 9 commits - (merged to 'next' on 2026-07-20 at 5475c9f935) - + sequencer: do not record dropped commits as rewritten - + sequencer: use an enum to represent result of picking a commit - + sequencer: simplify pick_one_commit() - + sequencer: remove unnecessary condition in pick_one_commit() - + sequencer: simplify handling of fixup with conflicts - + sequencer: remove unnecessary "or" in pick_one_commit() - + sequencer: never reschedule on failed commit - + sequencer: be more careful with external merge - + t3400: restore coverage for note copying with apply backend - - The rebase post-rewrite notes-copying logic has been corrected. When - a commit is dropped during rebase (e.g., because its changes are - already upstream), it is no longer recorded as rewritten, preventing - its notes from being copied to an unrelated commit. +-------------------------------------------------- +[Graduated to 'master'] + +* af/clone-revision-v0-segfault-fix (2026-07-24) 1 commit + (merged to 'next' on 2026-07-27 at 57c0e98bfb) + + builtin/clone: fix segfault when using --revision with protocol v0 + + A segfault when 'git clone --revision' talks to a server that does not + support protocol v2 (falling back to protocol v0) has been corrected. Graduated to 'master'. - cf. <xmqqy0f5d25g.fsf@gitster.g> - source: <cover.1784128921.git.phillip.wood@dunelm.org.uk> + cf. <xmqqldb08jcd.fsf@gitster.g> + source: <20260724124138.666877-1-adrian.friedli@mt.com> -* rs/remote-curl-simplify-push-specs (2026-07-14) 1 commit - (merged to 'next' on 2026-07-19 at ff1b5528ba) - + remote-curl: simplify passing of push specs +* en/submodule-insteadof-remote-match (2026-07-22) 1 commit + (merged to 'next' on 2026-07-27 at a1cbd7aa11) + + submodule: resolve insteadOf aliases when matching remote - The passing of push destination specifications in the 'remote-curl' - helper has been simplified by removing the explicit 'count' parameter - and relying on the NULL-termination of the array. + The remote-matching logic for submodules has been corrected to resolve + 'url.*.insteadOf' aliases before comparing the inventoried URL from + '.gitmodules' with the URLs of configured remotes. Graduated to 'master'. - source: <935883f3-3be4-4c51-9711-5208b9ef9ca1@web.de> + cf. <xmqqldb05dlo.fsf@gitster.g> + source: <20260723002132.3989727-1-ccjmne@gmail.com> -* sc/wt-status-avoid-quadratic-insertion (2026-07-18) 1 commit - (merged to 'next' on 2026-07-20 at 9330d42a4a) - + wt-status: avoid repeated insertion for untracked paths +* hn/url-push-tracking (2026-07-22) 2 commits + (merged to 'next' on 2026-07-25 at 9b776656fc) + + remote: find tracking branches for URL push destinations + + remote: pass repository to push tracking helper - The enumeration of untracked and ignored files in 'git status' has - been optimized by avoiding quadratic complexity when inserting into - string lists, reducing the construction cost from O(n^2) to O(n log - n). + When the push remote is specified as a URL, the fetch refspec of a + uniquely matching configured remote is now used to find and update + the remote-tracking branch (e.g., '@{push}'). Graduated to 'master'. - cf. <20260718083828.GE22588@coredump.intra.peff.net> - source: <20260718081449.26747-1-sahityajb@gmail.com> + cf. <xmqqpl0eoniz.fsf@gitster.g> + source: <pull.2358.v4.git.git.1784743738.gitgitgadget@gmail.com> -* td/ref-filter-memoize-contains (2026-06-12) 3 commits - (merged to 'next' on 2026-07-19 at 5b640e33a1) - + commit-reach: die on contains walk errors - + ref-filter: memoize --contains with generations - + commit-reach: reject cycles in contains walk +* jc/exclude-first-parent-seen (2026-07-22) 1 commit + (merged to 'next' on 2026-07-25 at 85755d1d45) + + revision: honor --exclude-first-parent-only with SEEN first parent - 'git branch --contains' and 'git for-each-ref --contains' have been - optimized to use the memoized commit traversal previously used only by - 'git tag --contains', significantly speeding up connectivity checks - across many candidate refs with shared history. + Traversals with '--exclude-first-parent-only' have been corrected + to properly stop after the first parent even when it has already + been marked as 'SEEN'. Graduated to 'master'. - cf. <20260716091924.GB1212956@coredump.intra.peff.net> - source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com> + source: <xmqqbjbzq7n2.fsf@gitster.g> --------------------------------------------------- -[New Topics] -* sk/test-commit-body-helper (2026-07-27) 2 commits - - t: use commit_body to extract commit message bodies - - test-lib-functions: add commit_body helper +* jc/remote-insteadof-leakfix (2026-07-25) 1 commit + (merged to 'next' on 2026-07-27 at 8cf88af88b) + + remote: plug memory leaks - A new test helper commit_body() has been introduced to print the - message body of a commit, and various tests have been updated to use - it instead of spelling out the command pipeline manually and losing - the exit status of the 'git cat-file' command on the upstream of the - pipe. + rewrites_release() in 'remote.c' has been updated to free 'struct + rewrite' instances, their '.instead_of' arrays, and their contents. - Needs review. - cf. <xmqqldawq24y.fsf@gitster.g> - source: <20260727095656.75496-1-diy2903@gmail.com> + Graduated to 'master'. + cf. <20260725161819.GA2343104@coredump.intra.peff.net> + source: <xmqqpl0b12gj.fsf@gitster.g> -* jk/cat-file-batch-wo-type-fix (2026-07-28) 1 commit - - cat-file: handle content request for --batch-command without type +* jt/config-lock-timeout (2026-05-17) 1 commit + (merged to 'next' on 2026-07-24 at 3cb8da6b6a) + + config: retry acquiring config.lock, configurable via core.configLockTimeout - "git cat-file --batch-command" that asked for 'contents' without - 'type' segfaults, which has been corrected. + Configuration file locking has been updated to retry for a short + period, avoiding failures when multiple processes attempt to update + the configuration simultaneously. - Will merge to 'next'? - cf. <xmqqjyqfdnie.fsf@gitster.g> - source: <20260728150031.GA41931@coredump.intra.peff.net> + Graduated to 'master'. + cf. <agrIrGwSMFlKTx9x@pks.im> + cf. <xmqqzf1xbl4i.fsf@gitster.g> + source: <20260517132111.1014901-1-joerg@thalheim.io> -* tc/merge-default-to-upstream-leakfix (2026-07-28) 1 commit - - merge: fix leak with merge.defaultToUpstream +* ps/cat-file-remote-object-info (2026-07-24) 13 commits + (merged to 'next' on 2026-07-24 at e436a42272) + + cat-file: make remote-object-info allow-list adapt to the server + + cat-file: add remote-object-info to batch-command + + transport: add client support for object-info + + serve: advertise object-info feature + + protocol-caps: check object existence regardless of the attributes requested + + fetch-pack: move fetch initialization + + connect: make write_fetch_command_and_capabilities() more generic + + fetch-pack: move write_fetch_command_and_capabilities() to connect.c + + fetch-pack: use unsigned int for hash_algo variable + + fetch-pack: drop the static advertise_sid variable + + t1006: extract helper functions into new 'lib-cat-file.sh' + + cat-file: declare loop counter inside for() + + transport-helper: fix memory leak of helper on disconnect + (this branch is used by ps/cat-file-remote-object-info-type.) - Leakfix. + The 'remote-object-info' command has been added to 'git cat-file + --batch-command', allowing clients to request object metadata + (currently size) from a remote server via protocol v2 without + downloading the entire object. Format placeholders are dynamically + filtered on the client based on server-advertised capabilities, + returning empty strings for inapplicable or unsupported fields. - Will merge to 'next'? - cf. <20260728151959.GC41931@coredump.intra.peff.net> - cf. <xmqqfr13dlv8.fsf@gitster.g> - source: <20260728-toon-fix-merge-leak-v1-1-d6bd161a3acf@iotcl.com> + Graduated to 'master'. + source: <20260724-ps-eric-work-rebase-v21-0-ba67f024fdff@gmail.com> -* cl/regexec-macos-leak (2026-07-28) 2 commits - - SQUASH??? - - regexec: work around macOS TRE leak on invalid UTF-8 +* ps/odb-move-loose-object-writing (2026-07-17) 10 commits + (merged to 'next' on 2026-07-25 at 244d577d93) + + object-file: move logic to write loose objects + + object-file: move `force_object_loose()` + + object-file: force objects loose via generic interface + + object-file: fix memory leak in `force_object_loose()` + + odb: support setting mtime when writing objects + + odb: lift object existence check out of the "loose" backend + + odb: compute object hash in `odb_write_object_ext()` + + t/u-odb-inmemory: implement wrapper for writing objects + + odb: compute compat object ID in `odb_write_object_ext()` + + Merge branch 'jt/receive-pack-use-odb-transactions' into HEAD - A compatibility workaround has been introduced for macOS to address - a memory leak in the system regex engine when it encounters invalid - multibyte sequences. The workaround segments the input buffer at - invalid byte boundaries and searches each valid segment separately - using regexec(), avoiding the leaking path. + The logic to write loose objects has been refactored and moved from + 'object-file.c' to the loose backend source file 'odb/source-loose.c', + making the loose backend more self-contained. This is achieved by + first refactoring force_object_loose() to use generic ODB write + interfaces instead of loose-backend internals. - Waiting for response. - cf. <xmqqse52bpa9.fsf@gitster.g> - source: <20260728052538.12429-1-chungmin@chungminlee.com> + Graduated to 'master'. + cf. <xmqqecgzpm0y.fsf@gitster.g> + source: <20260717-pks-odb-move-loose-object-writing-v1-0-46446a3cb5b7@pks.im> -* dl/pack-bitmap-position-zero (2026-07-28) 1 commit - - pack-bitmap: handle objects at bitmap position zero +* rs/tempfile-wo-the-repository (2026-07-14) 5 commits + (merged to 'next' on 2026-07-22 at 968a116891) + + use repo_hold_lock_file_for_update{,_mode,_timeout}() with custom repos + + tempfile: stop using the_repository + + lockfile: add repo_hold_lock_file_for_update{,_timeout}{,_mode}() + + refs/packed: use repo_create_tempfile() + + tempfile: add repo_create_tempfile{,_mode}() - A boundary case check in reachability bitmap traversal has been - corrected to properly handle the object at position zero, which was - previously skipped, leading to redundant bitmap loading. + The tempfile and lockfile APIs have been refactored to stop depending + on the 'the_repository' global variable, and their callers have been + updated to use the repository-aware variants. - Will merge to 'next'? - cf. <amk75SuhyHBbx-E8@com-79390> - cf. <xmqq5x1yd968.fsf@gitster.g> - source: <20260728135248.61304-1-davidlin@stripe.com> + Graduated to 'master'. + cf. <xmqq8q7ds3ld.fsf@gitster.g> + cf. <xmqqmrvmn6a5.fsf@gitster.g> + source: <20260714175956.54601-1-l.s.r@web.de> -* hn/checkout-m-autostash-refine (2026-07-25) 2 commits - - checkout -m: refine autostash fallback - - sequencer: teach autostash apply to report conflicts +* sk/userdiff-swift (2026-07-20) 1 commit + (merged to 'next' on 2026-07-23 at 45dbcc6307) + + userdiff: add support for Swift - The autostash fallback in 'git checkout -m' has been refined to only - retry when there are local changes. Additionally, a blank line now - visually separates autostash conflict advice from the subsequent - branch-switch message. + Userdiff patterns for Swift have been added, with support for + Swift-specific constructs such as attributes, modifiers, failable + initializers, and generics. - Needs review. - cf. <xmqqwluebuhb.fsf@gitster.g> - source: <pull.2364.git.git.1784993669.gitgitgadget@gmail.com> + Graduated to 'master'. + cf. <2a3a73c5-5e90-44a3-bf6a-6e98ce5e5a59@kdbg.org> + cf. <7b541cd5-bd66-4675-818d-8e23eb1c9530@kdbg.org> + source: <20260721065736.8747-1-diy2903@gmail.com> -* jk/t0014-dynamic-deprecated-cmds (2026-07-28) 2 commits - (merged to 'next' on 2026-07-29 at 39a86632e6) - + t0014: generate deprecated command names dynamically - + t0014: factor out choice of deprecated commands +* tl/gitweb-shorten-hashes-with-modes (2026-07-17) 1 commit + (merged to 'next' on 2026-07-25 at 5b92e8a325) + + gitweb: shorten index hashes with trailing file modes - The alias tests in t/t0014-alias.sh have been updated to dynamically - query the list of deprecated commands using 'git - --list-cmds=deprecated' to avoid test failures when running with - WITH_BREAKING_CHANGES in a build directory that contains stale - executables of formerly deprecated commands. + The object ID shortening and linking in the 'commitdiff' view of + 'gitweb' has been corrected to work even when the index line carries + a trailing file mode. - Will merge to 'master'. - source: <20260728143653.GB11894@coredump.intra.peff.net> + Graduated to 'master'. + cf. <xmqqjyqu6u7i.fsf@gitster.g> + source: <SA1PR10MB9977150C823C0751E53B150D5AF1C62@SA1PR10MB997715.namprd10.prod.outlook.com> -* js/mingw-symlink-net-share-leak (2026-07-28) 1 commit - (merged to 'next' on 2026-07-29 at 250fe7f194) - + mingw: skip symlink type auto-detection for network share targets +* tn/stash-avoid-sparse-index-expansion (2026-07-20) 2 commits + (merged to 'next' on 2026-07-23 at 8ccf28493e) + + stash: avoid sparse-index expansion for in-cone paths + + pathspec: use match for sparse-index expansion checks - Git for Windows has been updated to avoid auto-detecting the symlink - type if the target path starts with a slash, preventing NTLM - credential leaks when checking out repositories with crafted - symbolic links pointing to network shares. + The 'git stash push' command has been optimized to avoid + unnecessary sparse index expansion when pathspecs are wholly inside + the sparse-checkout cone. Also, a potential out-of-bounds read in + the sparse-index expansion check helper + pathspec_needs_expanded_index() has been fixed by consistently + using the parsed, prefixed path. - Will merge to 'master'. - source: <pull.2189.git.1785239196007.gitgitgadget@gmail.com> + Graduated to 'master'. + cf. <al61UTM0aK9j9eiP@com-79390> + cf. <al61ERa3fS2MerHp@com-79390> + source: <20260720223118.62821-4-tnyman@openai.com> -* ns/merge-base-is-ancestor-tests (2026-07-25) 1 commit - - merge-base: add tests for --is-ancestor +* ty/migrate-excludes-file (2026-07-13) 10 commits + (merged to 'next' on 2026-07-23 at 749560a29c) + + repository: adjust the comment of config_values_private_ + + environment: move object_creation_mode into repo_config_values + + environment: move autorebase into repo_config_values + + environment: move push_default into repo_config_values + + environment: migrate apply_default_whitespace and apply_default_ignorewhitespace + + environment: move askpass_program into repo_config_values + + environment: move pager_program into repo_config_values + + environment: move editor_program into repo_config_values + + environment: move excludes_file into repo_config_values + + repository: introduce repo_config_values_clear() - Tests for 'git merge-base --is-ancestor' have been added to cover - exit codes (0 for success, 1 for non-ancestor, 128 for errors) and - to ensure it cannot be combined with '--all'. + The 'excludes_file' and various other global configuration variables + (including 'editor_program', 'pager_program', 'askpass_program', and + 'push_default') have been migrated into the per-repository structure. - Waiting for response. - cf. <9a47d529-6195-435b-90a6-e511856f128e@gmail.com> - source: <pull.2186.git.1784998828879.gitgitgadget@gmail.com> + Graduated to 'master'. + cf. <xmqqa4ruyhbh.fsf@gitster.g> + source: <20260714032525.1611141-1-cat@malon.dev> -* jc/add-resolved (2026-07-29) 4 commits - - add: introduce '--resolved' option - - read-cache: add remove_file_from_index_with_flags() - - merge-ll: consolidate conflict marker scanning logic - - read-cache: reindent +* ty/migrate-trust-executable-bit (2026-07-20) 4 commits + (merged to 'next' on 2026-07-23 at 4873f289dd) + + environment: move has_symlinks into repo_config_values + + environment: move trust_executable_bit into repo_config_values + + read-cache: pass 'repo' to 'ce_mode_from_stat()' + + read-cache: remove redundant extern declarations - 'git add' has been taught a new '--resolved' option to stage - conflict-resolved paths, while leaving unrelated local changes - unstaged. It scans the unmerged paths for leftover conflict markers - and aborts if any are found. + The 'trust_executable_bit' (coming from the 'core.filemode' + configuration) has been migrated into 'struct repo_config_values' to + tie it to a specific repository instance. - Will merge to 'next'? - cf. <xmqqse51algy.fsf@gitster.g> - source: <20260729172524.4022621-1-gitster@pobox.com> + Graduated to 'master'. + cf. <alvNq8rXF/jofqUc@szeder.dev> + cf. <xmqq8q7961xe.fsf@gitster.g> + source: <20260720105335.3202013-1-cat@malon.dev> -------------------------------------------------- [Stalled] +* bl/t7412-use-test-path-helpers (2026-06-29) 1 commit + - submodule absorbgitdirs tests: use test_* helper functions + + The test script 't7412' that tests 'git submodule absorbgitdirs' has + been modernized to use test_path_is_file(), test_path_is_dir(), and + test_path_is_missing() helper functions instead of raw 'test -[fde]' + commands. + + Waiting for response for too long, stalled. + cf. <akTKHfKPsP3-Rn31@pks.im> + cf. <xmqqik60o22y.fsf@gitster.g> + source: <20260630020220.1559190-1-bblima@usp.br> + + * tb/repack-geometric-cruft (2026-06-28) 11 commits - SQUASH??? bare grep !??? - repack: support combining '--geometric' with '--cruft' @@ -368,9 +383,8 @@ Release tarballs are available at: geometric repack as usual, while a separate cruft pack is written to collect unreachable objects. - Waiting for response. + Waiting for response for too long, stalled. cf. <xmqqwlugo4nk.fsf@gitster.g> - cf. <e3d2e46443d0b32ce29215563dde04ebcf850679.1782500507.git.me@ttaylorr.com> source: <cover.1782500507.git.me@ttaylorr.com> @@ -382,7 +396,7 @@ Release tarballs are available at: fetch the branch from the remote that the new branch will work with. Will discard. - cf. <xmqqtsr0tvci.fsf@gitster.g> + cf. <xmqq8q71clob.fsf@gitster.g> source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com> @@ -394,14 +408,17 @@ Release tarballs are available at: updated to hide dotfiles by default unless the user explicitly starts the path with a dot, matching standard shell-completion behavior. - Waiting for response, stalled. + Waiting for response for too long, stalled. + cf. <xmqq1pe0g08t.fsf@gitster.g> cf. <xmqq4ihpclo8.fsf@gitster.g> - cf. <xmqqik71t3nr.fsf@gitster.g> source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com> +-------------------------------------------------- +[Cooking] -* kh/doc-trailers (2026-06-10) 10 commits +* kh/doc-trailers (2026-07-30) 11 commits - doc: interpret-trailers: document comment line treatment + - doc: interpret-trailers: rewrite new-trailers paragraphs - doc: interpret-trailers: commit to “trailer block” term - doc: interpret-trailers: join new-trailers again - doc: interpret-trailers: add key format example @@ -411,43 +428,172 @@ Release tarballs are available at: - doc: interpret-trailers: use “metadata” in Name as well - doc: interpret-trailers: replace “lines” with “metadata” - doc: interpret-trailers: stop fixating on RFC 822 + (this branch is used by kh/trailers-no-urls.) Documentation for 'git interpret-trailers' has been updated to explain the format of trailer keys (alphanumeric characters and hyphens), replace outdated terminology, define key terms upfront, and document how comment lines in the input are treated. - Will discard. - cf. <xmqq1pedthkv.fsf@gitster.g> - source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz> + Needs review. + source: <V4_CV_doc_int-tr_key_format.ae2@msgid.xyz> -* kh/doc-replay-config (2026-06-05) 4 commits - - doc: replay: move “default” to the right-hand side - - doc: replay: use a nested description list - - doc: replay: improve config description - - doc: link to config for git-replay(1) +* kh/doc-replay-config (2026-07-30) 4 commits + (merged to 'next' on 2026-08-03 at 5450adb2e1) + + doc: replay: move “default” to the right-hand side + + doc: replay: use a nested description list + + doc: replay: improve config description + + doc: link to config for git-replay(1) Documentation for 'git replay' has been updated to refer to its configuration variables. - Will discard. - cf. <xmqqv7a5b6n7.fsf@gitster.g> - source: <V3_CV_doc_replay_config.780@msgid.xyz> + Will merge to 'master'. + cf. <xmqq4ihfduxi.fsf@gitster.g> + source: <V4_CV_doc_replay_config.af3@msgid.xyz> --------------------------------------------------- -[Cooking] -* jc/remote-insteadof-leakfix (2026-07-25) 1 commit - (merged to 'next' on 2026-07-27 at 8cf88af88b) - + remote: plug memory leaks +* sk/test-commit-body-helper (2026-07-27) 2 commits + (merged to 'next' on 2026-08-03 at ce42e63135) + + t: use commit_body to extract commit message bodies + + test-lib-functions: add commit_body helper - rewrites_release() in 'remote.c' has been updated to free 'struct - rewrite' instances, their '.instead_of' arrays, and their contents. + A new test helper commit_body() has been introduced to print the + message body of a commit, and various tests have been updated to use + it instead of spelling out the command pipeline manually and losing + the exit status of the 'git cat-file' command on the upstream of the + pipe. + + Will merge to 'master'. + cf. <xmqqpl05o5n7.fsf@gitster.g> + source: <20260727095656.75496-1-diy2903@gmail.com> + + +* jk/cat-file-batch-wo-type-fix (2026-07-28) 1 commit + (merged to 'next' on 2026-07-31 at 2d67bd3ccf) + + cat-file: handle content request for --batch-command without type + + 'git cat-file --batch-command' that asked for 'contents' without + 'type' segfaults, which has been corrected. + + Will merge to 'master'. + cf. <xmqqjyqfdnie.fsf@gitster.g> + source: <20260728150031.GA41931@coredump.intra.peff.net> + + +* tc/merge-default-to-upstream-leakfix (2026-07-28) 1 commit + (merged to 'next' on 2026-07-31 at b10497d8a4) + + merge: fix leak with merge.defaultToUpstream + + A memory leak in 'git merge' when run without arguments (which + triggers the default-to-upstream path) has been fixed. A test has + been added to cover this case. + + Will merge to 'master'. + cf. <20260728151959.GC41931@coredump.intra.peff.net> + cf. <xmqqfr13dlv8.fsf@gitster.g> + source: <20260728-toon-fix-merge-leak-v1-1-d6bd161a3acf@iotcl.com> + + +* cl/regexec-macos-leak (2026-07-28) 2 commits + - SQUASH??? + - regexec: work around macOS TRE leak on invalid UTF-8 + + A compatibility workaround has been introduced for macOS to address + a memory leak in the system regex engine when it encounters invalid + multibyte sequences. The workaround segments the input buffer at + invalid byte boundaries and searches each valid segment separately + using regexec(), avoiding the leaking path. + + Waiting for response. + cf. <xmqqse52bpa9.fsf@gitster.g> + source: <20260728052538.12429-1-chungmin@chungminlee.com> + + +* dl/pack-bitmap-position-zero (2026-07-28) 1 commit + (merged to 'next' on 2026-07-31 at b200bed995) + + pack-bitmap: handle objects at bitmap position zero + + A boundary case check in reachability bitmap traversal has been + corrected to properly handle the object at position zero, which was + previously skipped, leading to redundant bitmap loading. + + Will merge to 'master'. + cf. <amk75SuhyHBbx-E8@com-79390> + cf. <xmqq5x1yd968.fsf@gitster.g> + source: <20260728135248.61304-1-davidlin@stripe.com> + + +* hn/checkout-m-autostash-refine (2026-07-25) 2 commits + - checkout -m: refine autostash fallback + - sequencer: teach autostash apply to report conflicts + + The autostash fallback in 'git checkout -m' has been refined to only + retry when there are local changes. Additionally, a blank line now + visually separates autostash conflict advice from the subsequent + branch-switch message. + + Needs review. + cf. <xmqqwluebuhb.fsf@gitster.g> + source: <pull.2364.git.git.1784993669.gitgitgadget@gmail.com> + + +* jk/t0014-dynamic-deprecated-cmds (2026-07-28) 2 commits + (merged to 'next' on 2026-07-29 at 39a86632e6) + + t0014: generate deprecated command names dynamically + + t0014: factor out choice of deprecated commands + + The alias tests in 't/t0014-alias.sh' have been updated to dynamically + query the list of deprecated commands using 'git + --list-cmds=deprecated' to avoid test failures when running with + 'WITH_BREAKING_CHANGES' in a build directory that contains stale + executables of formerly deprecated commands. + + Will merge to 'master'. + source: <20260728143653.GB11894@coredump.intra.peff.net> + + +* js/mingw-symlink-net-share-leak (2026-07-28) 1 commit + (merged to 'next' on 2026-07-29 at 250fe7f194) + + mingw: skip symlink type auto-detection for network share targets + + Git for Windows has been updated to avoid auto-detecting the symlink + type if the target path starts with a slash, preventing NTLM + credential leaks when checking out repositories with crafted + symbolic links pointing to network shares. + + Will merge to 'master'. + source: <pull.2189.git.1785239196007.gitgitgadget@gmail.com> + + +* ns/merge-base-is-ancestor-tests (2026-07-29) 1 commit + (merged to 'next' on 2026-08-03 at cf2c4e00eb) + + merge-base: add tests for --is-ancestor + + Tests for 'git merge-base --is-ancestor' have been added to cover + exit codes (0 for success, 1 for non-ancestor, 128 for errors) and + to ensure it cannot be combined with '--all'. + + Will merge to 'master'. + cf. <xmqq8q6slb2t.fsf@gitster.g> + source: <pull.2186.v2.git.1785392350660.gitgitgadget@gmail.com> + + +* jc/add-resolved (2026-07-31) 4 commits + - add: introduce '--resolved' option + - read-cache: add remove_file_from_index_with_flags() + - merge-ll: consolidate conflict marker scanning logic + - read-cache: reindent - Will merge to 'master'. - cf. <20260725161819.GA2343104@coredump.intra.peff.net> - source: <xmqqpl0b12gj.fsf@gitster.g> + 'git add' has been taught a new '--resolved' option to stage + conflict-resolved paths, while leaving unrelated local changes + unstaged. It scans the unmerged paths for leftover conflict + markers and aborts if any are found. + + Will merge to 'next'? + cf. <20260801141414.GD2041176@coredump.intra.peff.net> + source: <20260731125605.3638938-1-gitster@pobox.com> * tb/pack-with-duplicates (2026-07-24) 5 commits @@ -468,21 +614,22 @@ Release tarballs are available at: source: <cover.1784927134.git.ttaylorr@openai.com> -* ps/cat-file-remote-object-info-type (2026-07-25) 6 commits +* ps/cat-file-remote-object-info-type (2026-08-03) 9 commits - cat-file: unify default format - serve: advertise type capability - - fetch-object-info: request all supported options dynamically - fetch-object-info: parse type from server response - protocol-caps: add type support to object-info + - fetch-object-info: use dedicated struct for the results + - fetch-object-info: pass arguments directly instead of a struct + - fetch-object-info: detect truncated server responses + - t5701: use test_file_size() to get the size of a file - Merge branch 'ps/cat-file-remote-object-info' into ps/cat-file-remote-object-info-type - (this branch uses ps/cat-file-remote-object-info.) The 'remote-object-info' command for 'git cat-file --batch-command' has been extended to support the '%(objecttype)' placeholder. Needs review. - cf. <xmqqecglajnj.fsf@gitster.g> - source: <20260725-objecttype-support-v1-0-2d4ca3bbabf1@gmail.com> + source: <20260803-objecttype-support-v3-0-7176fecf7950@gmail.com> * rs/branch-delete-bisect-warning (2026-07-25) 1 commit @@ -506,7 +653,7 @@ Release tarballs are available at: The image version used by the static-analysis CI job has been bumped to ubuntu-latest (Ubuntu 24.04), which brings in a newer Coccinelle version that resolves a severe performance regression. A false - positive warning from the CHECK_ASSERTION_SIDE_EFFECTS build with + positive warning from the 'CHECK_ASSERTION_SIDE_EFFECTS' build with GCC 15 in the Bloom filter code has also been silenced to facilitate the image upgrade. @@ -516,35 +663,25 @@ Release tarballs are available at: * jk/diff-relative-cached-unmerged-more (2026-07-26) 3 commits - - diff-lib: skip paths outside prefix in oneway_diff() - - diff-lib: drop stale comment about advancing o->pos - - Merge branch 'jk/diff-relative-cached-unmerged' into jk/diff-relative-cached-unmerged-more + (merged to 'next' on 2026-07-30 at d8636bd744) + + diff-lib: skip paths outside prefix in oneway_diff() + + diff-lib: drop stale comment about advancing o->pos + + Merge branch 'jk/diff-relative-cached-unmerged' into jk/diff-relative-cached-unmerged-more (this branch uses jk/diff-relative-cached-unmerged.) The code path that deals with relative paths in the diff-lib has been cleaned up. - Waiting for review. + Will merge to 'master'. cf. <xmqqo6frdqy5.fsf@gitster.g> cf. <20260728171249.GA643101@coredump.intra.peff.net> source: <20260726084550.GC2366012@coredump.intra.peff.net> -* af/clone-revision-v0-segfault-fix (2026-07-24) 1 commit - (merged to 'next' on 2026-07-27 at 57c0e98bfb) - + builtin/clone: fix segfault when using --revision with protocol v0 - - A segfault when 'git clone --revision' talks to a server that does not - support protocol v2 (falling back to protocol v0) has been corrected. - - Will merge to 'master'. - cf. <xmqqldb08jcd.fsf@gitster.g> - source: <20260724124138.666877-1-adrian.friedli@mt.com> - - -* lo/mv-missing-dest-dir-check (2026-07-26) 2 commits - - mv: reject a destination whose leading path is missing or a symlink - - mv: name both source and destination when rename fails +* lo/mv-missing-dest-dir-check (2026-07-30) 2 commits + (merged to 'next' on 2026-08-03 at 7643cf1c2a) + + mv: reject a destination whose leading path is missing or a symlink + + mv: name both source and destination when rename fails 'git mv' has been updated to check for a missing destination leading directory during the checking phase, allowing 'git mv -n' @@ -552,9 +689,9 @@ Release tarballs are available at: syscall fails has also been improved to name both the source and the destination. - Waiting for response. - cf. <xmqqbjbsgjfu.fsf@gitster.g> - source: <pull.2356.v4.git.git.1785097071.gitgitgadget@gmail.com> + Will merge to 'master'. + cf. <xmqqtspgjkwb.fsf@gitster.g> + source: <pull.2356.v5.git.git.1785410884.gitgitgadget@gmail.com> * ps/odb-make-creation-pluggable (2026-07-23) 5 commits @@ -571,27 +708,10 @@ Release tarballs are available at: detangled from repository initialization. Waiting for response. - cf. <amkcNhMTKqWdLXwX@denethor> - cf. <amkXcmwzbBYsMgjc@denethor> - cf. <amkOb3rvWFUpnT28@denethor> - cf. <amkMipjGA_7cwpOR@denethor> + cf. <87pl04d03q.fsf@emacs.iotcl.com> source: <20260724-pks-odb-create-on-disk-v1-0-3b3d265d979b@pks.im> -* jt/config-lock-timeout (2026-05-17) 1 commit - (merged to 'next' on 2026-07-24 at 3cb8da6b6a) - + config: retry acquiring config.lock, configurable via core.configLockTimeout - - Configuration file locking has been updated to retry for a short - period, avoiding failures when multiple processes attempt to update - the configuration simultaneously. - - Will merge to 'master'. - cf. <agrIrGwSMFlKTx9x@pks.im> - cf. <xmqqzf1xbl4i.fsf@gitster.g> - source: <20260517132111.1014901-1-joerg@thalheim.io> - - * hs/rebase-continue-edit (2026-07-21) 1 commit - rebase: add --[no-]edit to --continue @@ -601,41 +721,11 @@ Release tarballs are available at: 'rebase.noEdit' can be used to set the default behavior. Waiting for a response. + cf. <xmqqldb4xlqa.fsf@gitster.g> cf. <db7edc66-9b2a-47bc-98db-87d01885cef0@gmail.com> - cf. <xmqqse5brq8s.fsf@gitster.g> source: <20260721140443.1809379-2-hugo@hsal.es> -* tn/stash-avoid-sparse-index-expansion (2026-07-20) 2 commits - (merged to 'next' on 2026-07-23 at 8ccf28493e) - + stash: avoid sparse-index expansion for in-cone paths - + pathspec: use match for sparse-index expansion checks - - The 'git stash push' command has been optimized to avoid unnecessary - sparse index expansion when pathspecs are wholly inside the - sparse-checkout cone. Also, a potential out-of-bounds read in the - sparse-index expansion check helper pathspec_needs_expanded_index() - has been fixed by consistently using the parsed, prefixed path. - - Will merge to 'master'. - cf. <al61UTM0aK9j9eiP@com-79390> - cf. <al61ERa3fS2MerHp@com-79390> - source: <20260720223118.62821-4-tnyman@openai.com> - - -* en/submodule-insteadof-remote-match (2026-07-22) 1 commit - (merged to 'next' on 2026-07-27 at a1cbd7aa11) - + submodule: resolve insteadOf aliases when matching remote - - The remote-matching logic for submodules has been corrected to - resolve 'url.*.insteadOf' aliases before comparing the inventoried - URL from '.gitmodules' with the URLs of configured remotes. - - Will merge to 'master'. - cf. <xmqqldb05dlo.fsf@gitster.g> - source: <20260723002132.3989727-1-ccjmne@gmail.com> - - * td/fsmonitor-darwin-cookie-flush (2026-07-21) 1 commit - fsmonitor: flush pending FSEvents before cookie wait @@ -645,22 +735,9 @@ Release tarballs are available at: Waiting for response. cf. <CAOTNsDy4pKbPHdK1T688Ax6Mgz15K-qfZR-8fAvTk48z3E43Rg@mail.gmail.com> - cf. <xmqqh5lo5dib.fsf@gitster.g> source: <20260721-fsmonitor-darwin-cookie-flush-v1-1-357dc5e32040@gmail.com> -* jc/exclude-first-parent-seen (2026-07-22) 1 commit - (merged to 'next' on 2026-07-25 at 85755d1d45) - + revision: honor --exclude-first-parent-only with SEEN first parent - - Traversals with '--exclude-first-parent-only' have been corrected to - properly stop after the first parent even when it has already been - marked as SEEN. - - Will merge to 'master'. - source: <xmqqbjbzq7n2.fsf@gitster.g> - - * sn/rebase-update-refs-symrefs (2026-07-22) 2 commits - rebase: guard non-branch symref targets - rebase: skip branch symref aliases @@ -671,51 +748,24 @@ Release tarballs are available at: prevent failures when branch aliases are present. Waiting for response. - cf. <61291144-60da-4e37-83ef-fe09e91c4f51@gmail.com> - cf. <xmqqwludan2m.fsf@gitster.g> + cf. <0844b4e0-679b-4c0a-bea1-5779b4d0489d@gmail.com> source: <pull.2126.v3.git.1784708107.gitgitgadget@gmail.com> * ja/doc-synopsis-style-yet-more (2026-07-23) 4 commits - - doc: convert git-request-pull synopsis and options to new style - - doc: convert git-send-email synopsis and options to new style - - doc: convert git-format-patch synopsis and options to new style - - doc: convert git-imap-send synopsis and options to new style + (merged to 'next' on 2026-08-03 at c744bba04e) + + doc: convert git-request-pull synopsis and options to new style + + doc: convert git-send-email synopsis and options to new style + + doc: convert git-format-patch synopsis and options to new style + + doc: convert git-imap-send synopsis and options to new style Synopsis and options in the documentation for 'git format-patch', 'git imap-send', 'git send-email', and 'git request-pull' have been updated to the modern style. - Needs review. - cf. <740b24631de2c2aff01dcb461f60121fbd11bfe1.1784841567.git.gitgitgadget@gmail.com> - source: <pull.2185.v2.git.1784841567.gitgitgadget@gmail.com> - - -* hn/url-push-tracking (2026-07-22) 2 commits - (merged to 'next' on 2026-07-25 at 9b776656fc) - + remote: find tracking branches for URL push destinations - + remote: pass repository to push tracking helper - - When the push remote is specified as a URL, the fetch refspec of a - uniquely matching configured remote is now used to find and update - the remote-tracking branch (e.g., '@{push}'). - - Will merge to 'master'. - cf. <xmqqpl0eoniz.fsf@gitster.g> - source: <pull.2358.v4.git.git.1784743738.gitgitgadget@gmail.com> - - -* tl/gitweb-shorten-hashes-with-modes (2026-07-17) 1 commit - (merged to 'next' on 2026-07-25 at 5b92e8a325) - + gitweb: shorten index hashes with trailing file modes - - The object ID shortening and linking in the 'commitdiff' view of - 'gitweb' has been corrected to work even when the index line carries - a trailing file mode. - Will merge to 'master'. - cf. <xmqqjyqu6u7i.fsf@gitster.g> - source: <SA1PR10MB9977150C823C0751E53B150D5AF1C62@SA1PR10MB997715.namprd10.prod.outlook.com> + cf. <xmqqldato56l.fsf@gitster.g> + source: <pull.2185.v2.git.1784841567.gitgitgadget@gmail.com> * kj/repo-info-more-path-keys (2026-07-26) 7 commits @@ -732,50 +782,11 @@ Release tarballs are available at: root, superproject working tree, object database, etc.), supporting both absolute and relative path formats. - Waiting for review. - cf. <amjUPEgenletgbp5@denethor> + Expecting a reroll. cf. <CA+rGoLfJ5Kc_HV7YfJ-y5SpMjb7t7f5ifUKcd=39eTjqzzQF5w@mail.gmail.com> source: <20260726104343.16933-1-jayatheerthkulkarni2005@gmail.com> -* sk/userdiff-swift (2026-07-20) 1 commit - (merged to 'next' on 2026-07-23 at 45dbcc6307) - + userdiff: add support for Swift - - Userdiff patterns for Swift have been added, with support for - Swift-specific constructs such as attributes, modifiers, failable - initializers, and generics. - - Will merge to 'master'. - cf. <2a3a73c5-5e90-44a3-bf6a-6e98ce5e5a59@kdbg.org> - cf. <7b541cd5-bd66-4675-818d-8e23eb1c9530@kdbg.org> - source: <20260721065736.8747-1-diy2903@gmail.com> - - -* ps/odb-move-loose-object-writing (2026-07-17) 10 commits - (merged to 'next' on 2026-07-25 at 244d577d93) - + object-file: move logic to write loose objects - + object-file: move `force_object_loose()` - + object-file: force objects loose via generic interface - + object-file: fix memory leak in `force_object_loose()` - + odb: support setting mtime when writing objects - + odb: lift object existence check out of the "loose" backend - + odb: compute object hash in `odb_write_object_ext()` - + t/u-odb-inmemory: implement wrapper for writing objects - + odb: compute compat object ID in `odb_write_object_ext()` - + Merge branch 'jt/receive-pack-use-odb-transactions' into HEAD - - The logic to write loose objects has been refactored and moved from - 'object-file.c' to the loose backend source file 'odb/source-loose.c', - making the loose backend more self-contained. This is achieved by - first refactoring force_object_loose() to use generic ODB write - interfaces instead of loose-backend internals. - - Will merge to 'master'. - cf. <xmqqecgzpm0y.fsf@gitster.g> - source: <20260717-pks-odb-move-loose-object-writing-v1-0-46446a3cb5b7@pks.im> - - * pw/rebase-fixup-fixes (2026-07-26) 2 commits (merged to 'next' on 2026-07-28 at 736307fae5) + rebase: remember fixup -c after skipping fixup/squash @@ -804,13 +815,12 @@ Release tarballs are available at: to pre-filter commits, and maintains per-path Bloom filters even when wildcard pathspecs are used. - Waiting for a response. - cf. <20260718083757.GD22588@coredump.intra.peff.net> - cf. <xmqqwlut1gzc.fsf@gitster.g> + Expecting a reroll. + cf. <87cxwl1lb4.fsf@emacs.iotcl.com> source: <20260717-toon-speed-up-last-modified-v1-0-410418f18614@iotcl.com> -* hn/bisect-reset-when-found (2026-07-20) 2 commits +* hn/bisect-reset-when-found (2026-08-02) 2 commits - bisect: add --reset-when-found to leave when done - bisect: let bisect_reset() optionally check out quietly @@ -819,9 +829,9 @@ Release tarballs are available at: automatically run 'git bisect reset' to jump back to the original state or to the found culprit. - Waiting for response. - cf. <faa22968-54ac-4e4f-8324-3326ffb00c5b@kdbg.org> - source: <pull.2335.v3.git.git.1784538619.gitgitgadget@gmail.com> + Waiting for a response. + cf. <xmqqjyq812wr.fsf@gitster.g> + source: <pull.2335.v6.git.git.1785705860.gitgitgadget@gmail.com> * js/coverity-unchecked-returns-fix (2026-07-14) 11 commits @@ -843,6 +853,7 @@ Release tarballs are available at: about unchecked returns. Waiting for response. + cf. <xmqqh5lui6wg.fsf@gitster.g> cf. <xmqqcxwii6wd.fsf@gitster.g> cf. <alcvnm0xiOv5W0w_@pks.im> source: <pull.2179.git.1784069325.gitgitgadget@gmail.com> @@ -871,14 +882,16 @@ Release tarballs are available at: functions, replacing potential program crashes with blank placeholder timestamps in the traces. - Waiting for response. - cf. <xmqqzezlhgyo.fsf@gitster.g> - cf. <al4yrXXoZiHLwSvE@com-79390> + Expecting a reroll. + cf. <alpXW5U6sndZtgqV@com-79390> + cf. <fbb118df-7c82-49a5-90bb-4458b7e9a850@gmail.com> + cf. <xmqqpl03cfua.fsf@gitster.g> source: <pull.2178.git.1784131932489.gitgitgadget@gmail.com> * mm/revision-pure-get-commit-action (2026-07-15) 1 commit - - revision: make get_commit_action() a pure predicate + (merged to 'next' on 2026-07-31 at ae6730749f) + + revision: make get_commit_action() a pure predicate The get_commit_action() function has been refactored to be a pure predicate by moving the side-effecting line-level log range folding to @@ -886,9 +899,8 @@ Release tarballs are available at: before the walk reaches it does not prematurely mutate its tracked line ranges, making it safer for potential lookahead evaluations. - Will merge to 'next'? + Will merge to 'master'. cf. <xmqq8q6wpmuy.fsf@gitster.g> - cf. <xmqqcxw8pnsa.fsf@gitster.g> source: <pull.2169.git.1784143793613.gitgitgadget@gmail.com> @@ -938,7 +950,6 @@ Release tarballs are available at: encoded packfiles when the other side asks it to. Needs review. - cf. <alQ7WKITYDXfiVn9@com-79390> source: <alQ7WKITYDXfiVn9@com-79390> @@ -957,29 +968,11 @@ Release tarballs are available at: 'fetch-pack' command has also been updated to tolerate pre-existing '.keep' files. - Needs review. - cf. <cover.1785047139.git.tnyman@openai.com> + Will merge to 'next'? + cf. <20260801135313.GA2041176@coredump.intra.peff.net> source: <cover.1785111375.git.tnyman@openai.com> -* rs/tempfile-wo-the-repository (2026-07-14) 5 commits - (merged to 'next' on 2026-07-22 at 968a116891) - + use repo_hold_lock_file_for_update{,_mode,_timeout}() with custom repos - + tempfile: stop using the_repository - + lockfile: add repo_hold_lock_file_for_update{,_timeout}{,_mode}() - + refs/packed: use repo_create_tempfile() - + tempfile: add repo_create_tempfile{,_mode}() - - The tempfile and lockfile APIs have been refactored to stop depending - on the 'the_repository' global variable, and their callers have been - updated to use the repository-aware variants. - - Will merge to 'master'. - cf. <xmqq8q7ds3ld.fsf@gitster.g> - cf. <xmqqmrvmn6a5.fsf@gitster.g> - source: <20260714175956.54601-1-l.s.r@web.de> - - * js/pack-objects-delta-size-t (2026-07-09) 12 commits - git-zlib: widen `git_deflate_bound()` to `size_t` - t/helper/test-pack-deltas: widen `do_compress()`'s maxsize local to `size_t` @@ -999,7 +992,6 @@ Release tarballs are available at: limits, avoiding potential truncation issues on 64-bit Windows. Needs review. - cf. <pull.2175.git.1783615780.gitgitgadget@gmail.com> source: <pull.2175.git.1783615780.gitgitgadget@gmail.com> @@ -1017,7 +1009,7 @@ Release tarballs are available at: also fails. Needs review. - cf. <20260716140956.1023740-1-paulius.zaleckas@gmail.com> + cf. <xmqq7bmwm5g6.fsf@gitster.g> source: <20260716140956.1023740-1-paulius.zaleckas@gmail.com> @@ -1029,7 +1021,7 @@ Release tarballs are available at: to spawn a 'git apply' subprocess. Needs review. - cf. <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com> + cf. <xmqq8q6to4em.fsf@gitster.g> source: <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com> @@ -1044,7 +1036,8 @@ Release tarballs are available at: Ejected due to conflicts with 'pw/rebase-drop-notes-with-commit'. Waiting for response. - cf. <b4cf8f14-1ffa-4395-bc3e-936538574665@gmail.com> + cf. <690b965e-5f07-4aa4-a64c-96e60a86d73b@gmail.com> + cf. <xmqqh5m494yh.fsf@gitster.g> source: <20260711-fz-autosquash-empty-v3-1-d227b63eb511@gmail.com> @@ -1058,7 +1051,7 @@ Release tarballs are available at: Apache handles concurrent requests. Needs review. - cf. <pull.2171.v2.git.1783704657.gitgitgadget@gmail.com> + cf. <CAC2QwmLWkk4JS2XKLdj4i4CAtr7zZo=9tV_=pPQ77zR+R=pGUw@mail.gmail.com> source: <pull.2171.v2.git.1783704657.gitgitgadget@gmail.com> @@ -1090,14 +1083,15 @@ Release tarballs are available at: * ds/sparse-index-ita-crash (2026-07-06) 1 commit - - sparse-index: avoid crash on intent-to-add entry outside the cone + (merged to 'next' on 2026-07-31 at 21b8a5bc05) + + sparse-index: avoid crash on intent-to-add entry outside the cone A crash in the 'sparse-index' collapse code when encountering an invalidated cache-tree node (due to an intent-to-add path) has been fixed by avoiding collapsing such subtrees. - Needs review. - cf. <pull.2167.git.1783345853272.gitgitgadget@gmail.com> + Will merge to 'master'. + cf. <xmqq33x1o465.fsf@gitster.g> source: <pull.2167.git.1783345853272.gitgitgadget@gmail.com> @@ -1137,46 +1131,9 @@ Release tarballs are available at: the header is ultimately rejected. Needs review. - cf. <20260702041759.51572-1-zhihao.yao@njit.edu> source: <20260702041759.51572-1-zhihao.yao@njit.edu> -* bl/t7412-use-test-path-helpers (2026-06-29) 1 commit - - submodule absorbgitdirs tests: use test_* helper functions - - The test script 't7412' that tests 'git submodule absorbgitdirs' has - been modernized to use test_path_is_file(), test_path_is_dir(), and - test_path_is_missing() helper functions instead of raw 'test -[fde]' - commands. - - Waiting for response for too long, stalled. - cf. <xmqqik60o22y.fsf@gitster.g> - cf. <akTKHfKPsP3-Rn31@pks.im> - source: <20260630020220.1559190-1-bblima@usp.br> - - -* ty/migrate-excludes-file (2026-07-13) 10 commits - (merged to 'next' on 2026-07-23 at 749560a29c) - + repository: adjust the comment of config_values_private_ - + environment: move object_creation_mode into repo_config_values - + environment: move autorebase into repo_config_values - + environment: move push_default into repo_config_values - + environment: migrate apply_default_whitespace and apply_default_ignorewhitespace - + environment: move askpass_program into repo_config_values - + environment: move pager_program into repo_config_values - + environment: move editor_program into repo_config_values - + environment: move excludes_file into repo_config_values - + repository: introduce repo_config_values_clear() - - The 'excludes_file' and various other global configuration variables - (including 'editor_program', 'pager_program', 'askpass_program', and - 'push_default') have been migrated into the per-repository structure. - - Will merge to 'master'. - cf. <xmqqa4ruyhbh.fsf@gitster.g> - source: <20260714032525.1611141-1-cat@malon.dev> - - * ps/libgit-in-subdir (2026-07-12) 3 commits . Move libgit.a sources into separate "lib/" directory . t/helper: prepare "test-example-tap.c" for introduction of "lib/" @@ -1188,8 +1145,9 @@ Release tarballs are available at: Ejected for now, as it causes too many evil merges with other topics. - Waiting for response. - cf. <xmqqcxxi3eov.fsf@gitster.g> + Waiting for response, stalled. + cf. <xmqqqzkx9t95.fsf@gitster.g> + cf. <al6yCTDjBRn2HGq0@com-79390> source: <20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im> @@ -1211,10 +1169,9 @@ Release tarballs are available at: source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com> -* hn/history-squash (2026-07-20) 5 commits - - history: re-edit a squash with every message - - sequencer: share the squash message marker helpers and flags +* hn/history-squash (2026-07-31) 4 commits - history: add squash subcommand to fold a range + - sequencer: share the squash message marker helpers and flags - history: give commit_tree_ext a message template - history: extract helper for a commit's parent tree @@ -1223,8 +1180,7 @@ Release tarballs are available at: descendants replayed on top. Needs review. - cf. <f5f7af53-df3e-4902-b350-8fcf8ccb02ad@gmail.com> - source: <pull.2337.v10.git.git.1784536024.gitgitgadget@gmail.com> + source: <pull.2337.v11.git.git.1785567209.gitgitgadget@gmail.com> * tb/midx-incremental-custom-base (2026-06-12) 3 commits @@ -1239,7 +1195,6 @@ Release tarballs are available at: logic, and reachability closure for bitmaps was broken. Needs review. - cf. <cover.1781294771.git.me@ttaylorr.com> source: <cover.1781294771.git.me@ttaylorr.com> @@ -1253,48 +1208,20 @@ Release tarballs are available at: rebase --no-rebase-merges'. Needs review. - Kicked back to 'seen'. cf. <xmqqy0evc6n9.fsf@gitster.g> source: <20260728-toon-git-replay-drop-merges-v8-0-ced11dffe749@iotcl.com> -* ps/cat-file-remote-object-info (2026-07-24) 13 commits - (merged to 'next' on 2026-07-24 at e436a42272) - + cat-file: make remote-object-info allow-list adapt to the server - + cat-file: add remote-object-info to batch-command - + transport: add client support for object-info - + serve: advertise object-info feature - + protocol-caps: check object existence regardless of the attributes requested - + fetch-pack: move fetch initialization - + connect: make write_fetch_command_and_capabilities() more generic - + fetch-pack: move write_fetch_command_and_capabilities() to connect.c - + fetch-pack: use unsigned int for hash_algo variable - + fetch-pack: drop the static advertise_sid variable - + t1006: extract helper functions into new 'lib-cat-file.sh' - + cat-file: declare loop counter inside for() - + transport-helper: fix memory leak of helper on disconnect - (this branch is used by ps/cat-file-remote-object-info-type.) - - The 'remote-object-info' command has been added to 'git cat-file - --batch-command', allowing clients to request object metadata - (currently size) from a remote server via protocol v2 without - downloading the entire object. Format placeholders are dynamically - filtered on the client based on server-advertised capabilities, - returning empty strings for inapplicable or unsupported fields. - - Will merge to 'master'. - source: <20260724-ps-eric-work-rebase-v21-0-ba67f024fdff@gmail.com> - - -* mm/diff-process-hunks (2026-07-26) 10 commits - - line-log: consult diff process for range tracking - - diff: consult diff process for --stat counts - - blame: consult diff process for no-hunk detection - - diff: bypass diff process with --no-ext-diff and in format-patch - - diff: add long-running diff process via diff.<driver>.process - - sub-process: separate process lifecycle from hashmap management +* mm/diff-process-hunks (2026-08-01) 11 commits + - diff: consult oid-only hunk providers via diff.<driver>.process - userdiff: add diff.<driver>.process config - - xdiff: support external hunks via xpparam_t + - sub-process: add a gentle status read + - sub-process: separate process lifecycle from hashmap management + - blame: read precomputed hunks + - diff: read precomputed hunks for stat output + - diff: record precomputed hunks during stat output + - diff-hunks: add the store format, library, and command + - diff: introduce a hunk provider interface - gitattributes: document how external diff drivers relate to diff features - Merge branch 'mm/line-log-limited-ops' into mm/diff-process-hunks (this branch uses mm/line-log-limited-ops.) @@ -1306,24 +1233,7 @@ Release tarballs are available at: Git's standard pipeline. Needs review. - source: <pull.2120.v6.git.1785091889.gitgitgadget@gmail.com> - - -* ty/migrate-trust-executable-bit (2026-07-20) 4 commits - (merged to 'next' on 2026-07-23 at 4873f289dd) - + environment: move has_symlinks into repo_config_values - + environment: move trust_executable_bit into repo_config_values - + read-cache: pass 'repo' to 'ce_mode_from_stat()' - + read-cache: remove redundant extern declarations - - The 'trust_executable_bit' (coming from the 'core.filemode' - configuration) has been migrated into 'struct repo_config_values' to - tie it to a specific repository instance. - - Will merge to 'master'. - cf. <alvNq8rXF/jofqUc@szeder.dev> - cf. <xmqq8q7961xe.fsf@gitster.g> - source: <20260720105335.3202013-1-cat@malon.dev> + source: <20260801174156.2998808-1-mmontalbo@gmail.com> * ec/commit-fixup-options (2026-05-26) 2 commits @@ -1335,14 +1245,13 @@ Release tarballs are available at: --fixup' variations. Needs review. - cf. <cover.1779792311.git.erik@cervined.in> source: <cover.1779792311.git.erik@cervined.in> -* hn/branch-delete-merged (2026-07-25) 7 commits +* hn/branch-delete-merged (2026-07-30) 7 commits - branch: add --dry-run for --delete-merged - branch: add branch.<name>.deleteMerged opt-out - - branch: add --delete-merged <branch> + - branch: add --delete-merged <pattern> - branch: prepare delete_branches for a bulk caller - branch: let delete_branches skip unmerged branches on bulk refusal - branch: convert delete_branches() to a flags argument @@ -1353,8 +1262,8 @@ Release tarballs are available at: remote-tracking branches. Needs review. - cf. <1f282ad4-9937-4c95-89d4-70f7a1c883a8@gmail.com> - source: <pull.2285.v23.git.git.1784979136.gitgitgadget@gmail.com> + cf. <2574f79a-f04e-449f-aeb4-10d68cdc9437@gmail.com> + source: <pull.2285.v24.git.git.1785419916.gitgitgadget@gmail.com> * kk/merge-base-exhaustion (2026-07-11) 11 commits @@ -1374,6 +1283,7 @@ Release tarballs are available at: early when one side's exclusive commits in the queue are exhausted, yielding significant speedups for queries with one-sided histories. - Needs review. + Waiting for review. + cf. <CAL71e4PwoJ4fxKBNuf3HB3Po92WRaV4yDBUDcuEYiggiDD=+Ew@mail.gmail.com> cf. <CABPp-BGATrNJyT7trzUzAMB_v-1ssVe_SRqp+281X5GzU=2eow@mail.gmail.com> source: <pull.2149.v6.git.1783776466.gitgitgadget@gmail.com>