Here are the topics that have been cooking in my tree. Commits prefixed with '+' are in 'next' (being in 'next' is a sign that a topic is stable enough to be used and is a candidate to be in a future release). Commits prefixed with '-' are only in 'seen', and aren't considered "accepted" at all. They may be annotated with a URL to a message that raises issues but they are by no means exhaustive. 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).
After merging another batch from 'next' down to 'master' in a few days, I'll rewind the tip of 'next' and start merging accumulated topics to 'next' again.
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 repositories have only a subset of branches.
With maint, master, next, seen, todo:
git://git.kernel.org/pub/scm/git/git.git/ git://repo.or.cz/alt-git.git/ https://kernel.googlesource.com/pub/scm/git/git/ https://github.com/git/git/ https://gitlab.com/git-scm/git/
With all the integration branches and topics broken out:
https://github.com/gitster/git/
Even though the preformatted documentation in HTML and man format are not sources, they are published in these repositories for convenience (replace "htmldocs" with "manpages" for the manual pages):
git://git.kernel.org/pub/scm/git/git-htmldocs.git/ https://github.com/gitster/git-htmldocs.git/
Release tarballs are available at:
https://www.kernel.org/pub/software/scm/git/
-------------------------------------------------- [Graduated to 'master']
* hd/diff-no-index-reverse-fix (2026-09-18) 1 commit (merged to 'next' on 2026-09-25 at c6cd42c625) + diff --no-index: fix -R with file/directory conflicts
A bug in git diff --no-index that mishandled reverse (-R) output when conflicts existed between a file and a directory has been fixed.
Graduated to 'master'. cf. <9b97c14b-1d25-409b-a72c-d8caf298bf87@web.de> cf. <0c82d50e-f2c0-4db6-ade8-7a403cac73da@intel.com> source: <pull.2232.git.1789715946888.gitgitgadget@gmail.com>
* je/doc-asciidoc-xrefs (2026-09-24) 1 commit (merged to 'next' on 2026-09-27 at 278ef7bb0b) + doc: add more AsciiDoc cross-references
Various documentation files have been updated to use explicit '<<TARGET,TARGET>>' AsciiDoc cross-references instead of plain text references. This improves rendering on the web and avoids broken links when manual pages are included into other pages.
Graduated to 'master'. cf. <20260925082723.GB1493716@coredump.intra.peff.net> source: <pull.2416.v2.git.git.1790297546771.gitgitgadget@gmail.com>
* jk/name-rev-update-hash-descriptions (2026-09-27) 1 commit (merged to 'next' on 2026-09-30 at 66cac248cb) + name-rev: update hash descriptions
The documentation for 'git-name-rev' has been updated to refer to object IDs instead of SHA-1, to more accurately reflect that the active hash algorithm is used.
Graduated to 'master'. cf. <armZ28MWl9dTHDz6@fruit.crustytoothpaste.net> cf. <xmqqbj9iqp27.fsf@gitster.g> source: <20260927194602.86750-1-jyotishkumar725015@gmail.com>
* jk/parse-revision-opt-fixes (2026-09-25) 2 commits (merged to 'next' on 2026-09-30 at 705a098926) + revision: handle argv movement in parse_revision_opt() + revision: avoid reporting known options as unknown on error
The command-line parsing of revision options has been updated to properly distinguish between malformed and unknown options, and to correctly report the name of unknown options after they have been moved during the option parsing process.
Graduated to 'master'. cf. <xmqqbj9lt1gn.fsf@gitster.g> source: <20260925203359.GA1506705@coredump.intra.peff.net>
* jk/pull-null-merge-head (2026-09-21) 1 commit (merged to 'next' on 2026-09-25 at c12a88db84) + pull: avoid segfault when commit lookup fails
'git pull' has been taught to fail more gracefully instead of segfaulting when lookup_commit_reference() fails on unparseable objects.
Graduated to 'master'. cf. <xmqqld92xixa.fsf@gitster.g> source: <pull.2223.v2.git.1790001166646.gitgitgadget@gmail.com>
* js/ci-debian-12-http2-workaround (2026-09-24) 1 commit (merged to 'next' on 2026-09-27 at 83e6342dc0) + ci: work around Debian 12's HTTP/2 authentication failures
The Debian 12 CI job has been updated to skip a half-auth clone test that occasionally fails due to a bug in the packaged curl version handling early HTTP/2 responses.
Graduated to 'master'. cf. <20260924232214.GA765100@coredump.intra.peff.net> source: <pull.2236.v2.git.1790283229626.gitgitgadget@gmail.com>
* js/coverity-fixes (2026-09-17) 7 commits (merged to 'next' on 2026-09-22 at bb99d71d99) + test-read-midx: check midx_fill_entry() result + oss-fuzz: handle reftable iterator initialization failures + t/unit-tests: check reftable iterator initialization + rerere: do not record failed conflict resolution data + midx: validate incremental MIDX pack IDs + gpg-interface: make signature-prefix matching length-aware + wrapper: guard writev_in_full() against signed overflow
Assorted fixes for code paths that are not careful with boundary and error conditions.
Graduated to 'master'. cf. <xmqq5x03u0xz.fsf@gitster.g> cf. <xmqq1parorz4.fsf@gitster.g> source: <pull.2231.git.1789667556.gitgitgadget@gmail.com>
* jt/object-file-batch-fsync-fix (2026-09-23) 2 commits (merged to 'next' on 2026-09-27 at 8fbe62ae27) + object-file: flush transaction packfile before migrating objects + object-file: lift ODB reprepare out of packfile flush
When 'core.fsyncMethod' is set to 'batch', the ODB transaction failed to properly flush large blob packfiles residing in the temporary directory before migrating the directory's contents to the main object store. The execution sequence has been corrected by performing the packfile flush before the temporary directory migration, averting failure.
Graduated to 'master'. cf. <arS8oikUroITi2d2@pks.im> source: <20260923220315.569424-1-jltobler@gmail.com>
* kn/ci-unit-tests-on-windows-fix (2026-09-24) 1 commit (merged to 'next' on 2026-09-27 at 2d6f538729) + ci: fix unit tests not running on windows
The CI script has been updated to check for one-indexed slice numbers when deciding to run unit tests on Windows, mirroring the behaviour in the modern GitHub and GitLab workflows.
Graduated to 'master'. cf. <arUwKpju14AVHOIy@pks.im> source: <20260924-785-unit-tests-don-t-run-on-windows-v1-1-223cd2e4df43@gmail.com>
* of/commit-reach-repo-awareness (2026-09-16) 1 commit (merged to 'next' on 2026-09-22 at 94fab2d79f) + commit-reach: parse commits in the given repository
The can_all_from_reach() and can_all_from_reach_with_flag() functions have been updated to accept a repository context, preventing bugs where submodule merging incorrectly reads from the superproject's commit-graph.
Graduated to 'master'. source: <20260916134632.1424829-1-orestisflo@gmail.com>
* ps/reflog-expiry-fix (2026-09-24) 1 commit (merged to 'next' on 2026-09-27 at afa9ef2166) + reflog: fix default expiry periods
The default expiry periods for both reachable and unreachable reflog entries have been corrected from a past regression that swapped them.
Graduated to 'master'. cf. <xmqqwlsa1p5d.fsf@gitster.g> source: <20260924175843.8383-2-pushkarkumarsingh1970@gmail.com>
* rr/upload-pack-swap-shallow-wanted-ref (2026-09-16) 1 commit (merged to 'next' on 2026-09-22 at af040867c8) + upload-pack: swap wanted-ref/shallow-info responses
The server-side protocol v2 response order for 'wanted-refs' and 'shallow-info' has been swapped to match the client's expectation, fixing a fetch failure when the server has 'uploadpack.allowRefInWant' enabled and the client performs a shallow fetch.
Graduated to 'master'. source: <20260916203221.5265-1-royceremer@gmail.com>
* rs/dir-skip-nested-repo-fix (2026-09-26) 1 commit (merged to 'next' on 2026-09-30 at b33b5cd0e7) + dir: skip excluded directory with nested repo on prefix match
The directory traversal logic has been updated to correctly evaluate pathspecs for ignored directories containing nested repositories, and has been fortified to gracefully handle null pathspecs during checkout operations.
Graduated to 'master'. source: <1c6ac703-a5a5-421b-bf0b-640bc1a0932f@web.de>
* sg/precompile-git-compat-util (2026-09-14) 4 commits (merged to 'next' on 2026-09-21 at 68acceee5b) + Makefile: precompile "git-compat-util.h" + Makefile: reintroduce REFTABLE_OBJS + cmake: remove any "$(*_OBJS)" variables when parsing Makefile for sources + Makefile: remove XDIFF_OBJS initialization
The 'Makefile' has been taught to precompile 'git-compat-util.h' to speed up overall compilation, while excluding sources that do not include the compatibility header.
Graduated to 'master'. source: <20260915060952.569535-1-szeder.dev@gmail.com>
* tb/rerere-lock-grace (2026-09-17) 3 commits (merged to 'next' on 2026-09-27 at e5c9d4eea7) + sequencer: disable auto maintenance in spawned commands + rebase, cherry-pick, revert: run auto maintenance when done + config: add git_config_append_parameter()
The sequencer machinery (used by 'git rebase', 'git cherry-pick', and 'git revert') has been updated to defer automatic maintenance tasks until the end of the operation, preventing nested 'git commit', 'git merge', and 'exec' commands from triggering GC operations that could contend for locks or delete open packs while the sequence is in progress.
Graduated to 'master'. cf. <c67ed25c-e54b-4289-bfb4-67f86beb6df6@gmail.com> source: <pull.2217.v5.git.1789670534.gitgitgadget@gmail.com>
* yn/worktree-repair-completion (2026-09-14) 1 commit (merged to 'next' on 2026-09-27 at 7ddcdd6fbb) + completion: complete 'git worktree repair'
The command-line completion script (in 'contrib/') has been taught to complete the 'repair' subcommand for 'git worktree'.
Graduated to 'master'. cf. <arPMLIi7FL52CVJk@pks.im> source: <pull.2218.v2.git.1789414536838.gitgitgadget@gmail.com>
* yt/winansi-die-lasterr-fix (2026-09-21) 1 commit (merged to 'next' on 2026-09-27 at c619c26b80) + compat/winansi: fix die_lasterr() argument formatting
The error reporting machinery in the WinANSI compatibility layer has been simplified to pass the exact Windows error code and correctly format arguments for fatal errors.
Graduated to 'master'. cf. <3e2befed-355b-4a82-af82-25dedaee0565@kdbg.org> source: <20260921234756.77997-1-yqtian668@gmail.com>
-------------------------------------------------- [New Topics]
* kz/doc-user-manual-typo (2026-10-01) 1 commit - doc: fix typo in user manual
A grammatically incorrect capitalization in user-manual.adoc has been corrected.
Will merge to 'next'. cf. <ar-Uk3BJyKTdQB4N@pks.im> source: <20261001181412.846-1-kaliugov@gmail.com>
* ps/odb-files-alternates (2026-10-02) 13 commits - odb/source: drop `read_alternates` callback - odb/source-files: move alternates into the backend - odb/source-files: extract reading alternates - odb/source: make `will_destroy` an implementation detail - tmp-objdir: replace primary source at creation time - tmp-objdir: manage quarantine as an object directory - tmp-objdir: absorb logic to set and restore primary sources - odb/source-files: add the ability to have multiple object dirs - odb: refactor `odb_find_source()` to yield dirs - odb: refactor `odb_for_each_alternate()` to yield dirs - odb/source-files: introduce `struct odb_files_dir` - commit-graph: stop depending on `struct odb_source` - commit-graph: require resolved packfile paths for `stdin_packs`
The odb_source API has been refactored to make alternates an implementation detail of the files backend instead of managing them at the core object database layer.
Waiting for response. cf. <CAOLa=ZS_S3bYXEufor7AgXpX76NwtV4NJdGRO57-bpSkYZrzvw@mail.gmail.com> cf. <CAOLa=ZSNHWFw5Vj_5qg16ipp1QA0pDcV8h=hOA=ma4hy6F_LcQ@mail.gmail.com> source: <20261002-pks-odb-move-alternates-v1-0-8a63507b88c4@pks.im>
* ps/packfile-stale-delta-base-cache-fix (2026-10-02) 2 commits - packfile: fix corruption due to stale delta base cache entries - packfile: move around `close_pack()`
Closing a packfile did not evict the entries belonging to it from the delta base cache, which could lead to data corruption when a newly allocated packfile happened to reuse the same memory address. The cache eviction logic has been updated to remove these stale entries upon closing a pack
Expecting a reroll. cf. <asAH9ma00tb4r-ks@pks.im> source: <20261002-pks-packfile-stale-delta-base-cache-v1-0-7592a3e31ae0@pks.im>
* ps/parse-options-subcommand-groups (2026-10-02) 4 commits - builtin/refs: introduce subcommand groups - parse-options: allow grouping subcommands - parse-options: extract functions to print single option - parse-options: fix completion format when first option is skipped
The parse-options API has been updated to support grouping subcommands, and the 'git refs' command has been updated to use this new feature to categorize its subcommands in its help output.
Will merge to 'next'. source: <20261002-b4-pks-parse-options-subcommand-groups-v2-0-3299bee52dea@pks.im>
* ss/history-sign-rewrites (2026-10-03) 2 commits - history: sign rewritten commits - replay: allow callers to sign commits
The git history command and its subcommands have been updated to honor the commit.gpgSign configuration variable and accept the --gpg-sign and --no-gpg-sign command-line options, ensuring both rewritten commits and their replayed descendants are cryptographically signed by the committer.
Waiting for review. cf. <aroX94CD_kOyLnuW@pks.im> cf. <f86f6cfc-56b4-4358-a9b5-95630c6504ed@app.fastmail.com> source: <20261003134058.23494-1-git@5ouma.me>
* kn/packed-refs-verbatim-write (2026-10-02) 1 commit - packed-refs: use `fwrite()` when passing refs verbatim
The routine that rewrites the packed-refs file has been optimized to directly pass unmodified reference records verbatim to the output via fwrite(3p), instead of redundantly re-formatting them with fprintf(3p).
Needs review. cf. <87zewsf13b.fsf@dev.null.iotcl.com.invalid> source: <20261002-kn-speedup-packed-refs-v2-1-2ae75772ebc1@gmail.com>
* tz/doc-override-less-env (2026-10-02) 1 commit - doc: add more examples of overriding LESS in core.pager
The documentation for core.pager has been updated to provide examples of overriding the LESS environment variable for custom pagers by prefixing the pager command in the configuration.
Needs review. source: <20261002234203.4064847-1-tmz@pobox.com>
* je/doc-section-7-synopsis (2026-10-03) 1 commit - doc: don't require a SYNOPSIS in section 7
he requirement for a 'SYNOPSIS' section in section 7 manual pages has been relaxed by updating the linter script, and dummy 'SYNOPSIS' sections from existing section 7 documentation have been removed to improve the rendered output
Waiting for response. cf. <xmqqece5vc48.fsf@gitster.g> source: <pull.2246.v2.git.1791033057232.gitgitgadget@gmail.com>
* pw/stash-all-parseopt-fix (2026-10-04) 1 commit - stash: use named constant when parsing "--all"
Fix definition for the "--all" option to use symbolic constant in the options[] array passed to parse_options API.
Will merge to 'next'? cf. <xmqqzewsogxs.fsf@gitster.g> source: <06b58ae0a1d81f4d1518eadecc3385072a72155a.1791108351.git.phillip.wood@dunelm.org.uk>
* ch/fetch-followremotehead-lazy-validation (2026-10-04) 1 commit - fetch.c: defer fetch.followRemoteHEAD validation
Validation of the 'fetch.followRemoteHEAD' configuration variable has been deferred to when it is actually used, preventing irrelevant warnings during 'git fetch' invocations that do not consult it.
Needs review. cf. <DLWS9R3ZM2Z0.MVT71MWE19LN@lfurio.us> source: <20261004201428.5210-1-colinlewishinton@gmail.com>
* ik/fsmonitor-untracked-cache-trivial-response (2026-10-04) 1 commit - fsmonitor: check the untracked cache after a trivial response
The index writer has been taught to check the untracked cache against the filesystem when an FSMonitor trivial response is received, preventing commands like 'git add' from saving a new token while leaving stale untracked cache entries intact.
Needs review. source: <pull.2247.git.1791127155614.gitgitgadget@gmail.com>
* ps/repo-ref-storage-format-fix (2026-10-05) 1 commit - builtin/repo: rename "references.format" to "references.storageFormat"
The output of 'git repo info' has been updated to use 'references.storageFormat' instead of 'references.format' for consistency with recent ref-storage-format terminology updates.
Needs review. cf. <CAOLa=ZTNNY_XuixqZ96TK0zFfDpWvxSupxVGOnH1VGXK4KF_0w@mail.gmail.com> source: <20261005-pks-repo-ref-storage-format-v1-1-819a181572a9@pks.im>
* pw/stash-change-check-only-once (2026-10-05) 2 commits - stash push: remove duplicate changes detection - stash create: remove duplicate changes detection
"git stash create/push" checked if there are checks that need to be saved twice, which has been reduced to just once.
Needs review. source: <cover.1791218125.git.phillip.wood@dunelm.org.uk>
-------------------------------------------------- [Cooking]
* jk/http-curl-strip-creds (2026-09-27) 1 commit (merged to 'next' on 2026-10-02 at 703b7cfb1a) + http: handle curl stripping creds from effective url
The HTTP transport has been updated to handle changes in recent curl versions that strip credentials from the effective URL, preventing unnecessary credential prompts during redirects.
Will merge to 'master'. cf. <xmqqo6dho1xj.fsf@gitster.g> cf. <artP42iEIYeQxh4C@pks.im> source: <20260928040149.GA498186@coredump.intra.peff.net>
* js/p5551-fetch-rescan-fix (2026-09-26) 1 commit (merged to 'next' on 2026-10-02 at 3b9395613a) + p5551: fix repeated runs with update-ref --no-deref
The performance test for `git fetch` pack-dir rescans has been updated to use the `--no-deref` option when cleaning up remote-tracking branches. This prevents `git update-ref` from failing with a multiple updates error when both a symref and its target are deleted in the same transaction.
Will merge to 'master'. cf. <20260928040511.GA498426@coredump.intra.peff.net> source: <20260926180648.60770-1-jon@jonsimons.org>
* kh/doc-trailers-cmd-examples (2026-10-03) 1 commit - doc: interpret-trailers: fix cmd examples
The documentation for 'git interpret-trailers' has been updated to fix the grammatical errors in the descriptions of command examples.
Will merge to 'next'? cf. <xmqq1pa5v44a.fsf@gitster.g> source: <V2_doc_trailers_cmd_examples.d49@m5gid.xyz>
* dm/libsecret-explicit-load (2026-09-27) 1 commit - credential/libsecret: load secrets explicitly
The 'libsecret' credential helper has been updated to explicitly load secrets instead of relying on the search flag, preventing assertion failures when items are concurrently deleted or locked.
Needs review. source: <pull.2372.v2.git.git.1790549181518.gitgitgadget@gmail.com>
* hn/ci-leak-sanitizer-annotations (2026-10-03) 2 commits - ci: point test failures and fixed known breakages at their file and line - ci: annotate leaks and stop a leak-sanitizer script at its first failure
CI on GitHub Actions gets a better annotation experience. Leak test scripts are stopped at their first failure with --immediate to prevent flooding the log, and failures are correctly annotated with their file and line number.
Waiting for response. cf. <ea988ec0-ef3d-4250-a0d6-ffdf3794b9cf@gmail.com> cf. <c991fe7d-6230-4600-a038-b051993e0e2d@gmail.com> source: <pull.2419.v5.git.git.1791015117.gitgitgadget@gmail.com>
* mg/doc-remote-set-head (2026-09-29) 1 commit - doc: remote: say that it only affects the local repository
The documentation for 'git remote set-head' has been updated to clarify that it only modifies the local repository's remote-tracking symbolic reference, and does not alter the target remote repository's own 'HEAD'.
Will merge to 'next'. cf. <xmqqld8khviu.fsf@gitster.g> source: <20260929120010.840402-1-matthias.goergens@gmail.com>
* pm/replay-add-signing-support (2026-09-25) 2 commits . replay: add the -S option . replay: handle failure to create commits
The experimental 'git replay' command has been taught to GPG-sign commits, fixing an existing limitation and plugging a bug where intermediate commit creation failures were silently ignored.
Waiting for response. cf. <xmqqse2nvltp.fsf@gitster.g> cf. <aroaNcYqNIXcnQ-L@pks.im> cf. <aroaLu02NQ65Y2Ju@pks.im> source: <20260925205348.1210154-1-pmonette@google.com>
* tb/t5520-reflog-expire (2026-10-01) 1 commit - t5520: don't expire reflogs where it matters (this branch is used by dk/stash-apply-index-incore.)
The `t5520` test script has been updated to disable reflog expiration. This prevents test flakiness caused by the auto-maintenance reflog-expire task, which would otherwise immediately expire the test's reflogs due to them carrying hardcoded timestamps from 2005.
Will merge to 'next'. cf. <667a68a1-641f-46c4-a718-8dd81d5c219f@gmail.com> source: <pull.2243.v3.git.1790843056949.gitgitgadget@gmail.com>
* jk/xdiff-size_t (2026-09-30) 7 commits - merge-ll: report an error when reading external merge results fails - merge-ll: handle external driver status before reading result - merge-ll: use read_mmfile() to read external merge results - xdiff: NUL-terminate buffers read by read_mmfile() - xdiff: use size_t for buffer sizes - xdiff: replace mmbuffer_t with mmfile_t - xdiff: clean up read_mmfile() allocations on error
The internal diff and merge machinery has been updated to use standard size_t types rather than signed longs for buffer allocations and offsets, preventing subtle overflow issues on LLP64 architectures, and plugging uninitialized memory leaks along error paths.
Will merge to 'next'. cf. <xmqqld8h77jo.fsf@gitster.g> cf. <ar5dDe02hgodgOHS@pks.im> source: <20260930234348.GA1340390@coredump.intra.peff.net>
* ps/reftable-reflog-timezone (2026-09-30) 3 commits - refs/reftable: fix on-disk representation of reflog timezones - t/helper: fix segfault in "dump-reftable -t" - date: add helpers to convert between "+HHMM" timezones and minutes
The internal representation of timezones in the reflog for the reftable format has been fixed to match the specification, which dictates an offset in minutes rather than the parsed "+HHMM" integer representation.
Will merge to 'next'. cf. <CAOLa=ZRVt=e3MqjLY=UkitfSg_YjpsfFjeDsEmqJQm-5YhopxA@mail.gmail.com> cf. <xmqq33up73dm.fsf@gitster.g> source: <20261001-pks-reftables-fix-timezone-format-v2-0-a4fd1f7cd21a@pks.im>
* je/doc-remove-gittutorial-2 (2026-10-05) 2 commits - doc: remove references to gittutorial-2 - doc: remove gittutorial-2
An outdated tutorial 'gittutorial-2' has been removed.
Waiting for response. cf. <xmqqa4orkhod.fsf@gitster.g> cf. <474cac93-0502-4a89-a8c4-3af66c1670bf@app.fastmail.com> source: <pull.2241.v2.git.1791231610.gitgitgadget@gmail.com>
* kz/doc-add-rm-typofix (2026-09-29) 1 commit (merged to 'next' on 2026-10-01 at 5f775693b6) + doc: remove unnecessary commas in git-add and git-rm documentation
Typofixes.
Will merge to 'master'. source: <20260929210618.147-1-kaliugov@gmail.com>
* pw/checkout-m-conflict-labels (2026-10-05) 2 commits - merge: remember conflict labels - remove_branch_state: convert boolean argument to flags
When recreating a merge conflict using 'git checkout -m', the original conflict labels (such as branch names) were lost and replaced with generic ones. The merge machinery has been updated to record the original labels in '.git/MERGE_LABELS', allowing 'git checkout -m' to restore them.
Needs review. cf. <xmqqbj98kt2d.fsf@gitster.g> cf. <xmqqld8cktlc.fsf@gitster.g> source: <cover.1791206658.git.phillip.wood@dunelm.org.uk>
* tb/repack-cruft-less-midx-corner-cases (2026-09-30) 8 commits - repack: include required packs in incremental MIDX writes - repack: defer allocating the append plan's write step - repack: track the preferred pack explicitly in MIDX write steps - repack: follow kept packs when omitting cruft from the MIDX - repack: use a sorted list for explicitly kept packs - repack: retain cruft packs in MIDXs after incremental repacks - pack-objects: ensure tree/tag closure with '--stdin-packs=follow' - pack-objects: introduce `stdin_packs_context` struct
Various corner cases in the cruft-less MIDX feature have been fixed to ensure reachability closure when writing reachability bitmaps, such as properly retaining cruft packs after incremental repacks or when containing kept packs.
Waiting for review. cf. <asBRayrg2RvzjevI@com-79390> cf. <asBUBwM2N8lQM602@com-79390> source: <cover.1790827875.git.me@ttaylorr.com>
* hn/object-name-push-short (2026-10-02) 1 commit
- object-name: accept @{p} as short for @{push} The @{upstream} notation had short-hand @{u} from the beginning,
and @{push} learned corresponding @{p} to match.Will merge to 'next'. cf. <xmqqse2o17np.fsf@gitster.g> source: <pull.2431.v2.git.git.1790927399813.gitgitgadget@gmail.com>
* gm/filter-branch-state-map-fix (2026-10-02) 1 commit - filter-branch: fix commit map init from state branch
The commit map populated from the state branch in 'git filter-branch' has been corrected to parse the map using the original-to-rewritten order.
Will merge to 'next'? cf. <asM_dqY2aSdplISU@pks.im> source: <20261003010128.256757-1-dev@grantmoyer.com>
* hn/fetch-refmap (2026-10-04) 4 commits . remote: default to --limited-fetch in a shallow repository . remote: add "git remote add --limited-fetch" . fetch: infer branches to fetch from a refmap-only remote . fetch: add remote.<name>.refmap
In a shallow repository, adding a new remote and fetching from it used to eagerly fetch all remote branches. The default refspec configured for remotes added in shallow repositories has been changed to rely on `remote.<name>.refmap` rather than `remote.<name>.fetch`, pulling only those remote branches tracked by local branches.
Expecting a reroll. cf. <CAHwyqnXSmQ_E4u6S_dTVHe82E6ErqQAHpOUDcUZBGyLRbne-Pg@mail.gmail.com> source: <pull.2412.v6.git.git.1791102684.gitgitgadget@gmail.com>
* bc/git-contacts-stdin (2026-10-01) 1 commit - git-contacts: allow inputting patch via stdin
The 'git-contacts' program (in contrib/) has been taught to read
patches from the standard input stream when an explicit dash ('-') is
passed in place of a file.Will merge to 'next'. cf. <xmqqo6dc17jb.fsf@gitster.g> source: <20261002-git-contacts-stdin-v6-1-49878e872d3d@brighamcampbell.com>
* dk/stash-apply-index-incore (2026-09-30) 4 commits - builtin/stash: merge index in-core - t3903: test failed "stash apply --index" - stash: prepare merge options earlier - builtin/stash: remove unused header - Merge branch 'tb/t5520-reflog-expire' into dk/stash-apply-index-incore (this branch uses tb/t5520-reflog-expire.)
The handling of index conflicts in 'git stash apply --index' has been optimized. Instead of relying on expensive external subprocesses using 'git diff-tree' and 'git apply', the index is now merged in-core using the merge-ort machinery, which fixes a concurrent lock file issue with autostash.
Will merge to 'next'. cf. <d3adb734-2b84-4d7b-b245-5407ee410eb4@gmail.com> source: <cover.1790803471.git.ben.knoble@gmail.com>
* am/p4-apply-commit-shell-injection-fix (2026-09-24) 1 commit - git-p4: avoid shell interpretation of commit ids in applyCommit
The `applyCommit()` function inside 'git-p4.py' has been updated to use direct subprocess pipes in order to avoid shell interpolation, plugging a potential shell injection vulnerability when processing commit IDs.
Needs review. source: <pull.2411.v2.git.git.1790238482045.gitgitgadget@gmail.com>
* mc/refs-rename-transaction (2026-09-23) 1 commit - refs: run copy and rename through transactions
Both reference rename and copy operations have been refactored to use the generic reference transaction API, ensuring that hooks observe the updates as unified logical operations rather than piece-meal internal deletions and additions.
Expecting a reroll. cf. <ar-N7SA63fN_xx9P@pks.im> cf. <CACQ=SRGSEsbNz3v3obd3JUOs2MrROnvuHkx1Dm51seCcv+12Cw@mail.gmail.com> source: <20260923133651.74120-1-maciej.ciemborowicz@gmail.com>
* td/ci-large-test-resources (2026-09-30) 2 commits - ci: use twice the CPU count on both providers - t4205: compare huge output without diff
CI resource exhaustion during test runs on GitHub Actions has been mitigated by switching a comparison of a huge output to use a binary comparison, and by capping the parallel jobs on Linux to the number of available CPUs.
Will merge to 'next'. cf. <ar0gon2VE0RlG_cC@pks.im> source: <20260930-ci-large-test-resources-v3-0-d65ac7c21b5f@gmail.com>
* hn/shallow-history-advice (2026-09-23) 1 commit - object-name: explain why <rev>~N fails in a shallow clone
Providing advice when ~<n> or ^<n> resolves to a commit whose parents are missing due to the repository being a shallow clone, instead of an unhelpful 'not a commit' error.
Needs review. source: <pull.2413.v3.git.git.1790189759802.gitgitgadget@gmail.com>
* mc/refs-hook-report-old-values (2026-09-24) 1 commit - refs: report old values to transaction hooks
The 'reference-transaction' hook has been updated to report the observed old object IDs and symref targets for unconditional ref updates and deletions, instead of reporting the null object ID.
Needs review. source: <2af3eeadd18806c5298d53072428656885cff89d.1790269745.git.maciej.ciemborowicz@gmail.com>
* td/ls-files-untracked-cache (2026-09-23) 3 commits - ls-files: use and update the untracked cache - dir: share untracked caches across output modes - dir: hash ignore files before appending newline
The git ls-files command has been optimized to reuse and populate the untracked cache for the working tree, and untracked cache implementations have been updated to share identical caches across -unormal and -uall outputs, avoiding redundant filesystem traversals.
Needs review. source: <20260923-ls-files-untracked-cache-v2-0-d7ee33476eb8@gmail.com>
* je/doc-merge-conflicts (2026-09-24) 7 commits . ignore conflict markers in gitmergeconflicts.adoc . git-pull: link to new merge conflicts guide . git-cherry-pick: link to new merge conflicts guide . git-revert: link to new merge conflicts guide . git-rebase: link to new merge conflicts guide . git-merge: link to new merge conflicts guide . Add new gitmergeconflicts man page
A new gitmergeconflicts(7) manual page has been added to provide a centralized guide for understanding and resolving merge conflicts. The documentation for commands that generate conflicts (like 'git merge', 'git rebase', and 'git cherry-pick') has been updated to link to this new guide instead of duplicating the instructions.
Expecting a reroll. cf. <5ba2088c-4919-465f-8892-4ed0685f81ea@app.fastmail.com> cf. <2f71028f-d58e-400f-a02e-7a25c032d889@app.fastmail.com> source: <pull.2237.git.1790261062.gitgitgadget@gmail.com>
* ps/meson-improvements (2026-09-24) 7 commits - gitlab-ci: fix hanging MSVC jobs - meson: update wrappers - meson: fix outdated completion helpers - meson: use precompiled headers for unit tests - meson: use precompiled headers for our test-helper - meson: don't recompile git-remote-http(1) multiple times for tests - meson: avoid recompiling HTTP sources several times
The build configurations for Meson have been optimized to avoid recompiling HTTP sources multiple times and to utilize precompiled headers for test-helpers and unit tests, reducing clean build times. Additionally, the shell completion tests and GitLab CI MSVC runner jobs have been fixed.
Will merge to 'next'. cf. <CAOLa=ZS8Exa_WkMLiFNspeYaKFf40eOM19ZgecC=yTnFEAhMzQ@mail.gmail.com> source: <20260924-pks-meson-improvements-v1-0-90b7f79f1c4e@pks.im>
* ps/setup-enforce-repo-passed-to-create-repository-has-no-state (2026-09-28) 7 commits - setup: enforce that passed-in repo does not carry relevant state - repository: adapt `repo_clear()` to fully reset the repository - builtin/clone: don't apply "core.sharedRepository" to leading dirs - builtin/init: move handling of "core.sharedRepository" into "setup.c" - builtin/init: refactor messy creation of leading directories - path: introduce `safe_create_leading_directories_no_share_const()` - path: drop useless `safe_create_leading_directories_1()` - Merge branch 'ps/odb-alternates-at-creation' into ps/setup-enforce-repo-passed-to-create-repository-has-no-state
The repository initialization sequence has been refactored to treat the repository object passed to create_repository() purely as an out-parameter.
Waiting for response. cf. <CAOLa=ZSX0e25wK5qQwznXN9rVM+WHn8631pkTEN9Zm-BrXfEsg@mail.gmail.com> cf. <xmqqtsn9mkog.fsf@gitster.g> source: <20260928-pks-create-repository-stateless-v2-0-a03612f703fa@pks.im>
* bs/runtime-prefix-obsd-getexecpath (2026-09-16) 1 commit - exec_cmd: RUNTIME_PREFIX on OpenBSD systems
Git on OpenBSD historically lacked an authoritative mechanism to resolve its executable path, as it doesn't support the KERN_PROC_PATHNAME sysctl. With OpenBSD 8.0 introducing getexecpath(3), it is now utilized to provide proper RUNTIME_PREFIX resolution instead of relying on argv[0] fallback.
Waiting for response. cf. <xmqq4ifio83d.fsf@gitster.g> source: <aqthQ3u4eW1wHCn7@humpty.home.comstyle.com>
* js/gitlab-ci-windows-rust (2026-09-24) 4 commits (merged to 'next' on 2026-10-01 at da393682d9) + ci(gitlab,windows): provide GNU Rust's host-linker support + ci(gitlab,windows): fix Rust setup for GitLab's MinGW build + ci(gitlab,windows): preserve exclusions during dependency setup + ci(gitlab,windows): provision GNU Rust for SDK-based MinGW builds
The Windows GitLab CI job has been updated to provision and use the GCC-targeting Rust toolchain for MinGW builds, fixing job failures caused by incomplete Rust setup and missing linker support.
Will merge to 'master'. cf. <aroOHoSXsemSlP-7@pks.im> source: <pull.2233.v2.git.1790280113.gitgitgadget@gmail.com>
* jc/advice-config-set-global (2026-09-14) 1 commit - advice: give cut-and-pasteable advice to squelch
The advice subsystem has been updated to suggest using the '--global' option when recommending a command snippet to squelch future advice messages, since global configuration is generally more appropriate for user-level preferences than per-repository settings.
Needs review. source: <xmqq33vb4hma.fsf@gitster.g>
* hn/range-diff-matched-only (2026-09-15) 1 commit - range-diff: add --matched-only to skip one-sided commits
The 'git range-diff' command has been augmented with a '--matched-only' option to skip commits that are only present on one side, allowing users to easily focus on only the commits that have been retained.
Needs review. source: <pull.2401.v3.git.git.1789458703432.gitgitgadget@gmail.com>
* tb/rerere-wait-for-merge-rr-lock (2026-10-02) 3 commits - rerere: go on at a conflict when the lock stays busy - rerere: add "gc --skip-locked" for auto maintenance - rerere: wait for MERGE_RR.lock before giving up
Instead of failing to record conflicts to be resolved immediately, wait while "rerere gc" is ongoing.
Needs review. source: <pull.2214.v6.git.1790939492.gitgitgadget@gmail.com>
* pp/midx-write-skip-empty (2026-09-08) 1 commit - midx-write: skip writes with no object entries
The `git multi-pack-index write` command has been updated to silently return success when there are no object entries to index. This avoids writing empty `multi-pack-index` layers, which previously caused subsequent incremental midx writes using the `--bitmap` option to fail when attempting to load the missing reverse index.
Waiting for review. cf. <aqAkfGZtLJ97nG1m@com-79390> cf. <CAOWp8q5UqPrJQosjypdcq=KX1TKcVenAOoZUYfTBDKbRUwazTw@mail.gmail.com> source: <eef33827000cf106544174ed000129c2989af1cd.1788851232.git.pia@pierre.co>
* jk/merge-ll-tempfile-cleanup (2026-09-28) 2 commits (merged to 'next' on 2026-10-01 at b39a4cc5d8) + merge-ll: use tempfile API for external driver files + merge-ll: catch close() errors when writing external tempfiles
The external merge driver in 'git merge' now uses the tempfile API to create its temporary files. This ensures that these temporaries are reliably cleaned up even when the merge driver or its parent Git process is terminated abruptly.
Will merge to 'master'. cf. <xmqqcxtwhufq.fsf@gitster.g> source: <20260929051200.GA1100000@coredump.intra.peff.net>
* mh/rust-crate-subdir (2026-09-16) 1 commit - move rust gitcore crate to a different subdirectory
The Rust code and its 'Cargo.toml' file have been moved from the top-level repository root and 'src/' directory into a dedicated 'rust/' subdirectory. This avoids confusing Cargo's packaging mechanism when the Git repository is included as a submodule in other Rust projects.
Waiting for review. cf. <yc4bgjoyxnm6o7q4gwols4d6zvdrq3ydw2c65wjdwof3hjyde6@2osv37jtuxx3> source: <20260917060415.2986259-1-mh@glandium.org>
* ta/command-list-guides-sync-lint (2026-09-10) 2 commits - lint-docs: check the guide list in command-list.txt - command-list.txt: add gitformat-loose(5) and gitpacking(7) - Merge branch 'kh/doc-datamodel' into ta/command-list-guides-sync-lint
A new linter test has been added to Documentation/lint-manpages.sh to ensure that all non-command manual pages (guides and developer interfaces) listed in Documentation/Makefile are present in command-list.txt, replacing an older comment that reminded developers to keep them in sync.
Needs review. cf. <xmqq1pb2s33e.fsf@gitster.g> source: <20260910194351.20809-1-taahol@utu.fi>
* ap/var-broken-down-idents (2026-09-26) 4 commits - var: add broken-out identity variables - var: accept more than one variable - var: add "-z" output mode - var: represent multi-valued variables with a string_list
The 'git var' command has been updated to output individual components of the author and committer identities, take multiple keys on the command-line, and support NUL-delimited output with the '-z' option.
Will merge to 'next'. cf. <33f24834-8e73-4230-bf0a-6809a85d9a86@gmail.com> source: <20260926162048.30853-1-andrewpleeter@gmail.com>
* tc/push-force-if-includes-fixes (2026-09-17) 3 commits - push: --force-if-includes should allow fast-forward - push: fix --force-if-includes non-branch advice - push: check pushed ref for --force-if-includes
The '--force-if-includes' protection for 'git push' has been updated to consult the reflog of the local branch being pushed, rather than incorrectly checking the reflog of a local branch that shares the name of the remote destination branch. The push advice for detached HEAD scenarios has also been adjusted to indicate that the remote ref cannot be verified locally. A regression that caused perfectly valid fast-forward pushes to be rejected when reflogs were expired has been fixed.
Needs review. source: <20260917224351.57171-1-tyler@tylercipriani.com>
* as/push-force-if-includes-no-reflog (2026-09-29) 1 commit (merged to 'next' on 2026-10-02 at d3acb90ef8) + push: fix --force-if-includes when remote-tracking ref has no reflog
The timestamp used for checking the reflog of a remote-tracking branch during 'git push --force-if-includes' was left uninitialized when the reflog was completely empty, which has been corrected.
Will merge to 'master'. cf. <xmqq8q4khuax.fsf@gitster.g> source: <20260929091319.86392-1-f@lex.la>
* cc/lazy-fetch-trusted-bit (2026-10-02) 5 commits - builtin/upload-pack: don't disable lazy fetching on trusted repo - promisor-remote: prevent infinite recursion when lazy fetching - upload-pack: read uploadpack.lazyFetchTrusted - setup: extract path_allowlist_apply() - promisor-remote: factor out lazy_fetch_objects()
A new 'uploadpack.lazyFetchTrusted' configuration variable has been introduced to allow 'upload-pack' to lazily fetch missing objects from configured promisor remotes when serving trusted repositories.
Needs review. source: <20261002082322.2682869-1-christian.couder@gmail.com>
* cc/early-scan-options (2026-09-23) 3 commits - fast-import: use early_scan_options() for --allow-unsafe-features - parse-options: add early_scan_options() - parse-options: add parse_options_takes_argument()
The process of parsing command-line options in commands that perform an early scan over their arguments (such as 'git bisect', 'git rev-parse', and 'git fast-import') has been unified using a new early-scan sub-API, which parses and skips known options taking separate values to prevent logic bugs.
Waiting for response. cf. <84f9d1c9-30b7-4d8b-82d6-9afd16d0ab08@gmail.com> source: <20260923080928.1534413-1-christian.couder@gmail.com>
* ec/commit-fixup-options (2026-09-22) 2 commits - commit: allow -c/-C for all kinds of --fixup - commit: allow -m/-F for all kinds of --fixup
Support for '-m', '-F', '-c', or '-C' options to supply a commit log message from outside the editor has been added for all 'git commit --fixup' variations.
Needs review. source: <cover.1790082176.git.erik@cervined.in>
* ll/doc-pushcert-if-asked (2026-08-29) 1 commit - doc: remote-helpers: option pushcert if-asked
The remote helper documentation for the 'pushcert' option has been updated to mention that it can also take 'if-asked', reflecting the existing implementation in the code.
Needs review. source: <20260829183659.29947-1-lorenz.leutgeb@posteo.eu>
* ws/squelch-svn-migrate (2026-08-27) 2 commits - Makefile: add NO_GIT_SVN knob to skip building/installing git-svn - git-svn: don't print v1-layout migration noise when there's nothing to migrate
Needs review. source: <20260827234345.1037130-1-wesleys@opperschaap.net>
* dw/config-read-both-global (2026-08-23) 3 commits - config: read global scope via config_sequence - config: let sequence require a successful file - path: use forward slashes in XDG config on Windows
The git config --global read operations have been updated to respect both $HOME/.gitconfig and $XDG_CONFIG_HOME/git/config, fixing an inconsistency where only the former was read when both configuration files are present.
Expecting a reroll. cf. <aqIvJhLLcCSnyaL4-delilahwu@linux.microsoft.com> source: <20260823-fix-config-list-global-home-and-xdg-v2-0-b29cc63f017b@microsoft.com>
* vv/branch-recurse-no-start-ref (2026-08-21) 2 commits - branch: allow recursion with no tracking name - branch: do not track a start point with no ref
The --recurse-submodules option in 'git branch' has been fixed to avoid a crash when the start point is not a reference (e.g., a raw object ID). The creation path now skips setting up tracking and properly forwards the absent tracking name to the submodule helper.
Needs review. source: <20260822-vv-branch-recurse-no-start-ref-v1-0-46dc140acaa8@zitro.id>
* ap/http-preserve-wwwauth-redirect (2026-08-19) 1 commit - http: preserve wwwauth_headers across redirects
When an HTTP request triggers a redirect and the target yields an authentication challenge, the WWW-Authenticate headers received during the redirect are now explicitly preserved across the credential URL update, fixing an issue where they were incorrectly cleared.
Needs review. source: <20260819-http-preserve-wwwauth-redirect-v2-1-4c61039432b0@nvidia.com>
* kh/format-rev-more-options (2026-08-18) 5 commits - format-rev: learn --abbrev, --color, and --date - doc: rev-list-options.adoc: factor out --date alts - format-rev: factor option variables into a struct - format-rev: place BUG calls first in callback - format-rev: use lower case for opts description
The experimental 'git format-rev' has been taught a few more formatting options.
Needs review. source: <V2_CV_format-rev_three_more_opts.bd3@msgid.xyz>
* gg/http-ssl-verify-status (2026-09-15) 1 commit - http: add http.sslVerifyStatus to check stapled OCSP responses
The HTTP transport has been taught to check the revocation status of the server certificate using the stapled OCSP response during the TLS handshake via a new 'http.sslVerifyStatus' configuration variable.
What's the status of this one?
Waiting for response, stalled cf. <arTUNYVvCNwX1pDp@szeder.dev> source: <20260915162348.97792-1-ggordon@gitlab.com>
* bc/restrict-hex-to-lowercase (2026-09-07) 7 commits - hex: allow only lowercase object IDs in breaking changes mode - t5324: adjust tests for corrupt commit-graph - object-name: use hexval - hex: label usages of hex parsing for object IDs - hex: make hex_to_bytes accept kind of hex to use - hex: allow specifying hex type with hex2chr - hex: add functionality for lowercase-only hex
The parser for hex object names has been updated to reject uppercase hexadecimal characters when running in the breaking changes mode, in preparation for Git 3.0.
Needs review. source: <20260907195941.1024289-1-sandals@crustytoothpaste.net>
* kj/repo-info-more-path-keys (2026-09-27) 8 commits - repo: add path.cdup - repo: add path.git-prefix - repo: add path.grafts with absolute and relative suffixes - repo: add path.index with absolute and relative suffixes - repo: add path.hooks with absolute and relative suffixes - repo: add path.superproject-root with absolute and relative suffixes - submodule: use repository to find superproject - repo: add path.toplevel with absolute and relative suffix formatting
The 'git repo info' command has been taught more keys to output paths of various repository components (such as the working tree root, superproject working tree, object database, etc.), supporting both absolute and relative path formats.
Needs review. source: <20260927114420.59724-1-jayatheerthkulkarni2005@gmail.com>
* tc/last-modified-bloom (2026-09-01) 6 commits - last-modified: keep per-path Bloom filters for wildcard pathspecs - last-modified: check pathspec against Bloom filter first - revision: add Bloom check that includes parent directories - bloom: add helper to check if any key in a vector is present - revision: expose check for paths maybe changed in Bloom filter - revision: move bloom keyvec precondition into function
The 'git last-modified' command has been optimized by using Bloom filters. It now reuses revision walk filtering logic from 'git log' to pre-filter commits, and maintains per-path Bloom filters even when wildcard pathspecs are used.
Waiting for response for too long, stalled. cf. <aqJWihcFmX7tPio5@pks.im> cf. <aqJWX0INerT8F687@pks.im> source: <20260901-toon-speed-up-last-modified-v4-0-a09949800404@iotcl.com>
* ds/trace2-tolerate-failed-timestamp (2026-08-31) 7 commits - trace2: remove use of xcalloc() - trace2: remove use of ALLOC_GROW() - trace2: remove use of xstrfmt() - trace2: remove use of ALLOC_ARRAY() - trace2: remove use of xstrdup() - trace2: tolerate failed timestamp formatting - banned-die: create header for banning of functions
Functions like `xstrfmt()` and `xcalloc()` have been banned from use in the trace2 API codebase to prevent calls to `die()` which lead to unwanted process exits and recursion when memory allocation fails.
Needs review. source: <pull.2178.v3.git.1788197143.gitgitgadget@gmail.com>
* pz/fetch-submodule-errors-config (2026-07-16) 2 commits - fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal - submodule: fix premature failure in recursive submodule fetch
The 'git fetch' command can now configure how submodule fetch errors are handled via 'fetch.submoduleErrors' and '--submodule-errors', making them non-fatal. A premature failure during recursive submodule fetches has been fixed by deferring the error until the OID-based retry phase fails.
Needs review. source: <20260716140956.1023740-1-paulius.zaleckas@gmail.com>
* ij/subtree-reject-v2-config (2026-07-06) 2 commits - git-subtree: Bail out if we find output from Rust rewrite (test) - git-subtree: Bail out if we find output from Rust rewrite
The shell script implementation of 'git subtree' has been updated to check for the presence of the configuration file of the new Rust implementation, preventing users from accidentally running the old script on repositories already managed by the new tool.
Expecting a reroll. cf. <27219.20156.438730.881821@chiark.greenend.org.uk> source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
* mm/line-log-limited-ops (2026-09-02) 7 commits - diffcore-pickaxe: limit -G to the -L tracked range - diff: support --check with -L line ranges - diff: support stat formats with -L - diff: extract a line-range diff helper for reuse - diff: emit -L hunk headers via xdiff's formatter - diff: simplify the line-range filter by classifying removals immediately - diff: rename line-range filter struct and clarify fields (this branch is used by mm/diff-process-hunks.)
The 'git log -L<range>:<path>' command has been taught to limit various 'diff' operations, such as '--stat', '--check', and '-G', to the specified range and path.
Needs review. source: <pull.2152.v3.git.1788411919.gitgitgadget@gmail.com>
* tb/midx-incremental-custom-base (2026-06-12) 3 commits - midx-write: include packs above custom incremental base - midx: pass custom '--base' through incremental writes - t5334: expose shared `nth_line()` helper
The 'git multi-pack-index write --incremental' command has been corrected to properly honor the '--base' option. Previously, the custom base was ignored by the normal write path; packs from layers above the selected base were incorrectly skipped by the pack exclusion logic, and reachability closure for bitmaps was broken.
Expecting a reroll. cf. <an4uIQA09rDCwwBp@com-79390> cf. <apUbQ4S-zJGtBeu2@pks.im> source: <cover.1781294771.git.me@ttaylorr.com>
* mm/diff-process-hunks (2026-08-13) 11 commits - fixup! diff: consult oid-only hunk providers via diff.<driver>.process - diff: consult oid-only hunk providers via diff.<driver>.process - userdiff: add diff.<driver>.process config - 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.)
A new 'diff.<driver>.process' configuration has been introduced to allow a long-running external process to act as a hunk provider, enabling external tools to control which lines Git considers changed while leaving all output formatting (word diff, color, blame, etc.) to Git's standard pipeline.
Expecting a reroll. cf. <CAC2Qwm+kzT_3_GKrpay=JLGYsxS10oWCg2MJPHrCVogFHA0OdA@mail.gmail.com> source: <20260801174156.2998808-1-mmontalbo@gmail.com>
* kh/format-patch-range-diff-notes (2026-10-04) 2 commits - format-patch: learn --[no-]range-diff-notes - format-patch: simplify get_notes_arg parameters
The 'format-patch' command has been updated with options to configure notes specifically for range-diff output, allowing them to differ from the notes displayed on the patches themselves.
Will merge to 'next'? cf. <xmqqqzi5touh.fsf@gitster.g> source: <V5_CV_format-patch_learn_--range-diff-notes.d6b@m5gid.xyz>