From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: What's cooking in git.git (Jul 2026, #03)
Date: Tue, 07 Jul 2026 10:18:56 -0700 [thread overview]
Message-ID: <xmqqeche67lr.fsf@gitster.g> (raw)
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).
The first batch of topics have now graduated to the 'master' branch.
Copies of the source code to Git live in many repositories, and the
following is a list of the ones I push into or their mirrors. Some
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']
* cc/promisor-auto-config-url-more (2026-05-27) 8 commits
(merged to 'next' on 2026-06-15 at d1c99e75cc)
+ doc: promisor: improve acceptFromServer entry
+ promisor-remote: auto-configure unknown remotes
+ promisor-remote: trust known remotes matching acceptFromServerUrl
+ promisor-remote: introduce promisor.acceptFromServerUrl
+ promisor-remote: add 'local_name' to 'struct promisor_info'
+ urlmatch: add url_normalize_pattern() helper
+ urlmatch: change 'allow_globs' arg to bool
+ t5710: simplify 'mkdir X' followed by 'git -C X init'
The handling of promisor-remote protocol capability has been updated
to allow the other side to add to the list of promisor remotes via the
'promisor.acceptFromServerURL' configuration variable.
Graduated to 'master'.
cf. <877bo7294j.fsf@emacs.iotcl.com>
cf. <xmqqh5naxwfc.fsf@gitster.g>
source: <20260527140820.1438165-1-christian.couder@gmail.com>
* en/ort-harden-against-corrupt-trees (2026-06-13) 5 commits
(merged to 'next' on 2026-06-18 at e51bee59ca)
+ cache-tree: fix verify_cache() to catch non-adjacent D/F conflicts
+ merge-ort: abort merge when trees have duplicate entries
+ merge-ort: free diff pairs queue in clear_or_reinit_internal_opts()
+ merge-ort: drop unnecessary show_all_errors from collect_merge_info()
+ merge-ort: propagate callback errors from traverse_trees_wrapper()
The 'ort' merge backend has been hardened against corrupt trees by
ensuring it aborts under appropriate error conditions.
Graduated to 'master'.
cf. <xmqq5x3ldu4h.fsf@gitster.g>
source: <pull.2096.v2.git.1781419047.gitgitgadget@gmail.com>
* hn/status-pull-advice-qualified (2026-05-21) 1 commit
(merged to 'next' on 2026-06-15 at 898a4df940)
+ remote: qualify "git pull" advice for non-upstream compareBranches
Advice shown by 'git status' when the local branch is behind or has
diverged from its push branch has been updated to suggest 'git pull
<remote> <branch>'.
Graduated to 'master'.
cf. <xmqq7bo6xuok.fsf@gitster.g>
source: <pull.2301.v4.git.git.1779372367317.gitgitgadget@gmail.com>
* jc/submittingpatches-design-critiques (2026-06-20) 1 commit
(merged to 'next' on 2026-06-22 at 7495b5f9d6)
+ SubmittingPatches: address design critiques
The documentation in SubmittingPatches has been updated to clarify how
patch contributors should respond to design and viability critiques,
and how the resolution of such critiques should be recorded in the
final commit messages.
Graduated to 'master'.
cf. <ajjwYGWZ6hQWr600@pks.im>
source: <xmqqeci0g4mz.fsf@gitster.g>
* jk/repo-info-path-keys (2026-06-23) 3 commits
(merged to 'next' on 2026-06-29 at fbf9652169)
+ repo: add path.gitdir with absolute and relative suffix formatting
+ repo: add path.commondir with absolute and relative suffix formatting
+ path: extract format_path() and use in rev-parse
(this branch is used by ps/setup-split-discovery-and-setup.)
The 'git repo info' command has been taught new keys to output both
absolute and relative paths for 'gitdir' and 'commondir', supported by
a new path-formatting helper extracted from 'git rev-parse'.
Graduated to 'master'.
cf. <xmqqy0g3iz38.fsf@gitster.g>
source: <20260624033748.108281-1-jayatheerthkulkarni2005@gmail.com>
* jk/setup-gitfile-diag-fix (2026-06-16) 1 commit
(merged to 'next' on 2026-06-18 at b63b3d1f25)
+ read_gitfile(): simplify NOT_A_REPO error message
A regression in the error diagnosis code for invalid '.git' files has
been fixed, avoiding a potential 'NULL'-pointer crash when reporting
that a '.git' file does not point to a valid repository.
Graduated to 'master'.
cf. <xmqqjyry4hax.fsf@gitster.g>
source: <20260616123516.GA2301231@coredump.intra.peff.net>
* kh/submittingpatches-trailers (2026-06-18) 5 commits
(merged to 'next' on 2026-06-22 at 2cd4a152c9)
+ SubmittingPatches: note that trailer order matters
+ SubmittingPatches: be consistent with trailer markup
+ SubmittingPatches: document Based-on-patch-by trailer
+ SubmittingPatches: discourage common Linux trailers
+ SubmittingPatches: encourage trailer use for substantial help
The trailer sections in SubmittingPatches have been updated to
encourage use of standard trailers.
Graduated to 'master'.
cf. <xmqq4ij0vo8f.fsf@gitster.g>
source: <V3_CV_SubPatches_trailers.9ec@msgid.xyz>
* mh/fetch-follow-remote-head-config (2026-06-19) 8 commits
(merged to 'next' on 2026-06-22 at 423079e1c8)
+ fetch: fixup a misaligned comment
+ fetch: add configuration variable fetch.followRemoteHEAD
+ fetch: refactor do_fetch handling of followRemoteHEAD
+ fetch: return 0 on known git_fetch_config
+ fetch: rename function report_set_head
+ t5510: cleanup remote in followRemoteHEAD dangling ref test
+ doc: explain fetchRemoteHEADWarn advice
+ fetch: fixup set_head advice for warn-if-not-branch
The 'fetch.followRemoteHEAD' configuration variable has been added to
provide a default for the per-remote 'remote.<name>.followRemoteHEAD'
setting.
Graduated to 'master'.
cf. <xmqqcxxp1j2t.fsf@gitster.g>
source: <20260619094751.2996804-1-m@lfurio.us>
* mv/log-follow-mergy (2026-06-21) 1 commit
(merged to 'next' on 2026-06-22 at f7e984a003)
+ log: improve --follow following renames for non-linear history
'git log --follow' has been updated to better handle non-linear
history, in which the path being tracked gets renamed differently in
multiple history lines.
Graduated to 'master'.
source: <ajjU4w2B0NlZffw1@collabora.com>
* po/hash-object-size-t (2026-06-16) 6 commits
(merged to 'next' on 2026-06-21 at b780a276b9)
+ hash-object: add a >4GB/LLP64 test case using filtered input
+ hash-object: add another >4GB/LLP64 test case
+ hash-object --stdin: verify that it works with >4GB/LLP64
+ hash algorithms: use size_t for section lengths
+ object-file.c: use size_t for header lengths
+ hash-object: demonstrate a >4GB/LLP64 problem
Support for hashing loose or packed objects larger than 4GB on Windows
and other LLP64 platforms has been improved by converting object header
buffers and data-handling functions from 'unsigned long' to 'size_t'.
Graduated to 'master'.
cf. <ajOQthRjhD3hRM9w@pks.im>
source: <pull.2138.v2.git.1781621398.gitgitgadget@gmail.com>
* ps/connected-generic-promisor-checks (2026-06-25) 5 commits
(merged to 'next' on 2026-06-29 at 10eef65b98)
+ connected: search promisor objects generically
+ connected: split out promisor-based connectivity check
+ odb/source-packed: support flags when iterating an object prefix
+ odb/source-packed: extract logic to skip certain packs
+ Merge branch 'ps/odb-source-packed' into ps/connected-generic-promisor-checks
(this branch uses ps/odb-source-packed.)
The connectivity check has been refactored to search for promisor
objects in a generic way using the object database interface,
rather than iterating packfiles directly. This allows connectivity
checks to work properly in repositories that do not use packfiles.
Graduated to 'master'.
cf. <CAP8UFD07AzNtP3rRj4btYfFfakX0kkLXKpO9T=a3Mds3YWEsXw@mail.gmail.com>
source: <20260625-pks-connected-generic-promisor-checks-v3-0-7308f3b9dc44@pks.im>
* ps/doc-recommend-b4 (2026-06-15) 3 commits
(merged to 'next' on 2026-06-17 at dd9a463369)
+ b4: introduce configuration for the Git project
+ MyFirstContribution: recommend the use of b4
+ MyFirstContribution: recommend shallow threading of cover letters
Project-specific configuration for b4 has been introduced, and the
documentation has been updated to recommend using it as a
streamlined method for submitting patches.
Graduated to 'master'.
cf. <87eci7yomp.fsf@emacs.iotcl.com>
source: <20260615-pks-b4-v4-0-22cfca8f19c5@pks.im>
* ps/odb-source-packed (2026-06-16) 18 commits
(merged to 'next' on 2026-06-19 at dcf0c084e4)
+ odb/source-packed: drop pointer to "files" parent source
+ midx: refactor interfaces to work on "packed" source
+ odb/source-packed: stub out remaining functions
+ odb/source-packed: wire up `freshen_object()` callback
+ odb/source-packed: wire up `find_abbrev_len()` callback
+ odb/source-packed: wire up `count_objects()` callback
+ odb/source-packed: wire up `for_each_object()` callback
+ odb/source-packed: wire up `read_object_stream()` callback
+ odb/source-packed: wire up `read_object_info()` callback
+ packfile: use higher-level interface to implement `has_object_pack()`
+ odb/source-packed: wire up `reprepare()` callback
+ odb/source-packed: wire up `close()` callback
+ odb/source-packed: start converting to a proper `struct odb_source`
+ odb/source-packed: store pointer to "files" instead of generic source
+ packfile: move packed source into "odb/" subsystem
+ packfile: split out packfile list logic
+ packfile: rename `struct packfile_store` to `odb_source_packed`
+ Merge branch 'ps/odb-source-loose' into ps/odb-source-packed
(this branch is used by ps/connected-generic-promisor-checks, ps/libgit-in-subdir, ps/odb-drop-whence and ps/odb-generalize-prepare.)
The packed object source has been refactored into a proper 'struct
odb_source'.
Graduated to 'master'.
cf. <ajK2QKdW-TdflfR0@denethor>
source: <20260617-pks-odb-source-packed-v3-0-b5c7583cd795@pks.im>
* ps/refs-onbranch-fixes (2026-06-25) 12 commits
(merged to 'next' on 2026-06-29 at 7b4929e311)
+ refs: protect against chicken-and-egg recursion
+ refs/reftable: lazy-load configuration to fix chicken-and-egg
+ reftable: split up write options
+ refs/files: lazy-load configuration to fix chicken-and-egg
+ refs: move parsing of "core.logAllRefUpdates" back into ref stores
+ repository: free main reference database
+ chdir-notify: drop unused `chdir_notify_reparent()`
+ refs: unregister reference stores from "chdir_notify"
+ setup: don't apply "GIT_REFERENCE_BACKEND" without a repository
+ setup: stop applying repository format twice
+ setup: inline `check_and_apply_repository_format()`
+ Merge branch 'ps/setup-centralize-odb-creation' into ps/refs-onbranch-fixes
(this branch is used by ps/setup-split-discovery-and-setup.)
Reference backend configuration has been updated to load lazily to
avoid recursive calls during repository initialization when 'onbranch'
configuration conditions are evaluated. This has also fixed a memory
leak and allowed the unused 'chdir_notify_reparent()' machinery to be
dropped.
Graduated to 'master'.
cf. <xmqqse6ae45i.fsf@gitster.g>
source: <20260625-b4-pks-refs-avoid-chdir-notify-reparent-v6-0-41fbca3cf5e3@pks.im>
* ps/setup-drop-global-state (2026-06-10) 8 commits
(merged to 'next' on 2026-06-15 at d9a8b88d47)
+ treewide: drop USE_THE_REPOSITORY_VARIABLE
+ environment: stop using `the_repository` in `is_bare_repository()`
+ environment: split up concerns of `is_bare_repository_cfg`
+ builtin/init: stop modifying `is_bare_repository_cfg`
+ setup: remove global `git_work_tree_cfg` variable
+ builtin/init: simplify logic to configure worktree
+ builtin/init: stop modifying global `git_work_tree_cfg` variable
+ Merge branch 'ps/setup-centralize-odb-creation' into ps/setup-drop-global-state
(this branch is used by ps/setup-split-discovery-and-setup.)
The refactoring of 'setup.c' has been continued to drop remaining
global state ('git_work_tree_cfg', 'is_bare_repository_cfg'), updating
'is_bare_repository()' to no longer implicitly rely on
'the_repository'.
Graduated to 'master'.
cf. <airVOrTboNDDGBak@denethor>
cf. <87ldckyygk.fsf@emacs.iotcl.com>
source: <20260611-b4-pks-setup-drop-global-state-v2-0-a6f7269c841d@pks.im>
* pw/status-rebase-todo (2026-06-23) 2 commits
(merged to 'next' on 2026-06-23 at a0fcde09dc)
+ status: improve rebase todo list parsing
+ sequencer: factor out parsing of todo commands
The display of the rebase todo list in 'git status' has been improved
to correctly abbreviate object IDs for more commands and avoid
misinterpreting refs as object IDs.
Graduated to 'master'.
source: <cover.1782230024.git.phillip.wood@dunelm.org.uk>
* rs/cat-file-default-format-optim (2026-06-14) 1 commit
(merged to 'next' on 2026-06-17 at 43ed8b3969)
+ cat-file: speed up default format
The default format path of 'git cat-file --batch' has been optimized
to use 'strbuf_add_oid_hex()' and 'strbuf_add_uint()' instead of
'strbuf_addf()', yielding a noticeable speedup.
Graduated to 'master'.
cf. <20260615165326.GA91269@coredump.intra.peff.net>
source: <5a7ed929-6fe0-496c-83bd-65dee57c2241@web.de>
* sg/t3420-do-not-grep-in-missing-file (2021-10-10) 1 commit
(merged to 'next' on 2026-06-29 at 2bf33c6a40)
+ t3420-rebase-autostash: don't try to grep non-existing files
A test checking interactions between 'git rebase --quit' and autostash
in 't3420-rebase-autostash.sh' has been corrected to use
'test_path_is_missing' instead of '! grep' on a file that shouldn't
exist in the conflicted state.
Graduated to 'master'.
source: <20211010172809.1472914-1-szeder.dev@gmail.com>
* tb/pack-path-walk-bitmap-delta-islands (2026-06-21) 5 commits
(merged to 'next' on 2026-06-22 at 59cf1663e7)
+ pack-objects: support `--delta-islands` with `--path-walk`
+ pack-objects: extract `record_tree_depth()` helper
+ pack-objects: support reachability bitmaps with `--path-walk`
+ t/perf: drop p5311's lookup-table permutation
+ Merge branch 'ds/path-walk-filters' into tb/pack-path-walk-bitmap-delta-islands
The 'git pack-objects' command has been updated to support
reachability bitmaps and delta-islands concurrently with the '--path-
walk' option, allowing faster packaging by falling back to path-walk
when bitmaps cannot fully satisfy the request.
Graduated to 'master'.
cf. <xmqqwlvq1qyy.fsf@gitster.g>
source: <cover.1782082975.git.me@ttaylorr.com>
* td/ref-filter-restore-prefix-iteration (2026-06-12) 1 commit
(merged to 'next' on 2026-06-19 at a19dbb4193)
+ ref-filter: restore prefix-scoped iteration
Commands that list branches and tags (like 'git branch' and 'git tag')
have been optimized to pass the namespace prefix when initializing
their ref iterator, avoiding a loose-ref scaling regression in
repositories with many unrelated loose references.
Graduated to 'master'.
cf. <xmqqik7fsv2m.fsf@gitster.g>
source: <20260612-fix-git-branch-regression-v4-1-f150038c02f4@gmail.com>
* ty/move-protect-hfs-ntfs (2026-06-20) 2 commits
(merged to 'next' on 2026-06-20 at d8ca0d5180)
+ environment: use 'repo->initialized' for repo_protect_hfs() and repo_protect_ntfs()
(merged to 'next' on 2026-06-15 at c2a30ca954)
+ environment: move 'protect_hfs' and 'protect_ntfs' into 'repo_config_values'
The global configuration variables 'protect_hfs' and 'protect_ntfs'
have been migrated into 'struct repo_config_values' to tie them to
per-repository configuration state.
Graduated to 'master'.
cf. <CAP8UFD35Tiy1_fqpjq8P-z=ZhzR3MTiThqfCs977652umRoSEQ@mail.gmail.com>
cf. <xmqqse6uwdnz.fsf@gitster.g>
source: <20260610124353.149874-2-cat@malon.dev>
source: <20260620140957.667820-1-cat@malon.dev>
* wy/doc-clarify-review-replies (2026-06-21) 2 commits
(merged to 'next' on 2026-06-29 at 21ae0599dc)
+ doc: advise batching patch rerolls
+ doc: encourage review replies before rerolling
Documentation on community contribution guidelines has been updated to
encourage replying to review comments before rerolling, and to advise
a default limit of at most one reroll per day to give reviewers across
different time zones enough time to participate.
Graduated to 'master'.
cf. <ajvDuUiDsmyf5LnX@pks.im>
source: <cover.1782028813.git.wy@wyuan.org>
--------------------------------------------------
[New Topics]
* ds/sparse-index-ita-crash (2026-07-06) 1 commit
- sparse-index: avoid crash on intent-to-add entry outside the cone
A crash in the sparse-index collapse code when encountering an
invalidated cache-tree node (due to an intent-to-add path) has been
fixed by avoiding collapsing such subtrees.
Needs review.
source: <pull.2167.git.1783345853272.gitgitgadget@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. <27211.50096.133710.528147@chiark.greenend.org.uk>
source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
* kk/reftable-tombstone-quadratic-fix (2026-07-06) 2 commits
- reftable: fix quadratic behavior when re-creating deleted refs
- t: add tests for ref tombstone scenarios
The performance of ref updates and reads using the reftable backend in
the presence of many deletion tombstone records has been optimized by
removing the tombstone suppression flag from the merged iterator and
instead skipping tombstones at higher-level call sites where iteration
bounds are known.
Needs review.
source: <pull.2166.git.1783344957.gitgitgadget@gmail.com>
* rs/blame-abbrev-marks (2026-07-06) 1 commit
- blame: reserve mark column only if necessary
The alignment of commit object name abbreviations in 'git blame'
output has been optimized to reserve a column for marks (caret,
question mark, or asterisk) only when such marks are actually shown.
Will merge to 'next'?
cf. <xmqqzf0397u1.fsf@gitster.g>
source: <92991b5e-0667-4315-89d5-1514a5499297@web.de>
* jm/t0213-skip-emulated-ancestry-tests (2026-07-06) 1 commit
- t0213: skip ancestry tests under user-mode emulation
The 'TRACE2_ANCESTRY' prerequisite in the 't0213' test script has been
refined to avoid failures under user-mode emulation. It now verifies
that the ancestry collector reports the expected process names rather
than the emulator binary name.
Needs review.
source: <pull.2168.git.1783359242130.gitgitgadget@gmail.com>
--------------------------------------------------
[Stalled]
* ap/http-redirect-wwwauth-fix (2026-06-02) 1 commit
- http: preserve wwwauth_headers across redirects
When 'cURL' follows a redirect, the 'WWW-Authenticate' headers from
the redirect target were lost because 'credential_from_url()' cleared
the credential state. This has been fixed by preserving the collected
headers across the redirect update.
Waiting for response(s) to review comment(s) for too long, stalled.
cf. <5144a29d-a53f-4446-beff-e1f549345bf9@nvidia.com>
source: <20260602161150.1527493-1-aplattner@nvidia.com>
* jt/config-lock-timeout (2026-05-17) 1 commit
- config: retry acquiring config.lock, configurable via core.configLockTimeout
Configuration file locking has been updated to retry for a short
period, avoiding failures when multiple processes attempt to update
the configuration simultaneously.
Waiting for response(s) to review comment(s) for too long, stalled.
cf. <agrIrGwSMFlKTx9x@pks.im>
source: <20260517132111.1014901-1-joerg@thalheim.io>
--------------------------------------------------
[Cooking]
* bc/parse-options-exit-0-on-help (2026-07-01) 4 commits
- parse-options: exit 0 on -h
- rev-parse: have --parseopt callers exit 0 on --help
- parse-options: add a separate case for help output on error
- t1517: skip svn tests if svn is not installed
Option parsing with 'git rev-parse --parseopt' and most git
subcommands has been updated to exit with 0 (instead of 129) when the
help option ('-h' or '--help') is requested directly by the user,
aligning with standard Unix convention.
Expecting a reroll.
cf. <akZ6H84Tzzgu8L5W@fruit.crustytoothpaste.net>
source: <20260701212442.1430084-1-sandals@crustytoothpaste.net>
* mg/meson-hook-list-buildfix (2026-07-01) 1 commit
- meson: restore hook-list.h to builtin_sources
A racy build failure under Meson has been corrected by ensuring that
the generated header file hook-list.h is built before compiling files
in builtin_sources that depend on it.
Will merge to 'next'.
cf. <akZGJP1kVtjBFN_e@pks.im>
source: <20260701193928.358825-1-floppym@gentoo.org>
* zy/apply-abandoned-header-fix (2026-07-01) 1 commit
- apply: avoid leaking abandoned git-header state
A candidate git diff header parsed by 'git apply' has been isolated in
a temporary structure, preventing any partially parsed state from
polluting the main patch structure and causing assertions to trip if
the header is ultimately rejected.
Needs review.
source: <20260702041759.51572-1-zhihao.yao@njit.edu>
* jk/hash-algo-leak-fixes (2026-07-02) 9 commits
- hash: add platform-specific discard functions
- hash: fix memory leak copying sha256 gcrypt handles
- http: discard hash in dumb-http http_object_request
- check_stream_oid(): discard hash on read error
- patch-id: discard hash when done
- csum-file: provide a function to release checkpoints
- csum-file: always finalize or discard hash
- hash: add discard primitive
- csum-file: drop discard_hashfile()
Various code paths that initialize a cryptographic hash context but
bail out or finish without calling 'git_hash_final()' have been taught
to call 'git_hash_discard()' to release allocated resources, fixing
memory leaks when Git is built with non-default backends like
'OpenSSL' or 'libgcrypt'.
Will merge to 'next'?
cf. <aktIIKuReMxJmDsi@pks.im>
source: <20260702075234.GA1548258@coredump.intra.peff.net>
* ml/t9811-replace-test-f (2026-07-02) 1 commit
- t9811: replace 'test -f' and '! test -f' with 'test_path_*'
The test script 't/t9811-git-p4-label-import.sh' has been
modernized to use 'test_path_is_file' and 'test_path_is_missing'
instead of raw 'test -f' and '! test -f' calls.
Expecting a reroll.
cf. <akdwp_a2EuhVoGVW@pks.im>
cf. <CAO=vGZpMe3dxyzFVwR7BWBxaAZ-z9Kw3CqQ0kAe5ZZGSQszkzw@mail.gmail.com>
source: <20260702140704.65805-1-marcelomlage@usp.br>
* ps/t-fixes-for-git-test-long (2026-07-05) 9 commits
- gitlab-ci: enable "GIT_TEST_LONG"
- gitlab-ci: disable RAM disk on macOS jobs
- t: use `test_bool_env` to parse GIT_TEST_LONG
- t7900: clean up large EXPENSIVE repository
- t7508: skip EXPENSIVE test that is broken without SIZE_T_IS_64BIT
- t5608: reduce maximum disk usage
- t4141: fix inefficient use of dd(1)
- t0021: skip EXPENSIVE test that is broken without SIZE_T_IS_64BIT
- README: add GitLab CI badge to make it more discoverable
Various test scripts have been updated to clean up large temporary
files and repositories, reducing peak disk usage during testing.
Also, expensive tests have been disabled on platforms that lack
sufficient resources (like 32-bit platforms and Windows CI
runners), and the long test suite has been enabled in GitLab CI.
Will merge to 'next'?
cf. <20260707043026.GB677056@coredump.intra.peff.net>
source: <20260706-b4-pks-t-fixes-for-GIT-TEST-LONG-v3-0-4f6c5a37fd1f@pks.im>
* ih/precompose-flex-array (2026-07-04) 1 commit
- precompose_utf8: use a flex array for d_name
The UTF-8 precomposition wrapper on macOS has been updated to use a
flexible array member to represent the name of a directory entry,
preventing fortified libc checks from failing when name is
reallocated to be larger than NAME_MAX bytes.
Will merge to 'next'.
cf. <20260703050800.GA29216@tb-raspi4>
source: <20260704233724.16928-1-ihar.hrachyshka@gmail.com>
* sn/osxkeychain-rust-universal (2026-07-06) 3 commits
- contrib: wire up osxkeychain in contrib/Makefile on macOS
- Makefile: support universal macOS builds via RUST_TARGETS
- Makefile: add $(RUST_LIB) prerequisite to osxkeychain
The build system has been updated to support building universal macOS
binaries when 'Rust' is enabled, by compiling separate static archives
for each target triple listed in 'RUST_TARGETS' and combining them
using the macOS 'lipo' tool. Additionally, the 'git-credential-
osxkeychain' helper has been updated to link against '$(RUST_LIB)'
when 'Rust' is enabled.
Needs review.
source: <pull.2288.v6.git.git.1783378333.gitgitgadget@gmail.com>
* cl/conditional-config-on-worktree-path (2026-07-02) 2 commits
- config: add "worktree" and "worktree/i" includeIf conditions
- config: refactor include_by_gitdir() into include_by_path()
The '[includeIf "condition"]' conditional inclusion facility for
configuration files has been taught to use the location of the
worktree in its condition.
Waiting for response(s) to review comment(s).
cf. <akeW4yFC8uuu2o8a@pks.im>
cf. <CAC1kPDNBecLbmZwjfR5-CsNheF3rcbZ5=SQ+cwjzpFMjFr9KGQ@mail.gmail.com>
source: <20260703-includeif-worktree-v6-0-a13893ad9a7f@black-desk.cn>
* kk/commit-reach-find-all-fix (2026-06-29) 2 commits
- commit-reach: guard !FIND_ALL early exit with generation ordering check
- t6600: add test for merge-base early exit with clock skew
The early-exit optimization in 'paint_down_to_common()' has been gated
on the queue being generation-ordered, fixing a bug where 'git merge-
base' (without '--all') could return incorrect results on repositories
with v1 commit graphs and clock skew.
Comments?
cf. <xmqqa4sdw55v.fsf@gitster.g>
source: <pull.2162.git.1782739162.gitgitgadget@gmail.com>
* bl/t7412-use-test-path-helpers (2026-06-29) 1 commit
- submodule absorbgitdirs tests: use test_* helper functions
't7412' that tests 'git submodule absorbgitdirs' has been modernized
to use 'test_path_is_file', 'test_path_is_dir', and
'test_path_is_missing' helper functions instead of raw 'test -[fde]'
commands.
Waiting for response(s) to review comment(s).
cf. <akTKHfKPsP3-Rn31@pks.im>
source: <20260630020220.1559190-1-bblima@usp.br>
* jk/format-patch-leakfix (2026-06-29) 2 commits
(merged to 'next' on 2026-07-06 at 35aff0d609)
+ format-patch: fix leak of rev_info in prepare_bases()
+ t: move LSan errors from stdout to stderr
A memory leak in the '--base' handling of 'git format-patch' has been
plugged, and the leak-reporting of the test suite when running under a
TAP harness has been improved.
Will merge to 'master'.
cf. <akOZy-BygZS8fqPM@pks.im>
source: <20260630063944.GA3733670@coredump.intra.peff.net>
* ps/setup-split-discovery-and-setup (2026-06-30) 16 commits
- setup: mark `set_git_work_tree()` as file-local
- setup: pass worktree to `init_db()`
- setup: drop redundant configuration of `startup_info->have_repository`
- setup: make repository discovery self-contained
- setup: propagate prefix via repository discovery
- setup: drop static `cwd` variable
- setup: move prefix into repository
- setup: embed repository format in discovery
- setup: introduce explicit repository discovery
- setup: split up concerns of `setup_git_env_internal()`
- setup: unify setup of shallow file
- setup: mark bogus worktree in `apply_repository_format()`
- setup: rename `check_repository_format_gently()`
- Merge branch 'jk/repo-info-path-keys' into ps/setup-split-discovery-and-setup
- Merge branch 'ps/setup-drop-global-state' into ps/setup-split-discovery-and-setup
- Merge branch 'ps/refs-onbranch-fixes' into ps/setup-split-discovery-and-setup
The repository discovery and repository configuration phases, which
were previously intertwined in 'setup.c', have been split. Repository
discovery has been updated to populate a 'struct repo_discovery'
without modifying the repository state, which is then taken by
repository configuration to initialize the repository, paving the way
for clean unification of repository configuration.
Needs review.
(a newer iteration v2 exists as <20260707-pks-setup-split-discovery-and-setup-v2-0-aab372cd227c@pks.im>)
source: <20260630-pks-setup-split-discovery-and-setup-v1-0-13864eb5a032@pks.im>
* pw/rebase-drop-notes-with-commit (2026-06-30) 15 commits
- amend! sequencer: simplify pick_one_commit()
- amend! sequencer: remove unnecessary "or" in pick_one_commit()
- fixup! sequencer: never reschedule on failed commit
- fixup! sequencer: be more careful with external merge
- sequencer: do not record dropped commits as rewritten
- sequencer: use an enum to represent result of picking a commit
- sequencer: return early from pick_one_commit() on success
- sequencer: simplify pick_one_commit()
- sequencer: remove unnecessary condition in pick_one_commit()
- sequencer: simplify handing of fixup with conflicts
- sequencer: remove unnecessary "or" in pick_one_commit()
- sequencer: never reschedule on failed commit
- sequencer: be more careful with external merge
- sequencer: move definition of is_final_fixup()
- t3400: restore coverage for note copying with apply backend
The rebase post-rewrite notes-copying logic has been corrected. When a
commit is dropped during rebase (e.g., because its changes are already
upstream), it is no longer recorded as rewritten, preventing its notes
from being copied to an unrelated commit.
Expecting a reroll.
cf. <dce74d17-eefd-40bb-82f3-f6b3179cc2b6@gmail.com>
source: <cover.1782833268.git.phillip.wood@dunelm.org.uk>
* jk/bloom-leak-fixes (2026-06-30) 3 commits
- line-log: drop extra copy of range with bloom filters
- revision: avoid leaking bloom keyvecs with multiple traversals
- bloom: make bloom-filter slab initialization idempotent
Various memory leaks in the Bloom-filter code paths that are exposed
when running tests with the 'GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS=1'
environment variable have been plugged.
Will merge to 'next'.
cf. <b641aed4-ad52-477b-b1d8-9d8e470be46f@gmail.com>
cf. <xmqqo6gqobrt.fsf@gitster.g>
source: <20260701063538.GA2579765@coredump.intra.peff.net>
* js/ci-dockerized-pid-limit (2026-07-04) 1 commit
- ci(dockerized): raise the PID limit for private repositories
Dockerized CI jobs running in private GitHub repositories have been
adjusted to use explicit process and file limits, preventing resource
exhaustion errors on private runners.
Will merge to 'next'.
cf. <xmqqh5medmzh.fsf@gitster.g>
source: <pull.2164.v2.git.1783155124926.gitgitgadget@gmail.com>
* js/coverity-fixes (2026-07-05) 12 commits
- mingw: make `exit_process()` own the process handle on all paths
- fsmonitor: plug token-data leak on early daemon-startup failures
- reftable/table: release filter on error path
- imap-send: avoid leaking the IMAP upload buffer
- worktree: fix resource leaks when branch creation fails
- submodule: fix cwd leak in `get_superproject_working_tree()`
- dir: free allocations on parse-error paths in `read_one_dir()`
- line-log: avoid redundant copy that leaks in process_ranges
- run-command: avoid `close(-1)` in `start_command()` error paths
- download_https_uri_to_file(): do not leak fd upon failure
- loose: avoid closing invalid fd on error path
- load_one_loose_object_map(): fix resource leak
Various resource leaks, invalid file descriptor closures, and process
handle ownership issues flagged by Coverity have been fixed.
Needs review.
source: <pull.2163.v2.git.1783239870.gitgitgadget@gmail.com>
* tb/repack-geometric-cruft (2026-06-28) 11 commits
- SQUASH??? bare grep !???
- repack: support combining '--geometric' with '--cruft'
- pack-objects: support '--refs-snapshot' with 'follow-reachable'
- pack-objects: introduce '--stdin-packs=follow-reachable'
- pack-objects: extract `stdin_packs_add_all_pack_entries()`
- repack-geometry: drop unused redundant-pack removal
- repack: delete geometric packs via existing_packs
- repack: teach MIDX retention about geometric rollups
- repack: mark geometric progression of packs as retained
- repack: extract `locate_existing_pack()` helper
- repack: unconditionally exclude non-kept packs
'git repack' has been taught to accept '--geometric' and '--cruft'
together. When both are given, the geometric repack rolls up non-cruft
packs as usual, while a separate cruft pack is written to collect
unreachable objects.
Expecting a reroll.
cf. <aj8cOhH6hGVZIFft@nand.local>
source: <cover.1782500507.git.me@ttaylorr.com>
* jk/reftable-leakfix (2026-06-28) 1 commit
(merged to 'next' on 2026-07-06 at 55ce81f2d5)
+ reftable: fix unlikely leak on API error
A memory leak in the 'reftable_writer_new()' initialization function
has been fixed by delaying the allocation of 'struct reftable_writer'
until after input options are validated.
Will merge to 'master'.
cf. <akIPBJLtPqDjQt-A@pks.im>
source: <20260628090314.GA661068@coredump.intra.peff.net>
* ad/gpg-strip-cr-before-lf (2026-06-24) 1 commit
(merged to 'next' on 2026-07-06 at b099249efd)
+ gpg-interface: fix strip_cr_before_lf to only remove CR before LF
The GPG and SSH signature parsing code has been corrected to strip
carriage return characters only when they immediately precede line
feeds, instead of unconditionally stripping all carriage returns.
Will merge to 'master'.
source: <20260624093618.17456-1-antonio.destefani08@gmail.com>
* jt/receive-pack-use-odb-transactions (2026-06-23) 6 commits
- builtin/receive-pack: stage incoming objects via ODB transactions
- odb/transaction: add transaction env interface
- odb/transaction: propagate commit errors
- odb/transaction: propagate begin errors
- object-file: propagate files transaction errors
- object-file: rename files transaction prepare function
'git receive-pack' has been refactored to use ODB transaction
interfaces instead of directly managing 'tmp_objdir' for staging
incoming objects, bringing it closer to being ODB backend agnostic.
Expecting a reroll.
cf. <aju_AmlKVi5UZaiQ@pks.im>
cf. <akK05yZ6843K8Vdd@denethor>
cf. <akLLB_J-pvJ7iR7c@denethor>
source: <20260624041920.2601961-1-jltobler@gmail.com>
* ps/odb-drop-whence (2026-07-02) 7 commits
- odb: document object info fields
- odb: drop `whence` field from object info
- treewide: convert users of `whence` to the new source field
- odb: add `source` field to struct object_info_source
- odb: make backend-specific fields optional
- packfile: thread odb_source_packed through packed_object_info()
- Merge branch 'ps/odb-source-packed' into ps/odb-drop-whence
The 'whence' field in 'struct object_info' has been removed,
refactoring backend-specific object information retrieval into an opt-
in 'struct object_info_source' structure.
Will merge to 'next'.
cf. <xmqqv7b0rmt6.fsf@gitster.g>
source: <20260702-b4-pks-odb-drop-whence-v2-0-b0af7468ad95@pks.im>
* ps/reftable-hardening (2026-07-03) 12 commits
- reftable/table: fix OOB read on truncated table
- reftable/table: fix NULL pointer access when seeking to bogus offsets
- reftable/block: fix OOB read with bogus restart offset
- reftable/block: fix use of uninitialized memory when binsearch fails
- reftable/block: fix OOB read with bogus restart count
- reftable/block: fix OOB read with bogus block size
- reftable/block: fix OOB write with bogus inflated log size
- t/unit-tests: introduce test helper to write reftable blocks
- reftable/record: don't abort when decoding invalid ref value type
- reftable/basics: fix OOB read on binary search of empty range
- oss-fuzz: add fuzzer for parsing reftables
- meson: support building fuzzers with libFuzzer
The reftable code has been hardened against corrupted tables by
fixing out-of-bounds writes, out-of-bounds reads, and abort calls
during parsing.
Needs review.
source: <20260703-pks-reftable-hardening-v3-0-b87c555b9920@pks.im>
* hn/branch-push-slip-advice (2026-06-27) 2 commits
(merged to 'next' on 2026-07-06 at acdff65ac5)
+ push: suggest <remote> <branch> for a slash slip
+ branch: suggest <remote>/<branch> on upstream slip
When 'git push origin/main' or 'git branch origin main' is run, the
command is now recognized as a potential typo, and advice has been
added to offer a typofix.
Will merge to 'master'.
cf. <xmqqfr272lq7.fsf@gitster.g>
source: <pull.2331.v3.git.git.1782583345.gitgitgadget@gmail.com>
* jc/history-message-prep-fix (2026-06-29) 1 commit
(merged to 'next' on 2026-07-06 at 00534a21ce)
+ history: streamline message preparation and plug file stream leak
A write file stream resource leak has been fixed as part of a code
cleanup.
Will merge to 'master'.
cf. <akO1mhi2u2PntLbt@pks.im>
source: <xmqqmrwdxrat.fsf@gitster.g>
* ty/migrate-excludes-file (2026-07-01) 1 commit
- environment: move excludes_file into repo_config_values
The 'excludes_file' and various other global configuration variables
(including 'editor_program', 'pager_program', 'askpass_program', and
'push_default') have been migrated into the per-repository structure.
Waiting for response(s) to review comment(s).
(a newer iteration v7 exists as <20260706142530.3681520-1-cat@malon.dev>)
cf. <xmqqpl10auhw.fsf@gitster.g>
source: <20260701180813.776173-2-cat@malon.dev>
* kk/merge-base-exhaustion (2026-07-01) 10 commits
. commit-reach: remove commit-date ordering fallback
. commit-reach: move min_generation check into paint_queue_get()
. commit-reach: terminate merge-base walk when one paint side is exhausted
. commit-reach: introduce struct paint_state with per-side counters
. t6600: add clock-skew topologies and step counts for edge cases
. commit-reach: add trace2 instrumentation to paint_down_to_common()
. t6099, t6600: add side-exhaustion regression tests
. t6600: add test cases for side-exhaustion edge cases
. test-lib-functions: improve diagnostic output for trace2 data assertions
. Documentation/technical: add paint-down-to-common doc
The merge-base computation has been optimized by stopping the walk
early when one side's exclusive commits in the queue are exhausted,
yielding significant speedups for queries with one-sided histories.
Expecting a reroll.
cf. <CAL71e4PgcZDK-gJziJa_yjEqX9TE+PFMwZn0xbjAUzuUDDDBYA@mail.gmail.com>
source: <pull.2149.v5.git.1782923832.gitgitgadget@gmail.com>
* dk/meson-enable-use-nsec-build (2026-06-20) 1 commit
- meson: wire up USE_NSEC build knob
The 'USE_NSEC' build knob, which enables support for sub-second file
timestamp resolution, has been wired up to the Meson build system.
Expecting a reroll.
cf. <CALnO6CDm74rCBQu6Q0djsvtuw5U14V=PApptcZTgP+pic1f_AA@mail.gmail.com>
cf. <ajjuoS5Qc3K0nCRl@pks.im>
cf. <akIL6oJgUv8J8SB2@pks.im>
source: <c4c5ade901ff95b0f95939ea818870e4f3d59da1.1781971201.git.ben.knoble+github@gmail.com>
* ps/libgit-in-subdir (2026-06-30) 3 commits
- Move libgit.a sources into separate "lib/" directory
- t/helper: prepare "test-example-tap.c" for introduction of "lib/"
- Merge branch 'ps/odb-source-packed' into ps/libgit-in-subdir
The source files for 'libgit.a' have been moved into a new 'lib/'
directory to clean up the top-level directory and clearly separate
library code.
Comments?
cf. <akX1TMoRr87Id8Ss@pks.im>
source: <20260701-pks-libgit-in-subdir-v3-0-5e4860056094@pks.im>
* ps/odb-generalize-prepare (2026-06-22) 3 commits
(merged to 'next' on 2026-07-06 at 6132517517)
+ odb: introduce `odb_prepare()`
+ odb/source: generalize `reprepare()` callback
+ Merge branch 'ps/odb-source-packed' into ps/odb-generalize-prepare
The 'reprepare()' callback for object database sources has been
generalized into a 'prepare()' callback with an optional flush cache
flag, and a new 'odb_prepare()' wrapper has been introduced to allow
pre-opening object database sources.
Will merge to 'master'.
cf. <87ik704f1j.fsf@emacs.iotcl.com>
source: <20260622-b4-pks-odb-generalize-prepare-v1-0-d2a5c5d13144@pks.im>
* ty/migrate-ignorecase (2026-06-19) 2 commits
- config: use repo_ignore_case() to access core.ignorecase
- environment: move ignore_case into repo_config_values
The global configuration variable 'ignore_case' (representing the
'core.ignorecase' configuration) has been migrated into 'struct
repo_config_values' to tie it to a specific repository instance.
Waiting for comments from Johannes.
cf. <xmqqzf0mzc7j.fsf@gitster.g>
source: <20260619155152.642760-1-cat@malon.dev>
* mm/line-log-limited-ops (2026-06-27) 7 commits
- diffcore-pickaxe: scope -G to the -L tracked range
- diff: support --check with -L line ranges
- line-log: support diff 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 and group the line-range filter for clarity
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:path.
Needs review.
source: <pull.2152.v2.git.1782581342.gitgitgadget@gmail.com>
* hn/history-squash (2026-07-06) 5 commits
- history: re-edit a squash with every message
- sequencer: extract helpers for the squash message markers
- history: add squash subcommand to fold a range
- history: give commit_tree_ext a message template
- history: extract helper for a commit's parent tree
The experimental 'git history' command has been taught a new 'squash'
subcommand to fold a range of commits into a single commit, replaying
any descendants on top.
Waiting for response(s) to review comment(s).
cf. <38493ca6-8fdd-4b6c-9972-5145f3bf0aa4@gmail.com>
source: <pull.2337.v7.git.git.1783327849.gitgitgadget@gmail.com>
* ps/refs-writing-subcommands (2026-07-06) 5 commits
- builtin/refs: add "rename" subcommand
- builtin/refs: add "create" subcommand
- builtin/refs: add "update" subcommand
- builtin/refs: add "delete" subcommand
- builtin/refs: drop `the_repository`
The 'git refs' toolbox has been extended with new 'create', 'delete',
'update', and 'rename' subcommands to create, delete, update, and
rename references, respectively.
Will merge to 'next'.
source: <20260706-pks-refs-writing-subcommands-v4-0-d51f6ce7f830@pks.im>
* wy/doc-myfirstcontribution-trim-quotes (2026-06-11) 1 commit
- MyFirstContribution: mention trimming quoted text in replies
The contributor guide has been updated to advise new contributors to
trim irrelevant quoted text when replying to review comments, matching
the existing advice given to reviewers.
Comments?
cf. <xmqqcxxwljue.fsf@gitster.g>
source: <080402ff0ac8127b654dccea59a1bf643df62a5c.1781186476.git.wy@wyuan.org>
* 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, and the pack
exclusion logic incorrectly skipped packs from layers above the
selected base, breaking reachability closure for bitmaps.
Comments?
source: <cover.1781294771.git.me@ttaylorr.com>
* mm/test-grep-lint (2026-07-05) 6 commits
- t: add greplint to detect bare grep assertions
- t: convert grep assertions to test_grep
- t: fix Lexer line count for $() inside double-quoted strings
- t: extract chainlint's parser into shared module
- t: fix grep assertions missing file arguments
- t/README: document test_grep helper
The test suite has been updated to use the 'test_grep' helper instead
of bare 'grep' for test assertions, allowing file contents to be
printed on failure for easier debugging. A new 'greplint' linter has
been introduced to detect and prevent new bare 'grep' assertions from
being added to the test suite.
Needs review.
source: <pull.2135.v4.git.1783314119.gitgitgadget@gmail.com>
* kk/prio-queue-get-put-fusion (2026-06-08) 2 commits
(merged to 'next' on 2026-07-06 at aa748c4564)
+ prio-queue: fold lazy_queue into prio_queue for automatic get+put fusion
+ prio-queue: rename .nr to .nr_ and add accessor helpers
The lazy priority queue optimization pattern (deferring actual removal
in 'prio_queue_get()' to allow get+put fusion) has been folded
directly into 'prio_queue' itself, speeding up commit traversal
workflows and simplifying callers.
Will merge to 'master'.
cf. <xmqqh5mjrbgq.fsf@gitster.g>
source: <pull.2140.v4.git.1780945851.gitgitgadget@gmail.com>
* td/ref-filter-memoize-contains (2026-06-12) 3 commits
- commit-reach: die on contains walk errors
- ref-filter: memoize --contains with generations
- commit-reach: reject cycles in contains walk
'git branch --contains' and 'git for-each-ref --contains' have
been optimized to use the memoized commit traversal previously
used only by 'git tag --contains', significantly speeding up
connectivity checks across many candidate refs with shared
history.
Comments?
cf. <xmqqqzlpulkp.fsf@gitster.g>
source: <20260612-ref-filter-memoized-contains-v4-0-5ed39fd001dd@gmail.com>
* tc/replay-linearize (2026-07-02) 3 commits
- replay: offer an option to linearize the commit topology
- replay: resolve the replay base outside pick_regular_commit()
- replay: add helper to put entry into replayed_commits
The 'git replay' command has been taught the '--linearize' option to
drop merge commits and linearize the replayed history, mimicking 'git
rebase --no-rebase-merges'.
Waiting for response(s) to review comment(s).
cf. <xmqqbjcnhjvk.fsf@gitster.g>
source: <20260702-toon-git-replay-drop-merges-v6-0-78a07cdd0382@iotcl.com>
* ps/cat-file-remote-object-info (2026-07-01) 13 commits
- cat-file: make remote-object-info allow-list dynamic
- cat-file: validate remote atoms with an allow-list
- cat-file: add remote-object-info to batch-command
- transport: add client support for object-info
- serve: advertise object-info feature
- fetch-pack: move fetch initialization
- connect: make `write_fetch_command_and_capabilities()` more generic
- fetch-pack: move `write_fetch_command_and_capabilities()` to connect.c
- fetch-pack: drop static `advertise_sid` variable
- t1006: split test utility functions into new 'lib-cat-file.sh'
- cat-file: declare loop counter inside for()
- git-compat-util: add `strtoumax_szt()` with error handling
- transport-helper: fix memory leak of helper on disconnect
The 'remote-object-info' command has been added to 'git cat-file
--batch-command', allowing clients to request object metadata
(currently size) from a remote server via protocol v2 without
downloading the entire object. Format placeholders are dynamically
filtered on the client based on server-advertised capabilities,
returning empty strings for inapplicable or unsupported fields.
Expecting a reroll.
cf. <CAN5EUNTYeDrQMor29eYMhJD0jcdRQq36ZA6BgupV8gG9xs9rFQ@mail.gmail.com>
source: <20260701-ps-eric-work-rebase-v15-0-c88a43b63917@gmail.com>
* sn/rebase-update-refs-symrefs (2026-06-03) 1 commit
- rebase: skip branch symref aliases
'git rebase --update-refs' has been taught to resolve local branch
symrefs to their referents before queuing updates, ensuring aliases of
the current branch are skipped and duplicate updates are avoided to
prevent failures when branch aliases are present.
Waiting for response(s) to review comment(s) for too long, stalled.
cf. <f982c386-e329-4ab0-b695-e540bcb9de3d@gmail.com>
source: <pull.2126.v2.git.1780482436865.gitgitgadget@gmail.com>
* mm/diff-process-hunks (2026-06-14) 6 commits
- blame: consult diff process for no-hunk detection
- diff: bypass diff process with --no-ext-diff and in format-patch
- diff: add long-running diff process via diff.<driver>.process
- sub-process: separate process lifecycle from hashmap management
- userdiff: add diff.<driver>.process config
- xdiff: support external hunks via xpparam_t
A new 'diff.<driver>.process' configuration has been introduced to
allow a long-running external process to act as a hunk provider,
allowing external tools to control which lines Git considers changed
while leaving all output formatting (word diff, color, blame, etc.) to
Git's standard pipeline.
Expecting a reroll.
cf. <CAC2Qwm+P=fZOtpfMPeMiSXf3Afk6OLYpTP8Br78_PRA8WNL1Wg@mail.gmail.com>
source: <pull.2120.v4.git.1781463564.gitgitgadget@gmail.com>
* ty/migrate-trust-executable-bit (2026-06-19) 3 commits
- environment: move trust_executable_bit into repo_config_values
- read-cache: move 'ce_mode_from_stat()' to 'read-cache.c'
- read-cache: remove redundant extern declarations
The 'trust_executable_bit' (coming from 'core.filemode'
configuration) has been migrated into 'repo_config_values' to tie it
to a specific repository instance.
Comments?
cf. <xmqqcxx9ukvw.fsf@gitster.g>
source: <20260619162105.648495-1-cat@malon.dev>
* kk/prio-queue-cascade-sift (2026-06-01) 1 commit
- prio-queue: use cascade-down for faster extract-min
'prio_queue_get()' has been optimized by using a cascade-down approach
(promoting the smaller child at each level and sifting up the last
element from the leaf vacancy), which halves the number of comparisons
per extract-min operation in the common case.
On hold, waiting for kk/prio-queue-get-put-fusion to land first.
cf. <CAL71e4MYNiScZjTwkApjDAjRh2LM0_SP59h5HCTywV-Pua03tw@mail.gmail.com>
source: <pull.2132.v2.git.1780301856444.gitgitgadget@gmail.com>
* ps/history-drop (2026-07-01) 11 commits
- builtin/history: implement "drop" subcommand
- builtin/history: split handling of ref updates into two phases
- replay: expose `replay_result_queue_update()`
- reset: stop assuming that the caller passes in a clean index
- reset: allow the caller to specify the current HEAD object
- reset: introduce ability to skip updating HEAD
- reset: introduce dry-run mode
- reset: modernize flags passed to `reset_working_tree()`
- reset: rename `reset_head()`
- reset: drop `USE_THE_REPOSITORY_VARIABLE`
- read-cache: split out function to drop unmerged entries to stage 0
The experimental 'git history' command has been taught a new 'drop'
subcommand to remove a commit and replay its descendants onto its
parent.
Will merge to 'next'.
cf. <xmqq1pdmprbk.fsf@gitster.g>
cf. <CAP8UFD3OAktVQsLuqBNFH2uhEO31PH8ZF3ZT1ZW8k++XE8YLPw@mail.gmail.com>
source: <20260701-b4-pks-history-drop-v8-0-19b5cdf1facd@pks.im>
* kh/doc-trailers (2026-06-10) 10 commits
- doc: interpret-trailers: document comment line treatment
- doc: interpret-trailers: commit to “trailer block” term
- doc: interpret-trailers: join new-trailers again
- doc: interpret-trailers: add key format example
- doc: interpret-trailers: explain key format
- doc: interpret-trailers: explain the format after the intro
- doc: interpret-trailers: not just for commit messages
- doc: interpret-trailers: use “metadata” in Name as well
- doc: interpret-trailers: replace “lines” with “metadata”
- doc: interpret-trailers: stop fixating on RFC 822
Documentation for 'git interpret-trailers' has been updated to explain
the format of trailer keys (alphanumeric characters and hyphens),
replace outdated terminology, define key terms upfront, and document
how comment lines in the input are treated.
Expecting a reroll.
cf. <729baf6b-53ea-4e8d-95ab-5935667e66c2@app.fastmail.com>
source: <V3_CV_doc_int-tr_key_format.8a3@msgid.xyz>
* za/completion-hide-dotfiles (2026-06-20) 2 commits
- completion: hide dotfiles by default for path completion
- completion: hide dotfiles for selected path completion
Path completion for commands like 'git rm' and 'git mv' has been
updated to hide dotfiles by default unless the user explicitly starts
the path with a dot, matching standard shell-completion behavior.
Waiting for response(s) to review comment(s).
cf. <xmqqik71t3nr.fsf@gitster.g>
source: <pull.2311.v3.git.git.1781978156.gitgitgadget@gmail.com>
* ec/commit-fixup-options (2026-05-26) 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.
Comments?
source: <cover.1779792311.git.erik@cervined.in>
* kh/doc-replay-config (2026-06-05) 4 commits
- doc: replay: move “default” to the right-hand side
- doc: replay: use a nested description list
- doc: replay: improve config description
- doc: link to config for git-replay(1)
Documentation for 'git replay' has been updated to refer to its
configuration variables.
Comments?
source: <V3_CV_doc_replay_config.780@msgid.xyz>
* hn/branch-delete-merged (2026-06-24) 7 commits
- branch: add --dry-run for --delete-merged
- branch: add branch.<name>.deleteMerged opt-out
- branch: add --delete-merged <branch>
- branch: prepare delete_branches for a bulk caller
- branch: let delete_branches skip unmerged branches on bulk refusal
- branch: convert delete_branches() to a flags argument
- branch: add --forked filter for --list mode
The 'git branch' command has been taught the '--delete-merged' option
to remove local branches that have already been merged to the remote-
tracking branches they track.
Needs review.
source: <pull.2285.v18.git.git.1782338106.gitgitgadget@gmail.com>
* hn/checkout-track-fetch (2026-06-24) 2 commits
- checkout: extend --track with a "fetch" mode to refresh start-point
- branch: expose helpers for finding the remote owning a tracking ref
The 'git checkout --track=...' command has been taught to optionally
fetch the branch from the remote the new branch will work with.
Comments?
cf. <xmqq5x37h6fj.fsf@gitster.g>
source: <pull.2281.v15.git.git.1782338098.gitgitgadget@gmail.com>
* ps/shift-root-in-graph (2026-07-04) 3 commits
- graph: indent visual root in graph
- graph: add a 2 commit buffer for lookahead
- lib-log-graph: move check_graph function
'git log --graph' has been modified to visually distinguish parentless
'root' commits (and commits that become roots due to history
simplification) by indenting them, preventing them from appearing
falsely related to unrelated commits rendered immediately above them.
Expecting a reroll.
cf. <CAN5EUNQoLtJ9cGwe8RNJTTdngM=qoak2=5F+yc7TH94TmQn7uw@mail.gmail.com>
source: <20260704-ps-pre-commit-indent-v7-0-a94706cc8376@gmail.com>
next reply other threads:[~2026-07-07 17:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-07 17:18 Junio C Hamano [this message]
2026-07-08 11:45 ` What's cooking in git.git (Jul 2026, #03) Kristofer Karlsson
2026-07-08 16:14 ` Junio C Hamano
2026-07-08 18:03 ` Kristofer Karlsson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqeche67lr.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.