diff --git a/whats-cooking.txt b/whats-cooking.txt index 796789c385..974c17a84f 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, #01) +Subject: What's cooking in git.git (Jul 2026, #02) X-master-at: e9019fcafe0040228b8631c30f97ae1adb61bcdc -X-next-at: 602f6c329a7d99df269d382df353b4e1bbbbd8aa +X-next-at: c42f45431d0ffbb231a771bbd65f8a334855ceed Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Jul 2026, #01) +What's cooking in git.git (Jul 2026, #02) ----------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -17,15 +17,15 @@ 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). -Git 2.55 (final) has been tagged. The next release is tentatively -called Git 2.56. This week is the 0th week of the cycle, which is -time to see if there are any brown paper bag breakages and -regressions we need to fix. Next week, I plan to start merging the -topics that have been cooking in 'next' down to 'master'. It has -been customary to rewind 'next' and rebuild it on top of 'master' -soon after a major release, but IIRC, we didn't do so in Git 2.55; -perhaps we can do without rebuilding it this cycle as well. We'll -see. +As the zeroth week of the post-Git 2.55 cycle has passed without any +reports of unexpected regressions, let's start merging things +down. I plan to merge the topics that have been cooking in the +'next' branch down to the 'master' branch early this week. The +'next' branch may have to be frozen for a few days while I decide +whether we want to rewind and rebuild it during the week, and we'll +go from there. In the meantime, please help advance the topics +waiting outside the 'next' branch by providing reviews, +encouragement and testing. 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 @@ -58,6 +58,173 @@ Release tarballs are available at: -------------------------------------------------- [New Topics] +* bc/parse-options-exit-0-on-help (2026-07-01) 4 commits + - parse-options: exit 0 on -h + - rev-parse: have --parseopt callers exit 0 on --help + - parse-options: add a separate case for help output on error + - t1517: skip svn tests if svn is not installed + + Option parsing with 'git rev-parse --parseopt' and most git + subcommands has been updated to exit with 0 (instead of 129) when the + help option (-h or --help) is requested directly by the user, aligning + with standard Unix convention. + + Expecting a reroll. + cf. + source: <20260701212442.1430084-1-sandals@crustytoothpaste.net> + + +* mg/meson-hook-list-buildfix (2026-07-01) 1 commit + - meson: restore hook-list.h to builtin_sources + + A racy build failure under Meson has been corrected by ensuring that + the generated header file hook-list.h is built before compiling files + in builtin_sources that depend on it. + + Will merge to 'next'. + cf. + source: <20260701193928.358825-1-floppym@gentoo.org> + + +* zy/apply-abandoned-header-fix (2026-07-01) 1 commit + - apply: avoid leaking abandoned git-header state + + A candidate git diff header parsed by "git apply" is now isolated in a + temporary structure, preventing any partially parsed state from + polluting the main patch structure and causing assertions to trip if + the header is ultimately rejected. + + Needs review. + source: <20260702041759.51572-1-zhihao.yao@njit.edu> + + +* jk/hash-algo-leak-fixes (2026-07-02) 9 commits + - hash: add platform-specific discard functions + - hash: fix memory leak copying sha256 gcrypt handles + - http: discard hash in dumb-http http_object_request + - check_stream_oid(): discard hash on read error + - patch-id: discard hash when done + - csum-file: provide a function to release checkpoints + - csum-file: always finalize or discard hash + - hash: add discard primitive + - csum-file: drop discard_hashfile() + + Various code paths that initialize a cryptographic hash context but + bail out or finish without calling git_hash_final() have been + taught to call git_hash_discard() to release allocated resources, + fixing memory leaks when Git is built with non-default backends + like OpenSSL or libgcrypt. + + Will merge to 'next'? + cf. + source: <20260702075234.GA1548258@coredump.intra.peff.net> + + +* ml/t9811-replace-test-f (2026-07-02) 1 commit + - t9811: replace 'test -f' and '! test -f' with 'test_path_*' + + The test script 't/t9811-git-p4-label-import.sh' has been + modernized to use 'test_path_is_file' and 'test_path_is_missing' + instead of raw 'test -f' and '! test -f' calls. + + Waiting for response(s) to review comment(s). + cf. + source: <20260702140704.65805-1-marcelomlage@usp.br> + + +* ps/t-fixes-for-git-test-long (2026-07-03) 9 commits + - gitlab-ci: enable "GIT_TEST_LONG" + - gitlab-ci: disable RAM disk on macOS jobs + - t: use `test_bool_env` to parse GIT_TEST_LONG + - t7900: clean up large EXPENSIVE repository + - t7508: skip EXPENSIVE test that is broken without SIZE_T_IS_32BIT + - t5608: reduce maximum disk usage + - t4141: fix inefficient use of dd(1) + - t0021: skip EXPENSIVE test that is broken without SIZE_T_IS_32BIT + - README: add GitLab CI badge to make it more discoverable + + Various test scripts have been updated to clean up large temporary + files and repositories, reducing peak disk usage during testing. + Also, expensive tests have been disabled on platforms that lack + sufficient resources (like 32-bit platforms and Windows CI + runners), and the long test suite has been enabled in GitLab CI. + + Waiting for response(s) to review comment(s). + cf. + source: <20260703-b4-pks-t-fixes-for-GIT-TEST-LONG-v2-0-79076a7e0c62@pks.im> + + +* ih/precompose-flex-array (2026-07-04) 1 commit + - precompose_utf8: use a flex array for d_name + + The UTF-8 precomposition wrapper on macOS has been updated to use a + flexible array member to represent the name of a directory entry, + preventing fortified libc checks from failing when name is + reallocated to be larger than NAME_MAX bytes. + + Will merge to 'next'? + cf. <20260703050800.GA29216@tb-raspi4> + source: <20260704233724.16928-1-ihar.hrachyshka@gmail.com> + + +* sn/osxkeychain-rust-universal (2026-07-04) 2 commits + - Makefile: support universal macOS builds via RUST_TARGETS + - Makefile: add $(RUST_LIB) prerequisite to osxkeychain + + The build system has been updated to support building universal + macOS binaries when Rust is enabled, by compiling separate static + archives for each target triple listed in RUST_TARGETS and + combining them using the macOS lipo tool. Additionally, the + git-credential-osxkeychain helper has been updated to link against + $(RUST_LIB) when Rust is enabled. + + Waiting for response(s) to review comment(s). + cf. + source: + +-------------------------------------------------- +[Stalled] + +* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit + - http: preserve wwwauth_headers across redirects + + When cURL follows a redirect, the WWW-Authenticate headers from the + redirect target were lost because credential_from_url() cleared the + credential state. This has been fixed by preserving the collected + headers across the redirect update. + + Expecting a reroll for too long, stalled. + cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com> + source: <20260602161150.1527493-1-aplattner@nvidia.com> + + +* jt/config-lock-timeout (2026-05-17) 1 commit + - config: retry acquiring config.lock, configurable via core.configLockTimeout + + Configuration file locking now retries for a short period, avoiding + failures when multiple processes attempt to update the configuration + simultaneously. + + Waiting for response(s) to review comment(s) for too long, stalled. + cf. + source: <20260517132111.1014901-1-joerg@thalheim.io> + +-------------------------------------------------- +[Cooking] + +* cl/conditional-config-on-worktree-path (2026-07-02) 2 commits + - config: add "worktree" and "worktree/i" includeIf conditions + - config: refactor include_by_gitdir() into include_by_path() + + The [includeIf "condition"] conditional inclusion facility for + configuration files has learned to use the location of the worktree in + its condition. + + Waiting for response(s) to review comment(s). + cf. + source: <20260703-includeif-worktree-v6-0-a13893ad9a7f@black-desk.cn> + + * kk/commit-reach-find-all-fix (2026-06-29) 2 commits - commit-reach: guard !FIND_ALL early exit with generation ordering check - t6600: add test for merge-base early exit with clock skew @@ -85,14 +252,15 @@ Release tarballs are available at: * jk/format-patch-leakfix (2026-06-29) 2 commits - - format-patch: fix leak of rev_info in prepare_bases() - - t: move LSan errors from stdout to stderr + (merged to 'next' on 2026-07-05 at 072cbaa461) + + format-patch: fix leak of rev_info in prepare_bases() + + t: move LSan errors from stdout to stderr A memory leak in the '--base' handling of 'git format-patch' has been plugged, and the leak-reporting of the test suite when running under a TAP harness has been improved. - Will merge to 'next'? + Will merge to 'master'. cf. source: <20260630063944.GA3733670@coredump.intra.peff.net> @@ -163,34 +331,34 @@ Release tarballs are available at: exposed when running tests with the `GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1` environment variable. - Will merge to 'next'? + Will merge to 'next'. + cf. cf. source: <20260701063538.GA2579765@coredump.intra.peff.net> -* js/ci-dockerized-pid-limit (2026-07-01) 1 commit - - ci(dockerized): reduce the PID limit for private repositories +* js/ci-dockerized-pid-limit (2026-07-04) 1 commit + - ci(dockerized): raise the PID limit for private repositories Dockerized CI jobs running in private GitHub repositories have been adjusted to use explicit process and file limits, preventing resource exhaustion errors on private runners. - Waiting for response(s) to review comment(s). - cf. - source: + Will merge to 'next'? + cf. + source: -* js/coverity-fixes (2026-07-01) 13 commits - - mingw: make exit_process() own the process handle on all paths +* js/coverity-fixes (2026-07-05) 12 commits + - mingw: make `exit_process()` own the process handle on all paths - fsmonitor: plug token-data leak on early daemon-startup failures - reftable/table: release filter on error path - imap-send: avoid leaking the IMAP upload buffer - worktree: fix resource leaks when branch creation fails - - submodule: fix cwd leak in get_superproject_working_tree() - - dir: free allocations on parse-error paths in read_one_dir() + - submodule: fix cwd leak in `get_superproject_working_tree()` + - dir: free allocations on parse-error paths in `read_one_dir()` - line-log: avoid redundant copy that leaks in process_ranges - - run_diff_files: avoid memory leak - - run-command: avoid close(-1) in start_command() error paths + - run-command: avoid `close(-1)` in `start_command()` error paths - download_https_uri_to_file(): do not leak fd upon failure - loose: avoid closing invalid fd on error path - load_one_loose_object_map(): fix resource leak @@ -199,74 +367,9 @@ Release tarballs are available at: descriptor closures, and process handle ownership issues flagged by Coverity. - Waiting for response(s) to review comment(s). - cf. - source: + Needs review. + source: --------------------------------------------------- -[Stalled] - -* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit - - http: preserve wwwauth_headers across redirects - - When cURL follows a redirect, the WWW-Authenticate headers from the - redirect target were lost because credential_from_url() cleared the - credential state. This has been fixed by preserving the collected - headers across the redirect update. - - Expecting a reroll for too long, stalled. - cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com> - source: <20260602161150.1527493-1-aplattner@nvidia.com> - - -* jt/config-lock-timeout (2026-05-17) 1 commit - - config: retry acquiring config.lock, configurable via core.configLockTimeout - - Configuration file locking now retries for a short period, avoiding - failures when multiple processes attempt to update the configuration - simultaneously. - - Waiting for response(s) to review comment(s) for too long, stalled. - cf. - source: <20260517132111.1014901-1-joerg@thalheim.io> - - -* js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits - - SQUASH??? - - doc: document autocorrect API - - parseopt: add tests for subcommand autocorrection - - parseopt: enable subcommand autocorrection for git-remote and git-notes - - parseopt: autocorrect mistyped subcommands - - autocorrect: provide config resolution API - - autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT - - autocorrect: use mode and delay instead of magic numbers - - help: move tty check for autocorrection to autocorrect.c - - help: make autocorrect handling reusable - - parseopt: extract subcommand handling from parse_options_step() - - The parse-options library learned to auto-correct misspelled - subcommand names. - - Waiting for response(s) to review comment(s) for too long, stalled. - cf. - cf. - source: - - -* cl/conditional-config-on-worktree-path (2026-05-24) 2 commits - - config: add "worktree" and "worktree/i" includeIf conditions - - config: refactor include_by_gitdir() into include_by_path() - - The [includeIf "condition"] conditional inclusion facility for - configuration files has learned to use the location of worktree - in its condition. - - Waiting for response(s) to review comment(s) for too long, stalled. - cf. - source: <20260525-includeif-worktree-v5-0-1efe525d025a@black-desk.cn> - --------------------------------------------------- -[Cooking] * tb/repack-geometric-cruft (2026-06-28) 11 commits - SQUASH??? bare grep !??? @@ -281,22 +384,25 @@ Release tarballs are available at: - repack: extract `locate_existing_pack()` helper - repack: unconditionally exclude non-kept packs - Teach `git repack` to accept `--geometric` and `--cruft` - together. When both are given, the geometric repack rolls up non-cruft - packs as usual, while a separate cruft pack is written to collect - unreachable objects. + Teach `git repack` to accept `--geometric` and `--cruft` together. + When both are given, the geometric repack rolls up non-cruft packs as + usual, while a separate cruft pack is written to collect unreachable + objects. Expecting a reroll. - cf. + cf. source: * jk/reftable-leakfix (2026-06-28) 1 commit - - reftable: fix unlikely leak on API error + (merged to 'next' on 2026-07-05 at e224acf508) + + reftable: fix unlikely leak on API error - Leakfix. + A memory leak in the reftable_writer_new() initialization function has + been fixed by delaying the allocation of struct reftable_writer until + after input options are validated. - Will merge to 'next'. + Will merge to 'master'. cf. source: <20260628090314.GA661068@coredump.intra.peff.net> @@ -305,20 +411,24 @@ Release tarballs are available at: (merged to 'next' on 2026-06-29 at 2bf33c6a40) + t3420-rebase-autostash: don't try to grep non-existing files - Test fix. + A test checking interactions between git rebase --quit and + autostash in t3420-rebase-autostash.sh has been corrected to use + test_path_is_missing instead of ! grep on a file that shouldn't + exist in the conflicted state. Will merge to 'master'. source: <20211010172809.1472914-1-szeder.dev@gmail.com> * ad/gpg-strip-cr-before-lf (2026-06-24) 1 commit - - gpg-interface: fix strip_cr_before_lf to only remove CR before LF + (merged to 'next' on 2026-07-05 at 25ae7a9822) + + gpg-interface: fix strip_cr_before_lf to only remove CR before LF The GPG and SSH signature parsing code has been corrected to strip carriage return characters only when they immediately precede line feeds, instead of unconditionally stripping all carriage returns. - Will merge to 'next'. + Will merge to 'master'. source: <20260624093618.17456-1-antonio.destefani08@gmail.com> @@ -330,9 +440,9 @@ Release tarballs are available at: - object-file: propagate files transaction errors - object-file: rename files transaction prepare function - git-receive-pack has been refactored to use ODB transaction - interfaces instead of directly managing tmp_objdir for staging - incoming objects, bringing it closer to being ODB backend agnostic. + git-receive-pack has been refactored to use ODB transaction interfaces + instead of directly managing tmp_objdir for staging incoming objects, + bringing it closer to being ODB backend agnostic. Expecting a reroll. cf. @@ -341,7 +451,7 @@ Release tarballs are available at: source: <20260624041920.2601961-1-jltobler@gmail.com> -* ps/odb-drop-whence (2026-06-24) 7 commits +* ps/odb-drop-whence (2026-07-02) 7 commits - odb: document object info fields - odb: drop `whence` field from object info - treewide: convert users of `whence` to the new source field @@ -355,13 +465,12 @@ Release tarballs are available at: refactoring backend-specific object information retrieval into an opt-in struct object_info_source structure. - Will merge to 'next'? - cf. + Will merge to 'next'. cf. - source: <20260624-b4-pks-odb-drop-whence-v1-0-8d1877b790ac@pks.im> + source: <20260702-b4-pks-odb-drop-whence-v2-0-b0af7468ad95@pks.im> -* ps/reftable-hardening (2026-06-29) 12 commits +* ps/reftable-hardening (2026-07-03) 12 commits - reftable/table: fix OOB read on truncated table - reftable/table: fix NULL pointer access when seeking to bogus offsets - reftable/block: fix OOB read with bogus restart offset @@ -380,38 +489,40 @@ Release tarballs are available at: during parsing. Needs review. - source: <20260629-pks-reftable-hardening-v2-0-b0228e7d908d@pks.im> + source: <20260703-pks-reftable-hardening-v3-0-b87c555b9920@pks.im> * hn/branch-push-slip-advice (2026-06-27) 2 commits - - push: suggest for a slash slip - - branch: suggest / on upstream slip + (merged to 'next' on 2026-07-05 at 9620e1e4b2) + + push: suggest for a slash slip + + branch: suggest / on upstream slip - "git push origin/main" and "git branch origin main" could both be - an obvious typo, in which case offer the obvious typofix. + When 'git push origin/main' or 'git branch origin main' is run, the + tool recognizes it as a potential typo and offers a typofix. - Will merge to 'next'. + Will merge to 'master'. cf. source: * jc/history-message-prep-fix (2026-06-29) 1 commit - - history: streamline message preparation and plug file stream leak + (merged to 'next' on 2026-07-05 at c42f45431d) + + history: streamline message preparation and plug file stream leak Code clean-up with leakfix for a write file stream. - Will merge to 'next'? + Will merge to 'master'. cf. source: -* ty/migrate-excludes-file (2026-06-30) 1 commit +* ty/migrate-excludes-file (2026-07-01) 1 commit - environment: move excludes_file into repo_config_values Move excludes_file global variable into per-repository structure. Needs review. - source: <20260630164401.2906091-2-cat@malon.dev> + source: <20260701180813.776173-2-cat@malon.dev> * kk/merge-base-exhaustion (2026-07-01) 10 commits @@ -430,8 +541,8 @@ 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. - passes t6600 standalone, breaks when merged to 'seen'. + Expecting a reroll. + cf. source: @@ -441,7 +552,8 @@ Release tarballs are available at: The USE_NSEC build knob, which enables support for sub-second file timestamp resolution, has been wired up to the Meson build system. - Waiting for response(s) to review comment(s). + Expecting a reroll. + cf. cf. cf. source: @@ -476,15 +588,16 @@ Release tarballs are available at: directory to clean up the top-level directory and clearly separate library code. - Waiting for response(s) to review comment(s). - cf. + Comments? + cf. source: <20260701-pks-libgit-in-subdir-v3-0-5e4860056094@pks.im> * ps/odb-generalize-prepare (2026-06-22) 3 commits - - odb: introduce `odb_prepare()` - - odb/source: generalize `reprepare()` callback - - Merge branch 'ps/odb-source-packed' into ps/odb-generalize-prepare + (merged to 'next' on 2026-07-05 at e33360c151) + + odb: introduce `odb_prepare()` + + odb/source: generalize `reprepare()` callback + + Merge branch 'ps/odb-source-packed' into ps/odb-generalize-prepare (this branch uses ps/odb-source-packed.) The `reprepare()` callback for object database sources has been @@ -492,7 +605,7 @@ Release tarballs are available at: flag, and a new `odb_prepare()` wrapper has been introduced to allow pre-opening object database sources. - Will merge to 'next'? + Will merge to 'master'. cf. <87ik704f1j.fsf@emacs.iotcl.com> source: <20260622-b4-pks-odb-generalize-prepare-v1-0-d2a5c5d13144@pks.im> @@ -603,7 +716,7 @@ Release tarballs are available at: "update", and "rename" subcommands to create, delete, update, and rename references, respectively. - Will merge to 'next'? + Will merge to 'next'. cf. source: <20260630-pks-refs-writing-subcommands-v3-0-deb04de1ecef@pks.im> @@ -646,9 +759,9 @@ Release tarballs are available at: (merged to 'next' on 2026-06-22 at f7e984a003) + log: improve --follow following renames for non-linear history - "git log --follow" has been updated to handle non-linear history, in - which the path being tracked gets renamed differently in multiple - history lines, better. + "git log --follow" has been updated to better handle non-linear + history, in which the path being tracked gets renamed differently in + multiple history lines. Will merge to 'master'. source: @@ -677,11 +790,11 @@ Release tarballs are available at: exclusion logic incorrectly skipped packs from layers above the selected base, breaking reachability closure for bitmaps. - Needs review. + Comments? source: -* mm/test-grep-lint (2026-06-12) 6 commits +* mm/test-grep-lint (2026-07-02) 6 commits - t: add greplint to detect bare grep assertions - t: convert grep assertions to test_grep - t: fix Lexer line count for $() inside double-quoted strings @@ -689,31 +802,41 @@ Release tarballs are available at: - t: fix grep assertions missing file arguments - t/README: document test_grep helper - Waiting for response(s) to review comment(s). - cf. + The test suite has been updated to use the test_grep helper instead + of bare grep for test assertions, allowing file contents to be + printed on failure for easier debugging. A new greplint linter has + been introduced to detect and prevent new bare grep assertions from + being added to the test suite. + + Will merge to 'next'. cf. - source: + source: * rs/cat-file-default-format-optim (2026-06-14) 1 commit (merged to 'next' on 2026-06-17 at 43ed8b3969) + cat-file: speed up default format + The default format path of git cat-file --batch has been optimized + to use strbuf_add_oid_hex() and strbuf_add_uint() instead of + strbuf_addf(), yielding a noticeable speedup. + Will merge to 'master'. cf. <20260615165326.GA91269@coredump.intra.peff.net> source: <5a7ed929-6fe0-496c-83bd-65dee57c2241@web.de> * kk/prio-queue-get-put-fusion (2026-06-08) 2 commits - - prio-queue: fold lazy_queue into prio_queue for automatic get+put fusion - - prio-queue: rename .nr to .nr_ and add accessor helpers + (merged to 'next' on 2026-07-05 at 935d102244) + + prio-queue: fold lazy_queue into prio_queue for automatic get+put fusion + + prio-queue: rename .nr to .nr_ and add accessor helpers The lazy priority queue optimization pattern (deferring actual removal in prio_queue_get() to allow get+put fusion) has been folded directly into prio_queue itself, speeding up commit traversal workflows and simplifying callers. - Will merge to 'next'? + Will merge to 'master'. cf. source: @@ -734,21 +857,18 @@ Release tarballs are available at: source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com> -* tc/replay-linearize (2026-06-25) 3 commits +* tc/replay-linearize (2026-07-02) 3 commits - replay: offer an option to linearize the commit topology - - replay: better explain how pick_regular_commit() picks a base - - replay: add helper to put entry into mapped_commits + - replay: resolve the replay base outside pick_regular_commit() + - replay: add helper to put entry into replayed_commits - git replay learns --linearize option to drop merge commits and - linearize the replayed history, mimicking git rebase + The git replay command has learned the --linearize option to drop + merge commits and linearize the replayed history, mimicking git rebase --no-rebase-merges. Waiting for response(s) to review comment(s). - cf. - cf. - cf. - cf. - source: <20260626-toon-git-replay-drop-merges-v5-0-5e120738b9d0@iotcl.com> + cf. + source: <20260702-toon-git-replay-drop-merges-v6-0-78a07cdd0382@iotcl.com> * ps/setup-drop-global-state (2026-06-10) 8 commits @@ -888,6 +1008,7 @@ Release tarballs are available at: Waiting for response(s) to review comment(s). cf. + cf. source: <20260701-ps-eric-work-rebase-v15-0-c88a43b63917@gmail.com> @@ -915,7 +1036,7 @@ Release tarballs are available at: underlying real branches, fixing failures when branch aliases (like a default branch rename) are present. - Waiting for response(s) to review comment(s). + Waiting for response(s) to review comment(s) for too long, stalled. cf. source: @@ -929,8 +1050,8 @@ Release tarballs are available at: - xdiff: support external hunks via xpparam_t A new `diff..process` configuration has been introduced to - allow a long-running external process to act as a hunk provider to - allows external tools to control which lines Git considers changed + allow a long-running external process to act as a hunk provider, + allowing external tools to control which lines Git considers changed while leaving all output formatting (word diff, color, blame, etc.) to Git's standard pipeline. @@ -1017,7 +1138,9 @@ Release tarballs are available at: subcommand to remove a commit and replay its descendants onto its parent. - Needs review. + Will merge to 'next'. + cf. + cf. source: <20260701-b4-pks-history-drop-v8-0-19b5cdf1facd@pks.im> @@ -1046,7 +1169,10 @@ Release tarballs are available at: - doc: interpret-trailers: replace “lines” with “metadata” - doc: interpret-trailers: stop fixating on RFC 822 - Documentation updates. + 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. Expecting a reroll. cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com> @@ -1057,7 +1183,7 @@ Release tarballs are available at: - completion: hide dotfiles by default for path completion - completion: hide dotfiles for selected path completion - The path completion for commands like `git rm` and `git mv`, is being + The path completion for commands like `git rm` and `git mv` is being updated to hide dotfiles by default, unless the user explicitly starts the path with a dot, matching standard shell-completion behavior. @@ -1070,10 +1196,10 @@ Release tarballs are available at: - commit: allow -c/-C for all kinds of --fixup - commit: allow -m/-F for all kinds of --fixup - The -m/-F/-c/-C options to supply commit log message from outside the - editor are now supported for all "git commit --fixup" variations. + The -m/-F/-c/-C options to supply a commit log message from outside + the editor are now supported for all "git commit --fixup" variations. - Needs review. + Comments? source: @@ -1086,7 +1212,7 @@ Release tarballs are available at: Doc update for "git replay" to actually refer to its configuration variables. - Needs review. + Comments? source: @@ -1149,7 +1275,7 @@ Release tarballs are available at: "git checkout --track=..." learned to optionally fetch the branch from the remote the new branch will work with. - Waiting for response(s) to review comment(s). + Comments? cf. <12998c3a-ff69-4a98-9ed6-18aa0224e75e@gmail.com> cf. source: @@ -1184,9 +1310,9 @@ Release tarballs are available at: source: -* ps/shift-root-in-graph (2026-06-20) 3 commits +* ps/shift-root-in-graph (2026-07-04) 3 commits - graph: indent visual root in graph - - revision: add peek functions for lookahead + - graph: add a 2 commit buffer for lookahead - lib-log-graph: move check_graph function "git log --graph" has been modified to visually distinguish @@ -1195,9 +1321,29 @@ Release tarballs are available at: appearing falsely related to unrelated commits rendered immediately above them. - Expecting a reroll. - The peek-ahead approach may need to be scratched. - cf. - cf. - cf. - source: <20260620-ps-pre-commit-indent-v6-0-cdc6d8fd5fbc@gmail.com> + Needs review. + source: <20260704-ps-pre-commit-indent-v7-0-a94706cc8376@gmail.com> + +-------------------------------------------------- +[Discarded] + +* js/parseopt-subcommand-autocorrection (2026-04-27) 11 commits + . SQUASH??? + . doc: document autocorrect API + . parseopt: add tests for subcommand autocorrection + . parseopt: enable subcommand autocorrection for git-remote and git-notes + . parseopt: autocorrect mistyped subcommands + . autocorrect: provide config resolution API + . autocorrect: rename AUTOCORRECT_SHOW to AUTOCORRECT_HINT + . autocorrect: use mode and delay instead of magic numbers + . help: move tty check for autocorrection to autocorrect.c + . help: make autocorrect handling reusable + . parseopt: extract subcommand handling from parse_options_step() + + The parse-options library learned to auto-correct misspelled + subcommand names. + + Discarded after waiting for response(s) to review comment(s) for too long. + cf. + cf. + source: