* What's cooking in git.git (Oct 2026, #09)
@ 2026-10-26 0:18 Junio C Hamano
0 siblings, 0 replies; only message in thread
From: Junio C Hamano @ 2026-10-26 0:18 UTC (permalink / raw)
To: git
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).
It is highly unusual to have 120 topic merges between 'master' and
'seen', with only 40 of them being in, or anywhere close to being
in, 'next'. Many topics are left without attracting interest from
others. Many others have not adequately addressed comments from
reviewers, stalling in the "Waiting for response" state. Unless the
situation improves, I will more aggressively discard stalled topics.
I will also leave topics out of 'seen' until they receive some
reviews on the list.
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/
--------------------------------------------------
[New Topics]
* hn/reflog-operations (2026-10-18) 3 commits
- reflog: add --historical-branch to name the branch of each entry
- reflog: add --operations to show one entry per command
- reflog: name the strings that mark switches, renames and rebase steps
The 'git reflog' and 'git log -g' commands have been taught the
'--operations' option to condense reflog entries (such as folding
rebases) and the '--historical-branch' option to decorate entries
with the branch HEAD was on when the entry was recorded.
Expecting a reroll.
cf. <xmqqmrs43yj2.fsf@gitster.g>
cf. <bfc2b43a-6198-47b0-8868-d92551548f22@gmail.com>
cf. <xmqq5wyr128q.fsf@gitster.g>
cf. <CAHwyqnX5sbmL_2tJ59KoBzMiTiz5OVzJXuwV+hUxU_b3YrXo-g@mail.gmail.com>
source: <pull.2448.v2.git.git.1792348037.gitgitgadget@gmail.com>
* iy/sigchain-recover-concurrent-pops (2026-10-16) 1 commit
- sigchain: recover from concurrent double-pops of the same signal
The signal handler chaining mechanism has been updated to recover
from concurrent deliveries of the same signal to multiple threads,
which previously could corrupt the handler stack and cause the
process to enter an infinite loop.
Needs review.
source: <pull.2263.git.1792154272296.gitgitgadget@gmail.com>
* ks/unit-tests-ignore-long-tests (2026-10-22) 2 commits
- unit-tests: ignore --long-tests
- unit-tests: reshuffle NOOP arguments to maintain order
The 'unit-test' runner has been taught to safely ignore the
'--long-tests' ('-l') option, preventing it from failing when the
same compatibility arguments are passed to both unit and
integration tests. The list of ignored arguments has also been
sorted.
Expecting a reroll.
cf. <atsDuCBc5J2lXOuU@pks.im>
cf. <atsDvfHx3_EkrI6Z@pks.im>
cf. <57e42fb9-b60d-43d5-abef-432ddf8da34d@gmail.com>
source: <20261022-ks-unit-tests-ignore-long-tests-v1-0-554a590d418b@gmail.com>
* ms/reftable-alloc-size-truncation (2026-10-21) 2 commits
- reftable/basics: widen allocation size arguments to uintmax_t
- Makefile: build the reftable record unit tests
The allocation size validation and memory allocation functions in the
reftable backend have been updated to use 'uintmax_t' for their size
and element count arguments. This prevents wide values from being
truncated to 'size_t' on 32-bit platforms before the allocation size
overflow check is performed.
Needs review.
source: <pull.2255.v2.git.1792616615.gitgitgadget@gmail.com>
* sp/t2030-modernize-test-path-checks (2026-10-17) 1 commit
- t2030: modernize test path checks
A test script has been modernized to use 'test_path_is_file' and
'test_path_is_missing' helpers.
Needs review.
source: <pull.2256.v3.git.1792299943380.gitgitgadget@gmail.com>
* ak/root-refs-vs-pseudorefs (2026-10-22) 5 commits
- t: stop calling root refs pseudorefs
- refs: stop calling root refs pseudorefs
- doc: stop calling root refs pseudorefs
- doc: glossary: update per-worktree refs
- doc: glossary: add root ref and clarify pseudorefs
The terminology in the documentation and tests has been updated to
consistently distinguish between root refs (like 'HEAD' and
'ORIG_HEAD' that are stored in the ref backends) and pseudorefs
(like 'FETCH_HEAD' and 'MERGE_HEAD' that are not).
Waiting for response.
cf. <xmqqv76tcrtb.fsf@gitster.g>
cf. <atsPsFnb5mrneAMb@pks.im>
cf. <93D20D7C-E19B-4A41-AC10-4AFC8330E844@jvns.ca>
source: <20261022212903.177261-1-andy.koppe@gmail.com>
* jt/tmp-objdir-loose-idx-merge (2026-10-22) 1 commit
- tmp-objdir: merge loose object index when migrating tmpdir
The temporary object directory migration logic, used for batch
fsyncing, has been updated to correctly merge the loose object index
file ('loose-object-idx') when migrating to the primary object
directory, fixing a migration failure when a compatibility hash is
enabled.
Expecting a reroll.
cf. <atufODWNPJMbvMZu@denethor>
source: <20261022234007.3081825-1-jltobler@gmail.com>
* ps/rerere-remove-global-state (2026-10-23) 7 commits
- rerere: get rid of global rerere cache state
- rerere: bundle global state into a struct
- rerere: stop using `the_repository`
- rerere: cache result of `is_rerere_enabled()`
- rerere: remove redundant calls to `repo_config()`
- rerere: stop using `the_repository` in internal helpers
- rerere: stop using `the_repository` in `rerere_path()`
- Merge branch 'tb/rerere-wait-for-merge-rr-lock' into ps/rerere-remove-global-state
(this branch uses tb/rerere-wait-for-merge-rr-lock.)
The 'rerere' subsystem has been libified to remove its dependency on
the global 'the_repository' state and global tracking variables,
allowing it to operate correctly in multi-repository contexts.
Will merge to 'next'?
cf. <xmqqv76s8i12.fsf@gitster.g>
source: <20261023-pks-rerere-wo-the-repository-v1-0-b6ac0c2e4b81@pks.im>
* tb/hook-enabled-covers-traditional-hooks (2026-10-23) 2 commits
- hook: accept .enabled and .parallel given without a value
- hook: make hook.<event>.enabled cover the hookdir hook
The hook.<event>.enabled configuration variable has been extended to
also disable traditional hookdir hooks in addition to configured
hooks. In addition, the hook configuration parser has been updated
to treat missing values for boolean variables like enabled and
parallel as true.
Will merge to 'next'?
cf. <xmqqh5ic7174.fsf@gitster.g>
source: <pull.2272.v2.git.1792761542.gitgitgadget@gmail.com>
* ag/reflog-count-plural (2026-10-24) 1 commit
- object-name: use Q_() for the reflog entry count
The error message given when a reflog entry is requested that is out
of bounds has been updated to use the pluralized translation function,
Q_().
Waiting for response.
cf. <xmqqa4o2z9ra.fsf@gitster.g>
source: <20261024152931.440-1-aniketgupta3001@gmail.com>
* sp/t0001-avoid-pipe (2026-10-22) 1 commit
- t0001: avoid pipes in test scripts
The test script 't0001-init' has been updated to avoid piping the
output of 'git version' directly into 'sed', ensuring command failures
are properly caught.
Needs review.
cf. <xmqqbj8lhcng.fsf@gitster.g>
source: <pull.2260.v3.git.1792732388827.gitgitgadget@gmail.com>
* oa/checkout-wo-the-repository (2026-10-23) 2 commits
- checkout: pass the repository to unique_tracking_name()
- remote: add repo_for_each_remote()
The unique_tracking_name() function in checkout.c was the only
function that still assumed it works on 'the_repository'; the function
and its dependencies have been updated to take an instance of 'struct
repository' to work on an arbitrary repository.
Needs review.
source: <20261023211533.73433-1-okhuomonajayi54@gmail.com>
* hn/ci-fail-on-missing-deps (2026-10-23) 1 commit
- ci: fail the build if perforce, git-lfs, or JGit fail to install
The CI scripts have been updated to fail the build immediately when
optional dependencies like Perforce, Git-LFS, or JGit fail to
install, instead of silently skipping their tests..
Needs review.
source: <pull.2403.v2.git.git.1792774249888.gitgitgadget@gmail.com>
* lb/reflog-expire-dry-run-fix (2026-10-23) 1 commit
- builtin/reflog: say "would prune" for named refs with --dry-run
The --dry-run option of git reflog expire has been corrected to
report "would prune" instead of "prune" when refs are named on the
command line, bringing it in line with the behavior of the --all
option.
Needs review.
source: <20261024013850.66448-1-laveeshb@laveeshbansal.com>
* tj/drop-no-parseopt (2026-10-23) 1 commit
- git.c: drop NO_PARSEOPT from builtins that use parse-options
The 'NO_PARSEOPT' macro has been removed from a few commands that have
migrated to use the parse_options() API, so that they will be included
in the output of 'git --list-cmds=parseopt' for shell completion.
Waiting for response.
cf. <8b60c7f6-4a1c-495a-a594-aaf322279539@web.de>
source: <20261024052449.95869-1-tangajoris@gmail.com>
* oa/diffcore-rename-no-the-repository (2026-10-24) 1 commit
- diffcore-rename: stop using the_repository
The global state 'the_repository' in 'diffcore-rename.c' has been
removed by utilizing the repository pointer available within the
'diff_options' context structure.
source: <20261024221341.92086-1-okhuomonajayi54@gmail.com>
* sj/oss-fuzz-commit-graph-gitdir (2026-10-24) 1 commit
- oss-fuzz: set a gitdir in the commit-graph fuzzer
The commit-graph fuzzer has been updated to supply a placeholder
'.gitdir' to the repository. This prevents early failures when
prepare_repo_settings() is called, allowing the fuzzer to proceed and
test optional chunks such as generation data and Bloom filters.
Needs review.
source: <CAOJ8FdeyJp4ZOfp99DBSp4brWzngdqzrkSY36ByEh=4UPw28Mg@mail.gmail.com>
* sp/diff-delta-safe-arithmetic (2026-10-24) 1 commit
- diff-delta: use safe integer arithmetic
The integer arithmetic used to compute the memory allocation size for
the delta index has been updated to use safe helpers, preventing
potential wrap-around on 32-bit platforms.
Needs review.
source: <pull.2276.v4.git.1792864857176.gitgitgadget@gmail.com>
* mc/status-index-lock (2026-10-22) 2 commits
- status: lock the index only to write it
- read-cache: verify skipHash index by stat data
The 'git status' command has been optimized to acquire the index
lock only when writing the updated index, rather than holding it
during the entire working tree traversal, avoiding lock
contention. Index validation has also been improved to use stat
data to detect concurrent modifications when 'index.skipHash' is
enabled.
Waiting for review.
cf. <20261023195101.1087983-1-quark.zju@gmail.com>
source: <20261022184420.3648771-1-mcosma@gmail.com>
* ch/remote-defer-follow-remote-head-validation (2026-10-24) 2 commits
- SQUASH??? factor out parsing of follow-remote-head-raw into a helper
- remote.c: defer remote.<name>.followRemoteHEAD validation
The configuration validation for 'remote..followRemoteHEAD' has
been deferred from parse time to execution time, preventing
commands that do not use the setting (like 'git push' or 'git
remote -v') from emitting spurious warnings about unrecognized
values.
Waiting for response.
cf. <xmqq33tw3wol.fsf@gitster.g>
cf. <DMCYNNPMFVMA.S74D9Y3OQ9QE@lfurio.us>
cf. <xmqqecdezfr1.fsf@gitster.g>
source: <20261023185007.21642-1-colinlewishinton@gmail.com>
* ss/t0081-test-path-is-file (2026-10-15) 1 commit
- t0081: modernize the code testing whether a file exists
The test script 't0081-find-pack.sh' has been updated to use the
'test_path_is_file' helper instead of the raw 'test -f' command.
Will merge to 'next'?
source: <pull.2254.v2.git.1792061236183.gitgitgadget@gmail.com>
* tb/t1450-use-mv-f (2026-10-24) 1 commit
- t1450: use mv -f when overwriting a read only file
A test in 't1450-fsck.sh' failed on older macOS when overwriting a
read-only loose object, which has been corrected by using 'mv -f'.
Expecting a reroll.
cf. <20261025090242.GA25750@tb-raspi4>
source: <20261025043322.1766-1-tboegi@web.de>
* tc/test-greplint-in-chainlint (2026-10-24) 4 commits
- t/chainlint: add --greplint to run greplint
- t/greplint: move parsing and token check to library
- t/greplint: skip test bodies without the word grep
- t/interop: replace bare grep with test_grep
The 'test-lint' target in the test suite has been optimized. The
parsing effort of test scripts is now amortized by having the
'chainlint' script perform 'greplint' checks during its tokenization
phase, significantly speeding up the linting process.
Needs review.
source: <20261025063508.3026136-1-tyler@tylercipriani.com>
--------------------------------------------------
[Stalled]
* 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 for too long, stalled.
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 for too long, stalled.
cf. <CAC2Qwm+kzT_3_GKrpay=JLGYsxS10oWCg2MJPHrCVogFHA0OdA@mail.gmail.com>
source: <20260801174156.2998808-1-mmontalbo@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 for too long, stalled.
cf. <27219.20156.438730.881821@chiark.greenend.org.uk>
source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
* 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 for too long, stalled.
cf. <xmqqse2nvltp.fsf@gitster.g>
cf. <aroaNcYqNIXcnQ-L@pks.im>
cf. <aroaLu02NQ65Y2Ju@pks.im>
source: <20260925205348.1210154-1-pmonette@google.com>
--------------------------------------------------
[Cooking]
* of/bundle-uninitialized-memory-fix (2026-10-18) 1 commit
(merged to 'next' on 2026-10-22 at 444b851810)
+ bundle: do not free uninitialized memory on bad arguments
The 'git bundle create' command has been updated to initialize the
revs_copy structure at declaration. This prevents a potential crash
caused by reading uninitialized stack memory during cleanup when an
unrecognized argument is provided.
Will merge to 'master'.
cf. <atW95CyeiQCGtIMX@pks.im>
cf. <CAHwyqnWxr3ZhPpM0WPCnJh-SHdGDZNE0ZJwA1jHhd+6-f0aEcw@mail.gmail.com>
source: <20261018142130.2701449-1-olof.fairbrook@gmail.com>
* of/config-buf-fgetc-unsigned (2026-10-18) 1 commit
(merged to 'next' on 2026-10-22 at bbc906379a)
+ config: read the bytes of a blob as unsigned characters
The internal config file parser has been updated to treat the
content read from a blob as a sequence of unsigned bytes, preventing
bytes with the high bit set from being mistakenly interpreted as
'EOF'.
Will merge to 'master'.
source: <20261018152426.2716899-1-olof.fairbrook@gmail.com>
* ag/fsck-connectivity-msg-i18n (2026-10-19) 1 commit
- fsck: use Q_() for the verbose connectivity message
(this branch is used by ag/fsck-connectivity-count.)
The verbose "Checking connectivity" message in 'git fsck' has been
updated to use the pluralizing translation macro.
Will merge to 'next'?
cf. <xmqqld7t1gtw.fsf@gitster.g>
source: <20261019153725.333-1-aniketgupta3001@gmail.com>
* os/rebase-doc-incompatible-options (2026-10-20) 1 commit
- doc: git-rebase: update incompatible options
Outdated cross-references to the "INCOMPATIBLE OPTIONS" section in
the 'git rebase' documentation have been removed, and a missing one
for the '--onto' option has been added.
Needs review.
(a newer iteration v4 exists as <20261025110759.204336-1-omri.sarig13@gmail.com>)
source: <20261020150923.5595-1-omri.sarig13@gmail.com>
* jc/config-honor-file-permission (2026-10-19) 1 commit
- config: honor file permission bits
The configuration file writing machinery has been updated to inspect
the permission bits of the original configuration file and refrain
from overwriting a read-only file using its lockfile renaming
mechanism.
Waiting for review.
cf. <atp7Pvtp1rdL8Uj_@fruit.crustytoothpaste.net>
cf. <atsZX6exgGJkNQQQ@pks.im>
cf. <xmqq8q3obh7u.fsf@gitster.g>
source: <xmqqbj8p7okv.fsf@gitster.g>
* je/doc-new-git-tutorial (2026-10-23) 2 commits
- doc: add new Git tutorial for beginners
- doc: remove gittutorial
The beginner's tutorial in 'gittutorial.adoc' has been rewritten to
focus on a minimal set of commands needed to create a repository,
make commits, and push to a remote host, optimizing for a quick
one-hour learning experience.
Needs review.
cf. <F2555C10-8453-4196-9D07-02870D19199D@gmail.com>
source: <pull.2248.v3.git.1792768625.gitgitgadget@gmail.com>
* tb/negotiator-skipping-parse-parents (2026-10-22) 1 commit
- negotiator/skipping.c: parse parents before queueing
The skipping fetch negotiator has been updated to parse parent
commits before adding them to the priority queue, ensuring they are
sorted by their actual commit date rather than being delayed as old
commits with a zero date.
Expecting a reroll.
cf. <xmqqh5icbial.fsf@gitster.g>
cf. <atv1uK2ZIupPgrES@com-79390>
source: <9e9ae442333b5e2ccc0905c44c2c3e16c49481a7.1792704069.git.me@ttaylorr.com>
* mh/init-show-abspath (2026-10-22) 1 commit
- init: show absolute path of (re)initialized repository
- Merge branch 'ps/odb-alternates-at-creation' into mh/init-show-abspath
The output from 'git init' has been corrected to display the
absolute path of the created repository, addressing a recent
regression.
Waiting for review.
cf. <DMC7P4CPEV2X.25XRRSBEZCFPH@lfurio.us>
source: <20261022120749.3567828-1-m@lfurio.us>
* ag/fsck-connectivity-count (2026-10-20) 1 commit
- fsck: report the real object count in the connectivity message
- Merge branch 'ag/fsck-connectivity-msg-i18n' into ag/fsck-connectivity-count
(this branch uses ag/fsck-connectivity-msg-i18n.)
The verbose "Checking connectivity" message in 'git fsck' has been
updated to report the actual number of objects instead of the size
of the object hash bucket array.
Needs review.
source: <20261020102134.42151-1-aniketgupta3001@gmail.com>
* hn/fetch-shallow-v2-fix (2026-10-20) 1 commit
- upload-pack: fix slow fetches from a shallow repository
The server-side computation of shallow boundaries for a protocol v2
fetch from a shallow repository has been optimized by directly
sending all known shallow roots, avoiding expensive commit history
walks and matching protocol v0 behavior. Additionally, local commit
history traversal for 'git fetch --unshallow' has been corrected to
visit each commit exactly once, preventing hangs on repositories
with long histories.
Needs review.
source: <pull.2455.v2.git.git.1792503631364.gitgitgadget@gmail.com>
* ps/odb-reload-alternates (2026-10-23) 6 commits
- odb/source-files: only reload alternates when the file has changed
- odb/source-files: avoid stat'ing already-known alternates
- odb/source-files: simplify directory duplication detection
- odb/source-files: reload alternates on retry
- odb/source-files: always load alternates via primary object directory
- odb/source-files: rename alternates-related functions
- Merge branch 'ps/odb-files-alternates-cleanups' into ps/odb-reload-alternates
(this branch uses ps/odb-files-alternates-cleanups.)
The object database files backend has been updated to reload
alternates when an object lookup fails on retry. This restores a lost
capability to find objects moved to a newly added alternate during a
concurrent repository rewrite, with caching and deduplication
optimizations to avoid performance regressions.
Needs review.
source: <20261023-pks-odb-files-reload-alternates-v2-0-30559d7ff43b@pks.im>
* rk/mktree-batch-tests (2026-10-20) 1 commit
- t1010: add basic tests for mktree --batch
Basic tests for the batch mode of 'git mktree' have been added.
Needs review.
source: <pull.2270.git.1792497283164.gitgitgadget@gmail.com>
* rk/t5301-use-test-path-helpers (2026-10-20) 1 commit
(merged to 'next' on 2026-10-24 at 710890f623)
+ t5301: use test_path_is_file instead of test -f
The test in 't5301' has been modernized to use the
'test_path_is_file' helper instead of the raw 'test -f' command.
Will merge to 'master'.
cf. <xmqqse1zqc05.fsf@gitster.g>
source: <pull.2269.git.1792488388022.gitgitgadget@gmail.com>
* ti/branch-set-upstream-hint-fix (2026-10-21) 1 commit
- branch: strip refs/heads/ from the --set-upstream-to hint
The hint printed when tracking configuration fails to be written has
been corrected to produce a valid remote-tracking branch name.
Will merge to 'next'?
cf. <xmqq7bjalmpt.fsf@gitster.g>
source: <e7059183786a5983bdebda34b3eb8f8f822ca9c0.1792618518.git.gitgitgadget@gmail.com>
* ak/cargo-pin-target-dir (2026-10-18) 1 commit
(merged to 'next' on 2026-10-24 at 304f7ba71f)
+ Makefile: pin cargo --target-dir to ./target
The Makefile has been updated to explicitly pass '--target-dir
target' to 'cargo' when building the 'gitcore' library, fixing a
link error that occurs when the user has a custom target directory
configured via 'CARGO_TARGET_DIR' or their Cargo configuration.
Will merge to 'master'.
cf. <atW8otvbLGDtDBG9@pks.im>
cf. <xmqq1p9kt6nz.fsf@gitster.g>
source: <20261018205305.2634339-1-andy.koppe@gmail.com>
* cc/pack-index-v3 (2026-10-23) 13 commits
- doc: move pack index v3 documentation
- packfile: allow looking up compat object IDs in packs
- loose: map object IDs using pack index v3
- packfile: validate pack index v3 tables
- packfile: add support for reading pack index v3
- object-file: handle compatibility algorithm
- builtin: populate pack index v3 fields when indexing
- pack-write: add support for pack index v3
- object-file-convert: implement mapping in terms of object DB
- odb: implement interoperability functions
- loose: add a flag to control whether we write mapped OIDs
- loose: rename repo_add_loose_object_map
- loose: allow looking up in object map with source
The third part of the SHA-1/SHA-256 interoperability work has been
added, implementing support for reading and writing pack index v3.
This allows packed objects to be mapped between hash algorithms by
storing object IDs in both the main and compatibility hash
algorithms.
Needs review.
source: <20261023072559.3204273-1-christian.couder@gmail.com>
* cr/doc-gpg-ssh-key-lifetime (2026-10-21) 1 commit
- doc: gpg: say which date SSH key lifetimes are checked against
The documentation for SSH and GPG signature verification has been
updated to clarify that key lifetime checks depend on dates that
can be arbitrarily spoofed by the signer, making them ineffective
for protecting against a compromised key backdating signatures.
Waiting for response.
cf. <atmsSIJrFhA0t1rH@pks.im>
source: <20261022054453.761650-1-chris@nortesoftware.dev>
* ep/status-missing-upstream (2026-10-21) 1 commit
- status: reword message for a missing upstream branch
The message given by 'git status' and 'git checkout' when the
upstream branch does not exist has been reworded to explicitly say
so, and to suggest running 'git push' if pushing would create it,
instead of claiming that the upstream is gone.
Needs review.
cf. <xmqqzew91i5g.fsf@gitster.g>
source: <20261021072137.258934-1-gitter.spiros@gmail.com>
* hn/imap-send-header-fix (2026-10-21) 4 commits
- imap-send: match header names case insensitively
- imap-send: check git send-email copies like other messages
- imap-send: accept messages with Subject before Date
- imap-send: wait for the tunnel command to finish
The 'git imap-send' command has been updated to accept message
headers in any order and to match header names case-insensitively,
allowing it to properly process messages saved by 'git send-email'.
A memory leak in the IMAP tunnel initialization has also been
plugged.
Needs review.
source: <pull.2456.v3.git.git.1792652185.gitgitgadget@gmail.com>
* hn/status-compare-branches-default (2026-10-25) 1 commit
- status: compare against both upstream and push branch by default
The default behavior of 'git status' has been updated to compare
the current branch against both its upstream and push tracking
counterparts. This makes it easier for users with triangular
workflows to see all relevant comparisons without needing to
configure 'status.compareBranches'.
Needs review.
cf. <CALnO6CBD2aGg_wDZZsT-mWJ99MXYUycx32JfsK8zJXfcmjTBDw@mail.gmail.com>
source: <pull.2458.v3.git.git.1792925493844.gitgitgadget@gmail.com>
* jg/t3429-test-path-is-file (2026-10-21) 1 commit
- t3429: use test_path_is_file helper
A test script has been modernized to use 'test_path_is_file'
instead of 'test -e' to verify the existence of a file.
Waiting for response.
cf. <CAPSxiM9SuRiRA6Xixp_zx=fFf_a6S8Mp327FP82Pg7mJdzQ3Kw@mail.gmail.com>
source: <pull.2274.git.1792582249420.gitgitgadget@gmail.com>
* cu/t2104-avoid-pipes (2026-10-20) 1 commit
(merged to 'next' on 2026-10-24 at 393f52fd96)
+ t2104: avoid suppressing git's exit code
A test script ('t2104') has been updated to avoid piping the output of
a 'git' command into another command, which would hide its exit code.
Will merge to 'master'.
cf. <athxA6S50czDEUYj@pks.im>
source: <20261021033723.5265-1-herroyalpriestess@gmail.com>
* jc/myfirstcontribution-discuss-then-reroll (2026-10-22) 2 commits
- MyFirstContribution: clarify that "reviewing" is a discussion
- MyFirstContribution: move "how to send v2" after discussing reviews
The documentation on contributing has been updated to emphasize the
importance of discussing review feedback before sending the next
iteration, and the section on sending an updated version has been
moved to appear after the discussion of the review process.
Will merge to 'next'?
cf. <ath8s3kEQoQwK_lo@pks.im>
cf. <atnyeZ23tdPC-GRB@pks.im>
cf. <attTXu2sSy93_wyq@pks.im>
source: <20261022211404.380904-1-gitster@pobox.com>
* ps/odb-object-storage-extension (2026-10-23) 7 commits
- builtin/submodule: propagate "--object-storage-format="
- builtin/clone: introduce "--object-storage-format="
- builtin/init: introduce handling of object storage format
- builtin: expose the object storage format
- setup: allow overriding object storage format via environment
- setup: introduce object storage extension
- loose: drop unused `repo_write_loose_object_map()`
- Merge branch 'ps/setup-enforce-repo-passed-to-create-repository-has-no-state' into ps/odb-object-storage-extension
- Merge branch 'ps/odb-files-alternates' into ps/odb-object-storage-extension
(this branch uses ps/setup-enforce-repo-passed-to-create-repository-has-no-state.)
The object storage format has been made configurable via the
'extensions.objectStorage' configuration variable, allowing users
to specify the storage backend and an optional payload, mirroring
the design of 'extensions.refStorage'.
Waiting for response.
cf. <atzFrKoU/mrhq31L@szeder.dev>
source: <20261023-b4-pks-odb-extension-v3-0-b1bb30a006db@pks.im>
* tj/checkout-orphan-more-plural (2026-10-21) 1 commit
- checkout: use Q_() for messages with counts
The messages 'git checkout' prints to describe orphaned commits and
multiple references have been updated to use the Q_() macro, allowing
translators to use the correct plural forms for numbers greater than
one.
Will merge to 'next'?
cf. <xmqqcxt0713z.fsf@gitster.g>
source: <20261022004834.246892-1-tangajoris@gmail.com>
* cr/ssh-revocation-file-fail-closed (2026-10-21) 1 commit
- gpg-interface: fail when the ssh revocation file is missing
The documentation for SSH signature verification has been updated to
clarify that key lifetime checks depend on the spoofable committer or
tagger date. The verification logic has been updated to fail when the
configured revocation file is missing, with an ':(optional)' escape.
Waiting for response.
cf. <atmsSIJrFhA0t1rH@pks.im>
cf. <xmqq1p9hiszk.fsf@gitster.g>
cf. <xmqqh5idiv9k.fsf@gitster.g>
source: <20261022054607.766255-1-chris@nortesoftware.dev>
* hn/branch-delete-merged-squash (2026-10-21) 3 commits
- branch: add --squashed to find squash merged branches
- branch: let --delete-merged find rebase merged branches
- branch: move the deleteMerged opt-out check into a helper
The '--delete-merged' option of 'git branch' has been taught to
optionally find and remove branches whose work has been squash-merged
or rebase-merged into the upstream, by comparing the blobs of changed
files.
Expecting a reroll.
cf. <CAHwyqnXcdgzRnFgFhTfhQFFOgDxUUKoPf2sGViBTiXMK1aNttw@mail.gmail.com>
source: <pull.2425.v3.git.git.1792585717.gitgitgadget@gmail.com>
* ti/checkout-track-failure (2026-10-21) 2 commits
- checkout: finish switching when the tracking config cannot be written
- branch: return an error from setup_tracking()
The 'git switch' and 'git checkout' commands have been updated to
complete the branch switch instead of aborting when the tracking
configuration fails to write, matching the behavior of 'git push -u'.
Will merge to 'next'?
cf. <xmqqmrs45kx2.fsf@gitster.g>
source: <pull.2275.git.1792637495.gitgitgadget@gmail.com>
* jt/odb-keep-lockfile-fix (2026-10-21) 4 commits
- object-file: write ".keep" lockfiles during transaction commit
- object-file: explicitly write ".keep" lockfile
- pack-write: lift and expose index-pack report parsing
- pack-write: make index-pack output comment hash agnostic
The creation of '.keep' lockfiles during object database
transactions has been deferred to commit time, explicitly managing
the lockfiles within the files backend rather than relying on
'git-index-pack', to prevent race conditions that could lead to
concurrent lockfiles being erroneously deleted.
Will merge to 'next'?
cf. <atmle8tlGVcHpzs4@pks.im>
source: <20261021182528.3055494-1-jltobler@gmail.com>
* oa/merge-blobs-stop-using-the-repository (2026-10-17) 1 commit
- merge-blobs: stop using the_repository
The merge-blobs subsystem has been updated to remove its reliance on
the global the_repository variable by threading the repository
context available from the index_state down to its helper functions.
Needs review.
cf. <CAPSxiM-OyrVEzYgja0nwa8PikfU1WpsCYbiNiXpcxb4TM4=mOA@mail.gmail.com>
source: <20261017105244.90295-1-okhuomonajayi54@gmail.com>
* ss/t2403-modernize-test-d (2026-10-15) 1 commit
- t2403: modernize test for directory existence
The test for worktree removal in 't/t2403-worktree-move.sh' has been
modernized to use the 'test_path_is_dir' helper instead of the raw
'test -d' shell command.
Needs review.
cf. <CAPSxiM_gCkW3gvgF-ebK64bUS5za9CQgTFLAn-PnHS12o4afbA@mail.gmail.com>
source: <pull.2259.git.1792125111461.gitgitgadget@gmail.com>
* tb/sideband-skip-unrecognized-allow-control-characters (2026-10-16) 1 commit
- sideband: skip unrecognized allowControlCharacters keywords
The configuration parser for 'sideband.allowControlCharacters' has
been updated to correctly advance past unrecognized values,
preventing an infinite loop when an unknown control character
keyword is encountered.
Needs review.
cf. <xmqq8q3xh98n.fsf@gitster.g>
source: <pull.2261.git.1792154374653.gitgitgadget@gmail.com>
* ak/refs-files-root-refs-cache (2026-10-19) 1 commit
(merged to 'next' on 2026-10-24 at 636e727556)
+ refs/files: keep root refs out of loose ref cache
The loose refs cache in the files backend has been updated to avoid
caching root refs (like 'HEAD'), preventing them from being omitted
from subsequent iterators that explicitly request them when a
previous iterator populated the cache without them.
Will merge to 'master'.
cf. <atcNOMxaz2WxDIA1@pks.im>
source: <20261019203427.2637569-1-andy.koppe@gmail.com>
* jc/ci-update-macos-15 (2026-10-20) 1 commit
(merged to 'next' on 2026-10-24 at 82e0cf1d92)
+ github-ci: update macos jobs from macos-14
The macOS CI jobs have been updated to use a mixture of 'macos-15' and
'macos-latest' images, as the 'macos-14' hosted runner image is being
deprecated by GitHub.
Will merge to 'master'.
cf. <athwcntchANgnJxD@pks.im>
source: <xmqqa4o7sp0j.fsf@gitster.g>
* ak/pretty-wrap-fix (2026-10-17) 1 commit
- pretty: fix lost indent after newline in %w()
The string-wrapping logic used by the '%w()' formatting directive
has been corrected to stop skipping a whitespace character that
immediately follows a hard line break.
Needs review.
source: <20261017081150.2295695-1-andy.koppe@gmail.com>
* ak/sequencer-head-refdup (2026-10-14) 1 commit
(merged to 'next' on 2026-10-19 at 2ff8066fce)
+ sequencer: don't clobber HEAD ref name in worktree lookup
The branch decoration logic in the sequencer has been updated to use
an allocated buffer for the HEAD reference name, preventing it from
being clobbered when evaluating branches checked out in other
worktrees.
Will merge to 'master'.
cf. <xmqqik34qd6s.fsf@gitster.g>
cf. <837b7d72-a767-4c51-9693-8fd95d14a58d@gmail.com>
source: <20261014165824.2214234-1-andy.koppe@gmail.com>
* js/coverity-overflow-fixes (2026-10-13) 5 commits
- date: avoid overflow in approxidate relative-time multiplication
- git-compat-util: add `signed_mult_overflows` and `mult_overflows` macros
- wrapper: reject insanely large byte counts when reading/writing
- http: use `size_t` for byte position in fwrite_sha1_file
- archive-tar: guard get_path_prefix against zero-length input
Various integer overflow and bounds-checking issues reported by
Coverity have been fixed, including adding robust compile-time
macros for overflow detection in integer multiplication and using
them to protect time offset calculations.
Waiting for response.
cf. <163d14a8-711c-4d4f-b441-8268db819541@gmail.com>
cf. <373f7186-3da6-4715-a4ce-cd5f56895176@gmail.com>
cf. <96c1d112-1b05-4663-90c6-33374dccd764@gmail.com>
source: <pull.2253.git.1791958171.gitgitgadget@gmail.com>
* ps/pack-check-bigfile-threshold (2026-10-14) 1 commit
(merged to 'next' on 2026-10-19 at d477f68a6d)
+ pack-check: fix bogus corruption report with core.bigFileThreshold
A boundary check in 'git fsck' against the big file threshold has
been corrected to prevent bogus corruption reports on packed objects
whose sizes exactly match the threshold.
Will merge to 'master'.
cf. <xmqq8q40tczj.fsf@gitster.g>
source: <20261014-b4-pks-pack-check-matching-large-file-threshold-v1-1-de6d8455eaaa@pks.im>
* dt/t0410-missing-tree-test (2026-10-20) 2 commits
- t0410: keep git's exit code in test_grep calls
- t0410: use rev-parse to get the subtree OID
The missing-tree test in 't0410' has been cleaned up to avoid
dropped exit codes and hardcoded assumptions about the length of
object names.
Needs review.
source: <20261020160127.29096-1-dorine.a.tipo@gmail.com>
* iw/connected-deepen-fetch-no-alternate-refs (2026-10-19) 2 commits
- odb: ignore refs of shallow and grafted alternates
- connected: negate alternate refs in deepening fetches too
The post-fetch connectivity check in 'git fetch' has been corrected
to avoid passing alternate refs as positive revisions during a
deepening fetch, plugging a severe performance bug.
Expecting a reroll.
cf. <20261020075536.49286-1-iwiedler@gitlab.com>
cf. <ats6VLXUqKwKZzIY@pks.im>
cf. <ats6prUg8edTtUgY@pks.im>
source: <20261019110918.71193-1-iwiedler@gitlab.com>
* yn/worktree-repair-fix (2026-10-17) 5 commits
- worktree repair: avoid breaking unrelated .git file and gitdir
- worktree repair: reduce .git file reads
- worktree repair: use read_gitfile_raw() in infer_backlink()
- worktree repair: centralize inferred backlink selection
- worktree repair: align .git file handling with repair_gitfile()
The 'git worktree repair' command learned to thoroughly validate the
worktree ID and the inferred gitdir pathway, preventing it from
corrupting unrelated '.git' files and gitdirs when repositories and
their linked worktrees are moved or swapped.
Needs review.
source: <pull.2225.v3.git.1792241702.gitgitgadget@gmail.com>
* mb/fast-import-reference-pending (2026-10-14) 1 commit
(merged to 'next' on 2026-10-19 at 7dfc4734f0)
+ fast-import: allow 'from' to reference new commits and tags by oid
The 'from' command in 'git fast-import' has been updated to
correctly resolve references to newly created commits and tags by
checking the internal object table, preventing a crash when the
objects are not yet available in the object database.
Will merge to 'master'.
cf. <xmqqqzhrq4ye.fsf@gitster.g>
source: <pull.2252.v4.git.1792012956734.gitgitgadget@gmail.com>
* mc/repo-structure-filtering (2026-10-15) 1 commit
. repo: add filtering options to "repo structure"
The 'git repo structure' command has been taught to accept standard
revision arguments to filter the set of objects being counted.
Waiting for response.
cf. <atG2ukqpl5pA6V0H@pks.im>
cf. <xmqq33u5c6z6.fsf@gitster.g>
source: <20261016133118.3659793-1-markchucarroll@fastmail.com>
* mv/log-follow-speedup (2026-10-22) 4 commits
- log: speed up --follow following renames for non-linear history
- log: simplify --follow following renames for non-linear history
- log: extract showing the remerge/combined diff of a merge commit
- t4219: test more --follow cases across merges
The rename detection logic in 'git log --follow' across non-linear
history has been optimized by checking for unmodified paths in parents
first, while safely falling back to rename detection when a path is
absent, resolving a performance regression.
Needs review.
source: <cover.1792701579.git.vmiklos@collabora.com>
* oa/merge-without-the-repository (2026-10-15) 1 commit
- merge: stop using the_repository
The 'merge.c' code has been updated to eliminate its reliance on the
global 'the_repository' and 'the_hash_algo' variables by passing down
the repository context already available to its entry points.
Needs review.
cf. <CAPSxiM_2Dd86rBKPj7jaT8Wmazo3PFZajJaaL2bVhB1GFsfnbg@mail.gmail.com>
source: <20261015142532.48175-1-okhuomonajayi54@gmail.com>
* ps/gitlab-ci-whitespace-job-shallow-clone-fix (2026-10-16) 1 commit
- gitlab-ci: fix "check" jobs with large merge requests
The GitLab CI configuration has been updated to disable shallow clones
for the 'check-whitespace' and 'check-style' jobs by setting
'GIT_DEPTH' to 0, preventing them from failing on large merge requests
that exceed the default shallow clone depth.
Needs review.
cf. <CAOLa=ZTwyGnWFa4U=8UDzEUuyhQ7jT555FCh-CBp_wos9rJG9w@mail.gmail.com>
source: <20261016-pks-ci-optional-whitespace-job-v1-1-f5693fbae1a5@pks.im>
* sw/cache-tree-ignore-locked-index (2026-10-16) 1 commit
(merged to 'next' on 2026-10-21 at 454f8302e1)
+ cache-tree: do not die when the index is locked
The internal write_index_as_tree() function has been updated to
take the index lock gently. This allows it to skip the optional
cache-tree write-back when the lock is held by another process,
preventing commands like 'git rebase' from dying due to background
tasks holding the lock.
Will merge to 'master'.
cf. <atXALEuiGk0TrdMN@pks.im>
source: <20261016091647.1332692-1-swilczek.lx@gmail.com>
* vs/refs-seek-fix (2026-10-15) 1 commit
- refs: fix loose-ref seeking across directory boundaries
The logic to seek through loose references across directory
boundaries has been corrected by including the trailing slash when
comparing directory components, and by properly adjusting the
iterator position when leaf entries sort either strictly before or
after the seek point.
Waiting for review.
cf. <CAFuK-oarU1rZOcDzYr=YA1SNvfAzyB6LaXXCjtZV6WWGswOnyw@mail.gmail.com>
source: <pull.2258.git.1792067455341.gitgitgadget@gmail.com>
* ab/describe-no-i18n-of-debug-messages (2026-10-16) 1 commit
- describe: do not translate --debug output
The debug output of 'git describe' has been updated not to
localize the output to make it more helpful for developers.
Needs review.
source: <20261016185418.162998-1-antekborowski11@gmail.com>
* je/doc-detached-head (2026-10-16) 2 commits
- SQUASH???
- doc: checkout: rewrite detached HEAD state explanation
The description of the detached HEAD state in 'git help checkout' has
been updated and moved to a standalone guide to make it easier for
users to understand and reference.
Waiting for response.
cf. <xmqqse25cni7.fsf@gitster.g>
source: <pull.2250.v4.git.1792177409868.gitgitgadget@gmail.com>
* js/doc-test-fix-anti-pattern (2026-10-11) 1 commit
- SubmittingPatches: avoid add-failing-test-then-fix anti-pattern
The 'SubmittingPatches' document has been updated to discourage the
anti-pattern of adding a failing test in one commit and fixing it in
a subsequent one, advising contributors to combine the test and fix
into a single commit for easier review
Needs review.
source: <20261012030029.12200-1-jon@jonsimons.org>
* js/push-refspec-match-speedup (2026-10-13) 12 commits
- remote: use strmap for apply_push_cas()
- remote: restructure apply_push_cas() loops
- t/perf: measure --force-with-lease in p5516
- remote: use strmap for match_explicit_refs()
- remote: reject duplicate destinations on an empty remote
- t5408: check refspec order with distinct destinations
- t5408, t5410: test duplicate updates without relying on the client
- send-pack: plug leak upon match_push_refs failure
- remote: use strmap for check_push_refs()
- refs: stop using mkpath() in refname_match()
- t/perf: add explicit delete refspec matching test
- remote: validate --force-with-lease <refname> argument
The client-side refspec matching during 'git push' has been
optimized by replacing linear traversals with string map lookups,
speeding up pushes with lots of delete refspecs against a server
with many advertised refs.
Needs review.
source: <20261014031347.50433-1-jon@jonsimons.org>
* rs/archive-zip-omit-out-of-range-mtime (2026-10-19) 1 commit
(merged to 'next' on 2026-10-22 at 4af793c8e7)
+ archive-zip: omit UT extra field if mtime is out of range
The ZIP archive creation code has been updated to omit the 'UT'
extended timestamp extra field when the commit time exceeds the
32-bit positive signed integer limit, avoiding integer wraparound
for dates past the year 2038.
Will merge to 'master'.
cf. <CA+h9NxT1A5fiJ1=B2e9QoYq_8SE9B2erKs+Lh19RPrh6Eq_GKA@mail.gmail.com>
source: <e25693e2-1e32-46ae-945f-0a83b382e8a2@web.de>
* dk/stash-completion-updates (2026-10-23) 5 commits
- completion: drop "stash save" completion altogether
- doc: drop usage mentions of "git stash save"
- completion: fix Zsh handling of stash names
- Completion: extract common stash listing code
- completion: simplify stash subcommand completion
The command-line completion for 'git stash' has been updated to
dynamically discover subcommands and to correct a Zsh-specific
formatting issue where stash references were improperly unquoted.
Additionally, the deprecated 'save' subcommand has been removed from
completions and synopsis documentation.
Waiting for review.
cf. <53FFC1C4-1569-4A9D-A1B7-B60A1BF53DF2@gmail.com>
source: <cover.1792761643.git.ben.knoble@gmail.com>
* ic/includeif-hostname (2026-10-15) 3 commits
(merged to 'next' on 2026-10-19 at dc388c8226)
+ config: learn the "hostname:" includeIf condition
+ t6500: get hostname from "git var"
+ var: add GIT_HOSTNAME
The conditional configuration inclusion mechanism via 'includeIf'
has been extended to support matching the machine's hostname, and
the system's hostname as seen by Git can now be queried using 'git
var GIT_HOSTNAME'.
Will merge to 'master'.
cf. <xmqqjynin4iv.fsf@gitster.g>
cf. <xmqqa4oi67tx.fsf@gitster.g>
source: <20261015105859.3184108-1-bellacaselli20@gmail.com>
* kk/connectivity-check-incremental (2026-10-23) 6 commits
- connected: add "auto" connectivity check mode
- connected: add incremental connectivity check via rev-list
- connected: add transfer.connectivityCheck config
- connected: drop dependency on `the_repository`
- p5413: add perf tests for connectivity check
- Documentation: describe connectivity checking
The connectivity check in 'git fetch' and 'git receive-pack' has
been optimized with an alternative incremental mode, available via
'transfer.connectivityCheck=incremental'. Instead of walking the
full object closure of the boundary commits, it compares the trees
of incoming commits against their trusted parent trees, skipping
unchanged subtrees.
Will merge to 'next'?
cf. <xmqq4iec5jxi.fsf@gitster.g>
source: <pull.2211.v5.git.1792761119.gitgitgadget@gmail.com>
* kn/fetch-tag-backfill-batch-fix (2026-10-22) 1 commit
- fetch: advertise fetched refs when backfilling tags
When 'git fetch' uses batched reference updates, newly fetched
references were not advertised as 'haves' when backfilling tags
because they had not been written to disk yet. The tag backfilling
negotiation has been updated to explicitly include the in-flight
fetched tips as 'haves', preventing the server from resending objects.
Expecting a reroll.
cf. <CAOLa=ZTe6zeapUBwF2cS=w_gDQzm08RJkezD-jm9aV=7j1u6KA@mail.gmail.com>
cf. <CAOLa=ZQQwYyufEWm_cS3o9t7SDfCwDSMKU7rsnctCojc4=FoGg@mail.gmail.com>
source: <20261022-799-shallow-fetch-with-tags-v4-1-8a1c9ef399ed@gmail.com>
* bb/imap-send-openssl-set-verify (2026-10-17) 3 commits
- imap-send: prepare for OpenSSL 4.0
- imap-send: let OpenSSL do the hostname verification
- imap-send: use the recommended TLS_method()
imap-send used to use hand coded peer hostname verification,
which has been replaced with the native API OpenSSL offered since
version 1.1.0.
Waiting for response.
cf. <CABtdbsnrQ61eJv4GhawiFSHkN01tJhV5tYj8MNQT8F3zf3PgYw@mail.gmail.com>
cf. <atW7CLcWmKRk4sMv@pks.im>
cf. <atW7DJZwHYK_hABy@pks.im>
cf. <atW7EcdjIEodXMD3@pks.im>
source: <20261017100956.529225-1-dev+git@drbeat.li>
* ps/odb-files-alternates-cleanups (2026-10-14) 6 commits
(merged to 'next' on 2026-10-19 at 242a7794ab)
+ odb/source: drop `local` flag
+ odb: don't try re-fetching corrupt objects
+ odb: remove read loop for found objects
+ odb/source-files: make the second read an implementation detail
+ odb/source-files: fix performance when streaming objects with alternates
+ odb/source-files: fix performance when reading objects with alternates
+ Merge branch 'ps/odb-files-alternates' into ps/odb-files-alternates-cleanups
(this branch is used by ps/odb-reload-alternates.)
The object database "files" backend has been optimized to check
packfiles across all alternate object directories before falling
back to checking loose objects, significantly reducing the number of
'stat(3p)' system calls. Additional refactoring drops the generic
'local' flag from the object database source interface in favor of
backend-specific fields, and simplifies the retry loop for missing
objects.
Will merge to 'master'.
cf. <atEMt5wgfblCiv5a@denethor>
cf. <xmqqfqy5is5o.fsf@gitster.g>
source: <20261015-pks-odb-files-alternates-cleanups-v3-0-bfc62fd780eb@pks.im>
* cs/read-cache-conversion-size (2026-10-13) 1 commit
- read-cache: do not trust a size change when conversion is active
The index refresh logic has been updated to no longer trust a file
size change as conclusive proof of modification when the path is
subject to conversion, preventing false dirty statuses for files
with only line-ending changes.
Waiting for response.
cf. <xmqq1p9twdhh.fsf@gitster.g>
cf. <20261020205644.GB6367@tb-raspi4>
source: <20261013180206.610-1-curtis.allen.smith@gmail.com>
* jw/wait-for-index-lock (2026-10-17) 4 commits
- reset: fix write race
- commit: fix write race
- repository: add core.indexLockTimeout
- repository: add repo_try_hold_locked_index()
A new configuration variable 'core.indexLockTimeout' has been
introduced to allow commands to retry when the index file is locked
by another process, and 'git commit' has been updated to take
advantage of this feature.
Needs review.
source: <20261017073231.3357477-1-quark.zju@gmail.com>
* mf/complete-log-graph-indent (2026-10-13) 1 commit
- bash-completions: add --[no-]graph-indent
The command line completion script (in contrib/) has been taught to
complete the '--[no-]graph-indent' option of 'git log'.
Needs review.
source: <63106e1dec45e82c7f132a18816b2d1fffb52752.1791921033.git.mroik@delayed.space>
* ps/ci-housekeeping-and-modernizations (2026-10-14) 8 commits
(merged to 'next' on 2026-10-19 at c0cf13277b)
+ ci: improve reftable test coverage
+ ci: drop now-dead Python 2 coverage
+ ci: switch away from EOL'd Ubuntu version in linux-feature-testbed
+ ci: rename linux-TEST-vars job
+ ci: switch away from unsupported i386/ubuntu image
+ ci: drop unused "linux-clang" logic
+ ci: fix "fedora-breaking-changes-meson" job
+ t5004: fix test creating an archive with large objects under SHA256
Various CI jobs have been updated to use modern OS images, drop dead
code, and remove redundant jobs. Support for Python 2 in CI has been
removed, and the linux-TEST-vars job has been renamed to
linux-feature-testbed.
Will merge to 'master'.
cf. <20261015070605.GA2556608@coredump.intra.peff.net>
source: <20261015-pks-ci-housekeeping-v4-0-c2c88f1b198e@pks.im>
* qs/repack-kept-pack-fix (2026-10-08) 5 commits
- repack: tell pack-objects which packs are kept
- pack-objects: add --keep-pack-from-file
- pack-objects: sort --keep-pack list for lookup
- pack-objects: reset kept-pack cache for cruft walk
- pack-objects: keep --keep-pack open when following
The behavior of repack and pack-objects has been updated to avoid
losing objects to a '.keep' file that appears mid-run. Instead of
pack-objects looking for '.keep' files independently, repack now
hands it a snapshot of kept packs via a new --keep-pack-from-file
option.
Expecting a reroll.
cf. <SJ0PR84MB29933F55E298B09B37F2778EDD922@SJ0PR84MB2993.NAMPRD84.PROD.OUTLOOK.COM>
source: <pull.2219.v3.git.1791453141.gitgitgadget@gmail.com>
* ss/repack-drop-filtered-dry-run (2026-10-16) 1 commit
(merged to 'next' on 2026-10-21 at f79ccf53bc)
+ repack: do not rebuild packs on --dry-run
The '--dry-run' option of 'git repack --drop-filtered' used to
actually rebuild packs and delete redundant ones, which has been
corrected to only list the candidates without making changes.
Will merge to 'master'.
cf. <xmqqse25e5ja.fsf@gitster.g>
cf. <atW3Rm5MUG9hqKVX@pks.im>
source: <20261016191344.82688-1-r.siddharth.shrimali@gmail.com>
* rm/blame-default-ignore-revs (2026-10-13) 2 commits
(merged to 'next' on 2026-10-17 at 31af0a1889)
+ blame: ignore revs in .git-blame-ignore-revs by default
+ blame: harden ignore-revs parser and tag peeling
'git blame' and 'git annotate' have been updated to automatically
use the '.git-blame-ignore-revs' file from the working tree (or
'HEAD:.git-blame-ignore-revs' in bare repositories) as the default
ignore list if it exists, and the parser has been hardened.
Will merge to 'master'.
cf. <xmqqse29uyh3.fsf@gitster.g>
source: <pull.2224.v6.git.1791922928.gitgitgadget@gmail.com>
* jk/test-lazy-prereq-heredoc (2026-10-05) 1 commit
(merged to 'next' on 2026-10-21 at 464c813cc7)
+ test-lib: allow lazy prerequisite snippets as here-docs
+ Merge branch 'jk/t5551-test-shell-quote-fix' into jk/test-lazy-prereq-heredoc
The lazy prerequisite set-up script can be fed as a here-doc, just
like test_expect_{success,failure} scripts these days.
Will merge to 'master'.
cf. <xmqqik3fhv81.fsf@gitster.g>
source: <20261006035239.GA1335881@coredump.intra.peff.net>
* hn/status-push-rebased-on-newer-upstream (2026-10-06) 6 commits
- push: suggest a force push after a clean rebase
- push: offer a force push after rewriting pushed commits
- push: name the branch to pull from when it is not the upstream
- status: suggest a force push after a clean rebase
- status: say when the push branch was rebased cleanly
- status: count push divergence outside the upstream
The 'git status' output and 'git push' rejection advice have been
improved to recognize when a pushed branch was cleanly rebased onto
a newer upstream, and now correctly suggest force-pushing instead of
pulling.
Needs review.
source: <pull.2437.git.git.1791270504.gitgitgadget@gmail.com>
* je/doc-promote-git-help (2026-10-16) 1 commit
(merged to 'next' on 2026-10-19 at 67e49ef79c)
+ doc: use `man git` to teach users how to navigate the docs
The earliest part of 'man git' has been rewritten to explain various
ways to use 'git help' to get help.
Will merge to 'master'.
source: <pull.2242.v3.git.1792178103727.gitgitgadget@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-23) 7 commits
- stash: simplify reset_tree() function signature
- stash create: remove unnecessary index load and refresh
- stash create: rework temporary index creation
- stash push: avoid duplicate calls to preload_index()
- stash push: remove duplicate changes detection
- stash create: remove duplicate changes detection
- stash: use an enum for create status
The index loading and refreshing logic in 'git stash create' and 'git
stash push' has been optimized by eliminating redundant change
detection checks and preload_index() calls, saving several lstat()
calls per changed path.
Needs review.
source: <cover.1792767794.git.phillip.wood@dunelm.org.uk>
* 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>
* 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/fetch-refmap (2026-10-20) 5 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: extract collect_upstream_from_remote() helper
- 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. <xmqqcxt02eoa.fsf@gitster.g>
cf. <CALnO6CAhUNRMf=KZmY6YbC-5g3h8DE6U40HehGwbcRTPhDasrg@mail.gmail.com>
cf. <CALnO6CAgS3=ne1RkT-DioLmY6SqhnOZ8NH5kxxCZA_1QFx-dBg@mail.gmail.com>
cf. <CALnO6CCJzzX1qKeX4AR-GViM4LJjKrfdj6iafVXUQZM-c2Su4A@mail.gmail.com>
cf. <CAHwyqnXWxiF6NLh3e4yGq6_y+=A+-_PwKF7D9DJJDxbk_0vF-g@mail.gmail.com>
cf. <CALnO6CBAEB8=FfZfde0OWvfLJikVkXQ8itP9wZpGHxfxK+y_LQ@mail.gmail.com>
cf. <CAHwyqnWuj_1x9B4H+Kto2rZn6YeaM+X-vUb-uUb2jr134gcHjA@mail.gmail.com>
source: <pull.2412.v10.git.git.1792503778.gitgitgadget@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-10-08) 4 commits
. refs: remove backend-specific copy and rename callbacks
. refs: run copy and rename through ordinary transactions
. refs: support replacing reflogs in a transaction
. refs: distinguish internal transactions from logical updates
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.
Waiting for response. Breaks 'seen' when merged.
cf. <asdsIjNEUOpaAnX5@pks.im>
cf. <ash-bs4-WmGuLyCl@pks.im>
cf. <asmFLjno-vuuN1ZS@fruit.crustytoothpaste.net>
source: <cover.1791452597.git.maciej.ciemborowicz@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-10-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: <20261023-ls-files-untracked-cache-v3-0-292260e95f53@gmail.com>
* je/doc-merge-conflicts (2026-10-23) 6 commits
- doc: git-pull: link to new merge conflicts guide
- doc: git-cherry-pick: link to new merge conflicts guide
- doc: git-revert: link to new merge conflicts guide
- doc: git-rebase: link to new merge conflicts guide
- doc: git-merge: link to new merge conflicts guide
- doc: add new gitmergeconflicts man page
A new user manual page on how to resolve merge conflicts has been
introduced, and other commands that could encounter conflicts have
been updated to link to it.
Waiting for response.
cf. <254688CB-AD21-4283-AE19-F1061C90C6B3@gmail.com>
cf. <xmqqtsmc44c1.fsf@gitster.g>
source: <pull.2237.v4.git.1792764293.gitgitgadget@gmail.com>
* ps/setup-enforce-repo-passed-to-create-repository-has-no-state (2026-09-28) 7 commits
(merged to 'next' on 2026-10-17 at 68944adf51)
+ 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
(this branch is used by ps/odb-object-storage-extension.)
The repository initialization sequence has been refactored to treat
the repository object passed to create_repository() purely as an
out-parameter.
Will merge to 'master'.
source: <20260928-pks-create-repository-stateless-v2-0-a03612f703fa@pks.im>
* 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.
Will merge to 'next'?
cf. <20260917140350.44760-1-ub4nal@mail.ru>
cf. <20260917132540.GA101514@peff.net>
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-13) 2 commits
(merged to 'next' on 2026-10-21 at 2479322e68)
+ rerere: add "gc --skip-locked" for auto maintenance
+ rerere: wait for MERGE_RR.lock before giving up
(this branch is used by ps/rerere-remove-global-state.)
Instead of failing to record conflicts to be resolved immediately,
wait while "rerere gc" is ongoing.
Will merge to 'master'.
cf. <as4ikRUi0NZv_jKr@pks.im>
cf. <xmqqy0c1zi6j.fsf@gitster.g>
cf. <as8U2Ao_oX5KsI1b@pks.im>
source: <pull.2214.v8.git.1791893274.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>
* 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>
* tc/push-force-if-includes-fixes (2026-10-18) 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: <20261018203255.2343005-1-tyler@tylercipriani.com>
* cc/early-scan-options (2026-10-12) 4 commits
- fast-import: use early_scan_options() for --allow-unsafe-features
- parse-options: add early_scan_options()
- parse-options: extract lookup_long_opt() from parse_long_opt()
- 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.
Needs review.
source: <20261012074413.337183-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.
Waiting for response.
cf. <ba174a25-f7bc-4a5d-918c-87229b2fb5f6@gmail.com>
cf. <de12af28-a64e-4472-8bd4-b65200772dbe@gmail.com>
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
The 'git svn' v1-layout migration message has been silenced when there
is no legacy metadata to migrate, preventing noise on newly
initialized repositories. Additionally, a new 'NO_GIT_SVN' Makefile
knob has been added to skip building and installing 'git-svn'
entirely.
Needs review.
source: <20260827234345.1037130-1-wesleys@opperschaap.net>
* dw/config-read-both-global (2026-10-09) 2 commits
- config: read global scope via config_sequence
- t1300: test list with missing global config
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.
Needs review.
source: <20261009-fix-config-list-global-home-and-xdg-v3-0-f936b9c8a0cc@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>
* 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>
* 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>
* 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>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-10-26 0:18 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-26 0:18 What's cooking in git.git (Oct 2026, #09) Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox