From 31845924025950bbe110bcd34e9841f3b4147b95 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 3 Aug 2026 10:12:31 -0700 Subject: [PATCH] What's cooking (2026/08 #01) --- whats-cooking.txt | 1124 +++++++++++++++++++++------------------------ 1 file changed, 517 insertions(+), 607 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt 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 @@ -47,175 +47,417 @@ Release tarballs are available at: https://www.kernel.org/pub/software/scm/git/ --------------------------------------------------- -[Graduated to 'master'] - -* 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 - - 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. - - Graduated to 'master'. - cf. <20260719080754.GA429688@coredump.intra.peff.net> - source: <20260719010842.17991-1-sandals@crustytoothpaste.net> - - -* 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 - - 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. - - Graduated to 'master'. - source: - - -* 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` - - 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'. - - Graduated to 'master'. - cf. - cf. - 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. - - Graduated to 'master'. - source: <20260716-pks-refs-wo-the-repository-v3-0-db0a804e0224@pks.im> - - -* 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 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'. - - Graduated to 'master'. - source: <20260716-pks-refspec-wo-the-repository-v1-0-aa40844d067f@pks.im> - - -* 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 - - '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. - - Graduated to 'master'. - cf. - 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'. - cf. - source: - - -* 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 - - 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. - - Graduated to 'master'. - source: <935883f3-3be4-4c51-9711-5208b9ef9ca1@web.de> - - -* 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 - - 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). - - Graduated to 'master'. - cf. <20260718083828.GE22588@coredump.intra.peff.net> - source: <20260718081449.26747-1-sahityajb@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 - - '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. - - Graduated to 'master'. - cf. <20260716091924.GB1212956@coredump.intra.peff.net> - source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com> - -------------------------------------------------- [New Topics] +* hn/ci-cancel-stale-pr-runs (2026-07-31) 1 commit + - ci: cancel stale pull request workflow runs + + 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. + + Needs review. + source: + + +* 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 + + 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. + + Will merge to 'next'? + cf. + source: + + +* jc/complete-diff-tracked-paths (2026-08-02) 1 commit + - completion: complete tracked paths for git diff + + "git -C diff fi" did not complete dir/file, which has + been corrected. + + Will merge to 'next'? + cf. + cf. + source: + + +* 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.) + + The trailers code has been taught to avoid mistaking a line that has + :// at the beginning as a trailer line. + + Will merge to 'next'? + cf. <20260803152025.GA189075@coredump.intra.peff.net> + cf. + cf. + source: + + +* kl/t7528-ssh-agent-for-csh-users (2026-08-02) 1 commit + - t7528: fix failure under csh + + 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. + + Will merge to 'next'? + cf. + cf. + source: <20260803004105.36913-2-keni@his.com> + +-------------------------------------------------- +[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. + source: <20260724124138.666877-1-adrian.friedli@mt.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. + + Graduated to 'master'. + cf. + source: <20260723002132.3989727-1-ccjmne@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}'). + + Graduated to 'master'. + cf. + source: + + +* 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'. + + Graduated to 'master'. + source: + + +* jc/remote-insteadof-leakfix (2026-07-25) 1 commit + (merged to 'next' on 2026-07-27 at 8cf88af88b) + + remote: plug memory leaks + + rewrites_release() in 'remote.c' has been updated to free 'struct + rewrite' instances, their '.instead_of' arrays, and their contents. + + Graduated to 'master'. + cf. <20260725161819.GA2343104@coredump.intra.peff.net> + source: + + +* 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. + + Graduated to 'master'. + cf. + cf. + source: <20260517132111.1014901-1-joerg@thalheim.io> + + +* 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. + + Graduated to 'master'. + source: <20260724-ps-eric-work-rebase-v21-0-ba67f024fdff@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. + + Graduated to 'master'. + cf. + source: <20260717-pks-odb-move-loose-object-writing-v1-0-46446a3cb5b7@pks.im> + + +* 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. + + Graduated to 'master'. + cf. + cf. + source: <20260714175956.54601-1-l.s.r@web.de> + + +* 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. + + 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> + + +* 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. + + Graduated to 'master'. + cf. + source: + + +* 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. + + Graduated to 'master'. + cf. + cf. + source: <20260720223118.62821-4-tnyman@openai.com> + + +* 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. + + Graduated to 'master'. + cf. + source: <20260714032525.1611141-1-cat@malon.dev> + + +* 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. + + Graduated to 'master'. + cf. + cf. + 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. + cf. + 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' + - pack-objects: support '--refs-snapshot' with 'follow-reachable' + - pack-objects: introduce '--stdin-packs=follow-reachable' + - pack-objects: extract `stdin_packs_add_all_pack_entries()` + - repack-geometry: drop unused redundant-pack removal + - repack: delete geometric packs via existing_packs + - repack: teach MIDX retention about geometric rollups + - repack: mark geometric progression of packs as retained + - repack: extract `locate_existing_pack()` helper + - repack: unconditionally exclude non-kept packs + + 'git repack' has been taught to accept '--geometric' and '--cruft' + together. When both are given, non-cruft packs are rolled up by the + geometric repack as usual, while a separate cruft pack is written to + collect unreachable objects. + + Waiting for response for too long, stalled. + cf. + source: + + +* hn/checkout-track-fetch (2026-06-24) 2 commits + - checkout: extend --track with a "fetch" mode to refresh start-point + - branch: expose helpers for finding the remote owning a tracking ref + + The 'git checkout --track=...' command has been taught to optionally + fetch the branch from the remote that the new branch will work with. + + Will discard. + cf. + source: + + +* za/completion-hide-dotfiles (2026-06-20) 2 commits + - completion: hide dotfiles by default for path completion + - completion: hide dotfiles for selected path completion + + Path completion for commands like 'git rm' and 'git mv' has been + updated to hide dotfiles by default unless the user explicitly starts + the path with a dot, matching standard shell-completion behavior. + + Waiting for response for too long, stalled. + cf. + cf. + source: + +-------------------------------------------------- +[Cooking] + +* 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 + - doc: interpret-trailers: explain key format + - doc: interpret-trailers: explain the format after the intro + - doc: interpret-trailers: not just for commit messages + - 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. + + Needs review. + source: + + +* 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 merge to 'master'. + cf. + source: + + * 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 + (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 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 @@ -223,28 +465,32 @@ Release tarballs are available at: the exit status of the 'git cat-file' command on the upstream of the pipe. - Needs review. - cf. + Will merge to 'master'. + cf. source: <20260727095656.75496-1-diy2903@gmail.com> * jk/cat-file-batch-wo-type-fix (2026-07-28) 1 commit - - cat-file: handle content request for --batch-command without type + (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 + 'git cat-file --batch-command' that asked for 'contents' without 'type' segfaults, which has been corrected. - Will merge to 'next'? + Will merge to 'master'. cf. source: <20260728150031.GA41931@coredump.intra.peff.net> * tc/merge-default-to-upstream-leakfix (2026-07-28) 1 commit - - merge: fix leak with merge.defaultToUpstream + (merged to 'next' on 2026-07-31 at b10497d8a4) + + merge: fix leak with merge.defaultToUpstream - Leakfix. + 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 'next'? + Will merge to 'master'. cf. <20260728151959.GC41931@coredump.intra.peff.net> cf. source: <20260728-toon-fix-merge-leak-v1-1-d6bd161a3acf@iotcl.com> @@ -266,13 +512,14 @@ Release tarballs are available at: * dl/pack-bitmap-position-zero (2026-07-28) 1 commit - - pack-bitmap: handle objects at bitmap position zero + (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 'next'? + Will merge to 'master'. cf. cf. source: <20260728135248.61304-1-davidlin@stripe.com> @@ -297,10 +544,10 @@ Release tarballs are available at: + 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 + 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 + 'WITH_BREAKING_CHANGES' in a build directory that contains stale executables of formerly deprecated commands. Will merge to 'master'. @@ -320,19 +567,20 @@ Release tarballs are available at: source: -* ns/merge-base-is-ancestor-tests (2026-07-25) 1 commit - - merge-base: add tests for --is-ancestor +* 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'. - Waiting for response. - cf. <9a47d529-6195-435b-90a6-e511856f128e@gmail.com> - source: + Will merge to 'master'. + cf. + source: -* jc/add-resolved (2026-07-29) 4 commits +* 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 @@ -340,114 +588,12 @@ Release tarballs are available at: '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. + unstaged. It scans the unmerged paths for leftover conflict + markers and aborts if any are found. Will merge to 'next'? - cf. - source: <20260729172524.4022621-1-gitster@pobox.com> - --------------------------------------------------- -[Stalled] - -* tb/repack-geometric-cruft (2026-06-28) 11 commits - - SQUASH??? bare grep !??? - - repack: support combining '--geometric' with '--cruft' - - pack-objects: support '--refs-snapshot' with 'follow-reachable' - - pack-objects: introduce '--stdin-packs=follow-reachable' - - pack-objects: extract `stdin_packs_add_all_pack_entries()` - - repack-geometry: drop unused redundant-pack removal - - repack: delete geometric packs via existing_packs - - repack: teach MIDX retention about geometric rollups - - repack: mark geometric progression of packs as retained - - repack: extract `locate_existing_pack()` helper - - repack: unconditionally exclude non-kept packs - - 'git repack' has been taught to accept '--geometric' and '--cruft' - together. When both are given, non-cruft packs are rolled up by the - geometric repack as usual, while a separate cruft pack is written to - collect unreachable objects. - - Waiting for response. - cf. - cf. - source: - - -* hn/checkout-track-fetch (2026-06-24) 2 commits - - checkout: extend --track with a "fetch" mode to refresh start-point - - branch: expose helpers for finding the remote owning a tracking ref - - The 'git checkout --track=...' command has been taught to optionally - fetch the branch from the remote that the new branch will work with. - - Will discard. - cf. - source: - - -* za/completion-hide-dotfiles (2026-06-20) 2 commits - - completion: hide dotfiles by default for path completion - - completion: hide dotfiles for selected path completion - - Path completion for commands like 'git rm' and 'git mv' has been - 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. - cf. - cf. - source: - - -* kh/doc-trailers (2026-06-10) 10 commits - - doc: interpret-trailers: document comment line treatment - - doc: interpret-trailers: commit to “trailer block” term - - doc: interpret-trailers: join new-trailers again - - doc: interpret-trailers: add key format example - - doc: interpret-trailers: explain key format - - doc: interpret-trailers: explain the format after the intro - - doc: interpret-trailers: not just for commit messages - - doc: interpret-trailers: use “metadata” in Name as well - - doc: interpret-trailers: replace “lines” with “metadata” - - doc: interpret-trailers: stop fixating on RFC 822 - - 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. - source: - - -* 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) - - Documentation for 'git replay' has been updated to refer to its - configuration variables. - - Will discard. - cf. - source: - --------------------------------------------------- -[Cooking] - -* jc/remote-insteadof-leakfix (2026-07-25) 1 commit - (merged to 'next' on 2026-07-27 at 8cf88af88b) - + remote: plug memory leaks - - rewrites_release() in 'remote.c' has been updated to free 'struct - rewrite' instances, their '.instead_of' arrays, and their contents. - - Will merge to 'master'. - cf. <20260725161819.GA2343104@coredump.intra.peff.net> - source: + 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: -* 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. - 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. 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. - 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. - source: + Will merge to 'master'. + cf. + source: * 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. - cf. - cf. - cf. + 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. - cf. - 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. cf. - cf. 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. - cf. - 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. - 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. - cf. 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: - - * sn/rebase-update-refs-symrefs (2026-07-22) 2 commits - rebase: guard non-branch symref targets - rebase: skip branch symref aliases @@ -671,53 +748,26 @@ Release tarballs are available at: prevent failures when branch aliases are present. Waiting for response. - cf. <61291144-60da-4e37-83ef-fe09e91c4f51@gmail.com> - cf. + cf. <0844b4e0-679b-4c0a-bea1-5779b4d0489d@gmail.com> source: * 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> + Will merge to 'master'. + cf. source: -* 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. - source: - - -* 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. - source: - - * kj/repo-info-more-path-keys (2026-07-26) 7 commits - repo: add path.git-prefix path key - repo: add path.grafts with absolute and relative suffix formatting @@ -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. + Expecting a reroll. cf. 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. - 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. + 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. - source: + Waiting for a response. + cf. + source: * 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. cf. cf. source: @@ -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. - cf. + Expecting a reroll. + cf. + cf. + cf. source: * 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. - cf. source: @@ -938,7 +950,6 @@ Release tarballs are available at: encoded packfiles when the other side asks it to. Needs review. - cf. source: @@ -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. + Will merge to 'next'? + cf. <20260801135313.GA2041176@coredump.intra.peff.net> source: -* 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. - cf. - 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. source: @@ -1017,7 +1009,7 @@ Release tarballs are available at: also fails. Needs review. - cf. <20260716140956.1023740-1-paulius.zaleckas@gmail.com> + cf. 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. 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. + cf. <690b965e-5f07-4aa4-a64c-96e60a86d73b@gmail.com> + cf. 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. + cf. source: @@ -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. + Will merge to 'master'. + cf. source: @@ -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. - cf. - 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. - 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. + Waiting for response, stalled. + cf. + cf. source: <20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im> @@ -1211,10 +1169,9 @@ Release tarballs are available at: source: -* 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. - source: + source: * 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. source: @@ -1253,48 +1208,20 @@ Release tarballs are available at: rebase --no-rebase-merges'. Needs review. - Kicked back to 'seen'. cf. 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..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..process - userdiff: add diff..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: - - -* 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. - cf. - 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. source: -* 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..deleteMerged opt-out - - branch: add --delete-merged + - branch: add --delete-merged - 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: + cf. <2574f79a-f04e-449f-aeb4-10d68cdc9437@gmail.com> + source: * 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. cf. source: