1077 lines
42 KiB
Plaintext
1077 lines
42 KiB
Plaintext
To: git@vger.kernel.org
|
|
Subject: What's cooking in git.git (Aug 2026, #13)
|
|
X-master-at: 1630431f326e15fcde608827b5ff38422528eb59
|
|
X-next-at: 10538fe6993d66efa04f9fa440a9c16590c0ae0a
|
|
Bcc: lwn@lwn.net, gitster@pobox.com
|
|
|
|
What's cooking in git.git (Aug 2026, #13)
|
|
-----------------------------------------
|
|
|
|
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 21st batch of topics have now graduated to the 'master' branch.
|
|
We have 601 non-merge commits in 'master' since Git 2.55. There
|
|
are 51 non-merge commits cooking in 'next' (note that some have
|
|
been reverted), and 187 non-merge commits, including those in and
|
|
out of 'next', in 'seen' as of this writing.
|
|
|
|
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']
|
|
|
|
* fr/pack-objects-trace-pack-bytes (2026-08-19) 1 commit
|
|
(merged to 'next' on 2026-08-24 at dcc6a34978)
|
|
+ pack-objects: trace pack bytes written
|
|
|
|
The pack-objects command has been updated to record the total bytes
|
|
written to pack files in trace2 output, allowing performance
|
|
analysis of different compression settings by comparing the
|
|
resulting pack sizes.
|
|
|
|
Graduated to 'master'.
|
|
cf. <aobFLJuiuM1EuNpv@pks.im>
|
|
cf. <20260820082102.GA2973952@coredump.intra.peff.net>
|
|
source: <c6a8cdac36d2202055d637ebcc97e484122cdcd4.1787158152.git.friel@openai.com>
|
|
|
|
|
|
* jt/receive-pack-pluggable-writes (2026-08-20) 9 commits
|
|
(merged to 'next' on 2026-08-24 at cf024e685d)
|
|
+ odb/transaction: add transaction interface to write packfiles
|
|
+ odb: return temporary ODB source when set
|
|
+ builtin/receive-pack: explicitly pass packfile fd
|
|
+ builtin/receive-pack: report unpack errors via strbuf
|
|
+ builtin/receive-pack: lift global state out of unpack()
|
|
+ builtin/receive-pack: read unpack limit config lazily
|
|
+ builtin/receive-pack: pass shallow file explicitly
|
|
+ odb/transaction: add transaction finalize interface
|
|
+ builtin/receive-pack: properly clean up keep files
|
|
|
|
The 'git receive-pack' command has been updated to use a new ODB
|
|
transaction interface for writing incoming packfiles, making it more
|
|
backend-agnostic.
|
|
|
|
Graduated to 'master'.
|
|
cf. <aohD54ZQEyybw008@pks.im>
|
|
cf. <xmqqo6evqzsu.fsf@gitster.g>
|
|
source: <20260820234940.894624-1-jltobler@gmail.com>
|
|
|
|
|
|
* kh/trailers-no-urls (2026-08-20) 1 commit
|
|
(merged to 'next' on 2026-08-24 at 11e10f8626)
|
|
+ trailers: stop recognizing URLs as trailers
|
|
+ Merge branch 'kh/doc-trailers' into kh/trailers-no-urls
|
|
|
|
The trailer parsing machinery has been updated to avoid mistaking
|
|
lines that begin with a URL (e.g., 'https://...') as trailer lines.
|
|
This prevents intended textual URLs from being mangled or mistakenly
|
|
treated as metadata keys.
|
|
|
|
Graduated to 'master'.
|
|
cf. <20260821004248.GA296777@coredump.intra.peff.net>
|
|
cf. <xmqqecfrqxic.fsf@gitster.g>
|
|
source: <V3_URLs_not_trailers.bfc@msgid.xyz>
|
|
|
|
|
|
* ps/odb-eagerly-load-alternates (2026-08-17) 5 commits
|
|
(merged to 'next' on 2026-08-24 at a431cd5887)
|
|
+ odb: drop `alternates_db` field
|
|
+ odb: drop `loaded_alternates` field
|
|
+ odb: eagerly initialize alternates
|
|
+ odb: decouple source path comparisons from `the_repository`
|
|
+ setup: create ref and object databases after config is written
|
|
+ Merge branch 'ps/odb-make-creation-pluggable' into ps/odb-eagerly-load-alternates
|
|
(this branch is used by ps/odb-alternates-at-creation and ps/odb-pluggable-fsck.)
|
|
|
|
The object database layer has been simplified by eagerly loading
|
|
alternate object directories upon initialization, instead of
|
|
deferring it to the first object lookup. This eliminates the need
|
|
for scattered lazy-loading calls throughout the codebase and paves
|
|
the way for integrating alternates with the pluggable backends.
|
|
|
|
Graduated to 'master'.
|
|
cf. <CAOLa=ZReodSXjEbQkFoxcofMLq6mUOjXANRg7bZ2uEKKQn=DXw@mail.gmail.com>
|
|
cf. <xmqqik53qz5j.fsf@gitster.g>
|
|
source: <20260817-pks-odb-eagerly-prepare-alternates-v3-0-1115a7e02467@pks.im>
|
|
|
|
|
|
* ps/odb-generic-corrupt-objects (2026-08-19) 5 commits
|
|
(merged to 'next' on 2026-08-23 at fe72e268a1)
|
|
+ odb: handle `OBJECT_INFO_DIE_IF_CORRUPT` generically
|
|
+ odb/source: allow `read_object_info()` to bubble up error messages
|
|
+ odb/source: let callers discern missing and corrupt objects
|
|
+ odb/source: introduce error status when reading objects
|
|
+ odb/source-packed: flag known-bad objects as corrupt and not missing
|
|
(this branch is used by en/midx-missing-pack-fallback.)
|
|
|
|
The object database (odb) API has been refactored to distinguish
|
|
between missing objects and corrupt ones by returning more
|
|
descriptive error statuses. Both the packed and loose backends now
|
|
faithfully propagate error details using a generic strbuf error
|
|
mechanism, removing backend-specific leakage from central lookup
|
|
paths.
|
|
|
|
Graduated to 'master'.
|
|
cf. <CAOLa=ZTVxdVAJynKjb0LjmZ-+b5nQmyD0Bm-aT81rOOdJ0a5yg@mail.gmail.com>
|
|
source: <20260819-pks-odb-generic-corrupt-objects-v2-0-a984e3a0ad6f@pks.im>
|
|
|
|
|
|
* ps/odb-geometric-repack-loose-threshold (2026-08-11) 1 commit
|
|
(merged to 'next' on 2026-08-24 at f91738c4a4)
|
|
+ odb/files: be less aggressive with geometric repacking
|
|
|
|
The threshold for geometric repacking to trigger based on loose
|
|
object count has been adjusted to match that of 'git gc --auto',
|
|
preventing over-aggressive repacking during concurrent writes.
|
|
|
|
Graduated to 'master'.
|
|
cf. <aoTcxJSmKWNhnjZ9@denethor>
|
|
cf. <CABPp-BHgyVTHB_OGmCL4JprFFe6_MapOQNSjUOhJxu-+oWbErg@mail.gmail.com>
|
|
source: <20260811-pks-geometric-maintenance-reduce-frequency-v1-1-7a54c42355ac@pks.im>
|
|
|
|
|
|
* ps/odb-pluggable-pack-generation (2026-08-20) 6 commits
|
|
(merged to 'next' on 2026-08-24 at 4d8acd97d0)
|
|
+ bundle: generate packfiles via the object database
|
|
+ bundle: get (mostly) rid of `the_repository`
|
|
+ builtin/bundle: refactor option handling for progress meter
|
|
+ send-pack: generate packfiles via the object database
|
|
+ upload-pack: generate packfiles via the object database
|
|
+ odb: introduce interface to generate packfiles
|
|
(this branch is used by ps/odb-pluggable-fsck.)
|
|
|
|
The mechanism to generate a packfile corresponding to the result of
|
|
a fetch/push has been made pluggable through a set of object
|
|
database callback functions, removing hardcoded references to
|
|
'pack-objects' and enabling alternative ODBs to serve packfiles
|
|
themselves.
|
|
|
|
Graduated to 'master'.
|
|
cf. <CABPp-BHAeb5Q6kWw8e0fz9+avKyJL0_k7cUzRhesHScJjB3Xfw@mail.gmail.com>
|
|
cf. <CAOLa=ZQMjb1SzYTVVuMF0ajmre_5_q=L6bmSQwYY233f-RiVXA@mail.gmail.com>
|
|
source: <20260821-b4-pks-odb-generate-pack-v4-0-074e8bd641f8@pks.im>
|
|
|
|
|
|
* vm/complete-history (2026-08-13) 4 commits
|
|
(merged to 'next' on 2026-08-24 at f6498b4afc)
|
|
+ completion: complete 'git history split' pathspecs
|
|
+ completion: complete 'git history --update-refs' values
|
|
+ completion: complete 'git history --empty' values
|
|
+ completion: add 'git history' subcommands
|
|
|
|
The command line completion (in contrib/) has been taught to handle
|
|
the experimental 'git history' command.
|
|
|
|
Graduated to 'master'.
|
|
cf. <aoWP3TYq5rNjUx7S@pks.im>
|
|
cf. <xmqqse49uanx.fsf@gitster.g>
|
|
source: <20260813-history_autocompletion-v3-0-69eed1cea93a@kernel.org>
|
|
|
|
|
|
* yn/worktree-add-no-dwim-with-b (2026-08-20) 1 commit
|
|
(merged to 'next' on 2026-08-23 at 6e4bf24274)
|
|
+ worktree add: shouldn't dwim if -b or -B is given
|
|
|
|
The DWIM logic in 'git worktree add' sometimes tried to infer a
|
|
remote-tracking branch when an explicit '-b' or '-B' option was
|
|
given to create a new branch, causing the explicit branch name to
|
|
be ignored, which has been corrected.
|
|
|
|
Graduated to 'master'.
|
|
cf. <xmqqecfssnk0.fsf@gitster.g>
|
|
source: <pull.2192.v4.git.1787221888406.gitgitgadget@gmail.com>
|
|
|
|
--------------------------------------------------
|
|
[New Topics]
|
|
|
|
* jc/checkout-refactor (2026-08-30) 8 commits
|
|
- checkout: move post_checkout_hook() to checkout.c
|
|
- checkout: wrap overly long lines
|
|
- checkout: restructure switch, restore, and checkout entrypoints
|
|
- checkout: extract branch setup and tracking helpers
|
|
- checkout: extract option validation and pathspec helpers
|
|
- checkout: validate stage and merge option compatibility in checkout_paths()
|
|
- checkout: validate new branch name in checkout_branch()
|
|
- checkout: pass cb_option explicitly to branch name parsers
|
|
|
|
The front-end code for 'git checkout', 'git switch', and 'git
|
|
restore' has been restructured to cleanly separate their pathspec
|
|
and branch handling, eliminating a common bottleneck and paving the
|
|
way to libify utility helpers.
|
|
|
|
Needs review.
|
|
source: <20260830204835.1040408-1-gitster@pobox.com>
|
|
|
|
|
|
* hk/typofix (2026-08-30) 1 commit
|
|
- typofix: fix spelling mistakes in comments and test description
|
|
|
|
Various spelling mistakes in comments and test descriptions have
|
|
been corrected.
|
|
|
|
Expecting a reroll.
|
|
cf. <DL3BN8L6HK8O.T44IZ297KCF3@gmail.com>
|
|
source: <20260830-typo-v1-1-d397c8dfb301@gmail.com>
|
|
|
|
|
|
* ll/doc-pushcert-if-asked (2026-08-29) 1 commit
|
|
- doc: remote-helpers: option pushcert if-asked
|
|
|
|
he 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>
|
|
|
|
--------------------------------------------------
|
|
[Stalled]
|
|
|
|
* 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.
|
|
|
|
Waiting for response, stalled.
|
|
cf. <xmqq1pbkefh0.fsf@gitster.g>
|
|
source: <cover.1779792311.git.erik@cervined.in>
|
|
|
|
|
|
* ps/libgit-in-subdir (2026-07-12) 2 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. This topic has been ejected for now, as it causes too
|
|
many evil merges with other topics.
|
|
|
|
Waiting for response for too long, stalled.
|
|
cf. <xmqqqzkx9t95.fsf@gitster.g>
|
|
cf. <al6yCTDjBRn2HGq0@com-79390>
|
|
cf. <xmqqqzk2t7sm.fsf@gitster.g>
|
|
cf. <xmqq7blo4g7g.fsf@gitster.g>
|
|
source: <20260713-pks-libgit-in-subdir-v4-0-696240876eb1@pks.im>
|
|
|
|
|
|
* hs/rebase-continue-edit (2026-07-21) 1 commit
|
|
- rebase: add --[no-]edit to --continue
|
|
|
|
Support for skipping the editor when continuing a rebase after
|
|
conflict resolution has been added with the '--no-edit' option, and
|
|
forcing it with '--edit'. A new configuration variable
|
|
'rebase.noEdit' can be used to set the default behavior.
|
|
|
|
Waiting for response for too long, stalled.
|
|
cf. <xmqqldb4xlqa.fsf@gitster.g>
|
|
cf. <db7edc66-9b2a-47bc-98db-87d01885cef0@gmail.com>
|
|
source: <20260721140443.1809379-2-hugo@hsal.es>
|
|
|
|
|
|
* sn/rebase-update-refs-symrefs (2026-07-22) 2 commits
|
|
- rebase: guard non-branch symref targets
|
|
- 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 for too long, stalled.
|
|
cf. <1eba5fb2-ab76-41e9-955d-e283256ad25d@gmail.com>
|
|
cf. <98682fa4-55d9-4829-97f1-02e244b35266@gmail.com>
|
|
source: <pull.2126.v3.git.1784708107.gitgitgadget@gmail.com>
|
|
|
|
|
|
* tb/pack-with-duplicates (2026-07-24) 5 commits
|
|
- pack-bitmap: handle duplicate pack entries during MIDX reuse
|
|
- test-tool bitmap: reject packs with duplicate objects
|
|
- midx: verify duplicate pack entries by OID and offset
|
|
- packfile: recover delta cycles through duplicate entries
|
|
- t5308: test reverse indexes with duplicate objects
|
|
|
|
The handling of packfiles with duplicate object entries has been
|
|
hardened. Specifically, reverse index lookup, delta cycle
|
|
recovery, multi-pack-index verification, and pack reuse paths have
|
|
been updated to correctly handle or gracefully reject duplicate
|
|
entries.
|
|
|
|
Waiting for response for too long, stalled.
|
|
cf. <xmqqecgs3vg6.fsf@gitster.g>
|
|
source: <cover.1784927134.git.ttaylorr@openai.com>
|
|
|
|
|
|
* tc/replay-linearize (2026-08-31) 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'.
|
|
|
|
Needs review.
|
|
source: <20260831-toon-git-replay-drop-merges-v9-0-61c4232c6f36@iotcl.com>
|
|
|
|
|
|
* cl/regexec-macos-leak (2026-07-28) 2 commits
|
|
- SQUASH???
|
|
- regexec: work around macOS TRE leak on invalid UTF-8
|
|
|
|
A compatibility workaround has been introduced for macOS to address
|
|
a memory leak in the system regex engine when it encounters invalid
|
|
multibyte sequences. The workaround segments the input buffer at
|
|
invalid byte boundaries and searches each valid segment separately
|
|
using regexec(), avoiding the leaking path.
|
|
|
|
Waiting for response for too long, stalled.
|
|
cf. <xmqqse52bpa9.fsf@gitster.g>
|
|
cf. <anL7qL2-4h8ZlLcg@pks.im>
|
|
source: <20260728052538.12429-1-chungmin@chungminlee.com>
|
|
|
|
|
|
* cc/lazy-fetch-trusted-bit (2026-08-13) 5 commits
|
|
- builtin/upload-pack: set GIT_NO_LAZY_FETCH to 0 on trusted repo
|
|
- upload-pack: read uploadpack.lazyFetchTrusted
|
|
- setup: add 'allow_dot' arg to path_allowlist_apply()
|
|
- setup: extract path_allowlist_apply()
|
|
- promisor-remote: factor out lazy_fetch_objects()
|
|
|
|
A new 'uploadpack.lazyFetchTrusted' configuration variable has been
|
|
introduced to allow 'upload-pack' to lazily fetch missing objects from
|
|
configured promisor remotes when serving trusted repositories.
|
|
|
|
Waiting for response for too long, stalled.
|
|
cf. <xmqq1pc0mr5i.fsf@gitster.g>
|
|
cf. <xmqqecg0oabe.fsf@gitster.g>
|
|
cf. <xmqqy0e8mv0k.fsf@gitster.g>
|
|
cf. <xmqqjypsoami.fsf@gitster.g>
|
|
cf. <xmqq1pc0mr5i.fsf@gitster.g>
|
|
source: <20260813154748.2378747-1-christian.couder@gmail.com>
|
|
|
|
--------------------------------------------------
|
|
[Cooking]
|
|
|
|
* jc/you-still-use-that (2026-08-27) 1 commit
|
|
(merged to 'next' on 2026-08-30 at d8f3941368)
|
|
+ you_still_use_that(): reword the instructions
|
|
|
|
The instructions for deprecated commands emitted by
|
|
you_still_use_that() have been reworded to clarify that the removal
|
|
decision is final and to provide more assertive guidance on finding
|
|
a replacement.
|
|
|
|
Will merge to 'master'.
|
|
source: <xmqqse3z8m5g.fsf_-_@gitster.g>
|
|
|
|
|
|
* ws/squelch-svn-migrate (2026-08-27) 2 commits
|
|
- Makefile: add NO_GIT_SVN knob to skip building/installing git-svn
|
|
- git-svn: don't print v1-layout migration noise when there's nothing to migrate
|
|
|
|
Needs review.
|
|
source: <20260827234345.1037130-1-wesleys@opperschaap.net>
|
|
|
|
|
|
* dw/config-read-both-global (2026-08-23) 3 commits
|
|
- config: read global scope via config_sequence
|
|
- config: let sequence require a successful file
|
|
- path: use forward slashes in XDG config on Windows
|
|
|
|
The git config --global read operations have been updated to respect
|
|
both $HOME/.gitconfig and $XDG_CONFIG_HOME/git/config, fixing an
|
|
inconsistency where only the former was read when both configuration
|
|
files are present.
|
|
|
|
Waiting for response.
|
|
cf. <xmqqo6esti9o.fsf@gitster.g>
|
|
cf. <xmqqecfkhify.fsf@gitster.g>
|
|
cf. <xmqqy0dsg2vt.fsf@gitster.g>
|
|
cf. <xmqqse40g22c.fsf@gitster.g>
|
|
source: <20260823-fix-config-list-global-home-and-xdg-v2-0-b29cc63f017b@microsoft.com>
|
|
|
|
|
|
* vv/branch-recurse-no-start-ref (2026-08-21) 2 commits
|
|
- branch: allow recursion with no tracking name
|
|
- branch: do not track a start point with no ref
|
|
|
|
The --recurse-submodules option in 'git branch' has been fixed to
|
|
avoid a crash when the start point is not a reference (e.g., a raw
|
|
object ID). The creation path now skips setting up tracking and
|
|
properly forwards the absent tracking name to the submodule helper.
|
|
|
|
Needs review.
|
|
source: <20260822-vv-branch-recurse-no-start-ref-v1-0-46dc140acaa8@zitro.id>
|
|
|
|
|
|
* kn/reftable-optimize-reloading (2026-08-24) 4 commits
|
|
(merged to 'next' on 2026-08-28 at d714ed570a)
|
|
+ reftable/stack: avoid reloading the stack when already locked
|
|
+ reftable/stack: move list lock to `struct reftable_stack`
|
|
+ reftable/stack: rename reftable_stack_new_addition()
|
|
+ reftable/stack: remove `REFTABLE_STACK_NEW_ADDITION_RELOAD`
|
|
|
|
The reftable code has been optimized to avoid an unnecessary
|
|
stat/reload of the stack when an addition already holds the
|
|
list_file lock, reducing the number of newfstatat syscalls from
|
|
linear to constant when writing refs.
|
|
|
|
Will merge to 'master'.
|
|
cf. <ao1uqpCxFHlOyTV-@pks.im>
|
|
cf. <20260824225202.GA190620@coredump.intra.peff.net>
|
|
source: <20260824-740-optimize-reloading-the-reftable-stack-v2-0-9c9de2eb0af7@gmail.com>
|
|
|
|
|
|
* jc/rerere-doc-typofix (2026-08-24) 1 commit
|
|
(merged to 'next' on 2026-08-25 at 62bdec98f9)
|
|
+ rerere: technical documentation typofix
|
|
|
|
A missing preposition in the rerere technical documentation has been
|
|
fixed.
|
|
|
|
Will merge to 'master'.
|
|
source: <xmqqtsojp4zf.fsf@gitster.g>
|
|
|
|
|
|
* ps/odb-alternates-at-creation (2026-08-31) 8 commits
|
|
- odb/source: remove the ability to write alternates
|
|
- builtin/clone: write alternates via `odb_create_on_disk()`
|
|
- odb/source: support writing alternates when creating the database
|
|
- builtin/clone: move setup of alternates for non-shared local clones
|
|
- builtin/clone: move setup of alternates for shared local clones
|
|
- builtin/clone: refactor handling of "--reference{,-if-able}"
|
|
- builtin/clone: move around `setup_reference()`
|
|
- builtin/clone: defer setup of the object database
|
|
- Merge branch 'ps/odb-eagerly-load-alternates' into ps/odb-alternates-at-creation
|
|
|
|
The setup of alternates has been deferred to object database
|
|
creation time during clone, which drops the unused ad-hoc alternate
|
|
writing API, simplifying the object database backend interface.
|
|
|
|
Needs review.
|
|
source: <20260831-pks-odb-write-alternates-at-creation-time-v2-0-aecd2382ba1c@pks.im>
|
|
|
|
|
|
* ps/odb-pluggable-fsck (2026-08-30) 10 commits
|
|
- builtin/fsck: move loose object verification into the loose source
|
|
- builtin/fsck: move multi-pack index verification into the packed source
|
|
- builtin/fsck: move bitmap verification into the packed source
|
|
- builtin/fsck: move reverse index verification into the packed source
|
|
- builtin/fsck: move packfile verification into the packed source
|
|
- odb: provide infrastructure for pluggable fsck checks
|
|
- builtin/fsck: don't check alternates with "--no-full"
|
|
- builtin/fsck: de-globalize option handling
|
|
- builtin/fsck: merge `fsck_obj_buffer()` and `fsck_obj()`
|
|
- builtin/fsck: use `fsck_obj_buffer()` when checking loose objects
|
|
- Merge branch 'ps/odb-eagerly-load-alternates' into ps/odb-pluggable-fsck
|
|
- Merge branch 'ps/odb-pluggable-pack-generation' into ps/odb-pluggable-fsck
|
|
|
|
The consistency checks for the object database (fsck) have been
|
|
decoupled from the generic builtin implementation and moved into the
|
|
backend-specific object source layers, making them pluggable for
|
|
different object storage formats.
|
|
|
|
Needs review.
|
|
cf. <CAOLa=ZSi1TiTZ=i=SQp+pmjTOm2_wY-NiCotx66+M6VDKx=ZXg@mail.gmail.com>
|
|
source: <20260831-pks-odb-source-fsck-v2-0-f9b16ef4957b@pks.im>
|
|
|
|
|
|
* rs/worktree-add-basename-fixes (2026-08-25) 4 commits
|
|
- worktree add: let worktree_basename() return string copy
|
|
- worktree add: trim slashes when deriving branch name from path
|
|
- worktree add: reject separator-only path
|
|
- worktree add: don't read out of bounds in worktree_basename()
|
|
|
|
The string extraction logic for the branch name and worktree name
|
|
from the given path in 'git worktree add' has been corrected and
|
|
simplified to avoid out-of-bounds reads and improper handling of
|
|
trailing slashes.
|
|
|
|
Waiting for review.
|
|
cf. <xmqq33w2m186.fsf@gitster.g>
|
|
cf. <xmqqjypdj6g4.fsf@gitster.g>
|
|
source: <20260825180350.2099-1-l.s.r@web.de>
|
|
|
|
|
|
* en/no-amend-during-conflicts (2026-08-28) 5 commits
|
|
- commit: refuse partial commits during conflict resolution
|
|
- commit: refuse to amend during conflict resolution
|
|
- commit: reword the empty-commit rebase amend error
|
|
- commit: allow a partial commit when a rebase pick becomes empty
|
|
- commit: clarify FROM_REBASE_PICK and is_from_rebase() names
|
|
|
|
Teach 'am', 'revert', and 'rebase' that running 'commit --amend' or a
|
|
partial 'commit <paths>' makes no sense during operations that stop
|
|
and return control to the user to resolve conflicts left in the
|
|
working tree, just like 'cherry-pick' and 'merge' do.
|
|
|
|
Waiting for response.
|
|
cf. <CABPp-BG0AmOgfT1CrS+hTo8sRBd4J1gT0_KN8TRBHSFo86hMvw@mail.gmail.com>
|
|
cf. <xmqq33vy6ydu.fsf@gitster.g>
|
|
cf. <xmqqy0dq5jpi.fsf@gitster.g>
|
|
cf. <xmqqqzji5id2.fsf@gitster.g>
|
|
source: <pull.2389.v3.git.git.1787903085.gitgitgadget@gmail.com>
|
|
|
|
|
|
* as/utimensat-utimes (2026-08-21) 3 commits
|
|
- compat/posix: drop legacy <utime.h> header and shims
|
|
- treewide: use utimensat(2) instead of legacy utime(3p)
|
|
- compat/posix: introduce utimensat(2) wrapper
|
|
|
|
The codebase has been updated to use the newer utimensat() POSIX
|
|
function instead of the obsolescent utime(), allowing
|
|
high-precision timestamps while preserving fallback compatibility.
|
|
|
|
Waiting for response.
|
|
cf. <aonIVn-ZQoMKWCAd@fruit.crustytoothpaste.net>
|
|
source: <pull.2209.git.1787322203.gitgitgadget@gmail.com>
|
|
|
|
|
|
* ps/fetch-packfile-uris-parallel (2026-08-21) 2 commits
|
|
- fetch-pack: allow parallelizing packfile URI fetches
|
|
- fetch-pack: prepare for threaded fetching of packfile URIs
|
|
|
|
The `git fetch` and `git clone` commands have been optimized to
|
|
download packfile URIs in parallel when the new
|
|
`fetch.packfileURIThreads` configuration is set, significantly
|
|
speeding up fetches from servers that advertise multiple packfiles.
|
|
|
|
Expecting a reroll.
|
|
cf. <apUUiv4SD0-W8QS3@pks.im>
|
|
source: <20260821-pks-parallelize-fetching-packfile-uris-v1-0-0df52d9427ce@pks.im>
|
|
|
|
|
|
* kn/receive-report-hook (2026-08-26) 3 commits
|
|
- hook: introduce the receive-report hook
|
|
- receive-pack: move message generation to separate function
|
|
- doc: add proc-receive hook info in 'git-receive-pack.adoc'
|
|
|
|
A new hook 'report' is added to 'git receive-pack', which runs after
|
|
reference updates and allows the server to filter or modify the
|
|
packet-line status report sent back to the client.
|
|
|
|
Waiting for response.
|
|
cf. <apUi8I-b69XxDAYY@pks.im>
|
|
source: <20260826-758-introduce-hook-v4-0-6b14975ad957@gmail.com>
|
|
|
|
|
|
* en/midx-missing-pack-fallback (2026-08-29) 4 commits
|
|
- packfile: recover when a multi-pack-index names a removed pack
|
|
- mktree: do not use OBJECT_INFO_QUICK when checking objects
|
|
- mktree: plug per-tree leak in --batch mode
|
|
- replay: fail gracefully when a merge input is unreadable
|
|
- Merge branch 'ps/odb-generic-corrupt-objects' into en/midx-missing-pack-fallback
|
|
|
|
The object lookup machinery has been taught to gracefully recover
|
|
when a multi-pack-index points to an owning pack that was removed
|
|
during a concurrent geometric repack, and 'git replay' has been
|
|
fixed to not segfault when reading such missing objects.
|
|
|
|
Will merge to 'next'?
|
|
cf. <apVa72AU-cD4IO46@pks.im>
|
|
cf. <20260829120721.GF40814@coredump.intra.peff.net>
|
|
cf. <20260829114620.GE40814@coredump.intra.peff.net>
|
|
source: <pull.2207.v3.git.1787986831.gitgitgadget@gmail.com>
|
|
|
|
|
|
* ll/zsh-complete-git-potty-options (2026-08-19) 1 commit
|
|
(merged to 'next' on 2026-08-31 at fee97cc13c)
|
|
+ completion: zsh: support completion after "git -C <path>"
|
|
|
|
The zsh completion script (in 'contrib/') has been updated to
|
|
correctly locate the Git command after global options like '-C' by
|
|
properly skipping them, similar to how the bash completion does.
|
|
|
|
Will merge to 'master'.
|
|
cf. <CALnO6CC35iuyJpKZtkEN7fGuGK7zKd_jbebyZdKSQ1pyfOBRZA@mail.gmail.com>
|
|
cf. <xmqqld9sczd0.fsf@gitster.g>
|
|
source: <pull.2155.v2.git.1787144872870.gitgitgadget@gmail.com>
|
|
|
|
|
|
* 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/doc-datamodel (2026-08-23) 4 commits
|
|
- doc: datamodel: link to the glossary
|
|
- doc: glossary: link four of the terms to gitdatamodel(7)
|
|
- doc: git: link to the gitdatamodel(7) tutorial
|
|
- doc: git: list gitdatamodel(7) as a concept guide
|
|
|
|
The gitdatamodel documentation page has been linked from a handful
|
|
of key documentaiton pages.
|
|
|
|
Will merge to 'next'?
|
|
cf. <apUrC_ROf9lyiuAm@pks.im>
|
|
source: <V2_CV_doc_datamodel_advertize.c20@msgid.xyz>
|
|
|
|
|
|
* yn/worktree-repair-relative (2026-08-28) 1 commit
|
|
(merged to 'next' on 2026-08-31 at 15072b025f)
|
|
+ worktree repair: detect relative path in .git file correctly
|
|
|
|
The git worktree repair command failed to rewrite the .git file of
|
|
a working tree from a relative path to an absolute path when the
|
|
command was run in the working tree itself. The
|
|
read_gitfile_gently() function was modified to also return whether
|
|
the path originally recorded in the file was absolute, and this new
|
|
capability is used to correctly detect such mismatches.
|
|
|
|
Will merge to 'master'.
|
|
cf. <xmqqh5ke3zxt.fsf@gitster.g>
|
|
source: <pull.2205.v4.git.1787930386252.gitgitgadget@gmail.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.
|
|
cf. <xmqqse40ei5f.fsf@gitster.g>
|
|
source: <V2_CV_format-rev_three_more_opts.bd3@msgid.xyz>
|
|
|
|
|
|
* ty/repository-fetch-if-missing (2026-08-14) 1 commit
|
|
(merged to 'next' on 2026-08-25 at 2cc77c1ca1)
|
|
+ repository: move fetch_if_missing into struct repository
|
|
|
|
The global variable 'fetch_if_missing' has been moved to a member in
|
|
'struct repository', continuing the libification process and
|
|
allowing per-repository control (such as for submodules).
|
|
|
|
Will merge to 'master'.
|
|
cf. <xmqqmrun8jeu.fsf@gitster.g>
|
|
source: <20260815064747.2196896-1-cat@malon.dev>
|
|
|
|
|
|
* ns/ref-symref-additional-tests (2026-08-20) 2 commits
|
|
- t1402: test forbidden characters in refnames
|
|
- t1401: check symbolic-ref failure and --quiet silence on a non-symbolic ref
|
|
|
|
A few tests for the reference handling subsystem have been added to
|
|
exercise the handling of forbidden characters and symbolic references.
|
|
|
|
Will merge to 'next'?
|
|
cf. <apUdDyG98D5upbhj@pks.im>
|
|
source: <pull.2203.v2.git.1787264417682.gitgitgadget@gmail.com>
|
|
source: <pull.2204.v3.git.1787763107646.gitgitgadget@gmail.com>
|
|
|
|
|
|
* gg/http-ssl-verify-status (2026-08-18) 1 commit
|
|
- http: add http.sslVerifyStatus to check stapled OCSP responses
|
|
|
|
The HTTP transport has been taught to check the revocation status of
|
|
the server certificate using the stapled OCSP response during the
|
|
TLS handshake via a new 'http.sslVerifyStatus' configuration
|
|
variable.
|
|
|
|
Waiting for response.
|
|
cf. <xmqqecfez7ie.fsf@gitster.g>
|
|
source: <20260818214858.65122-1-ggordon@gitlab.com>
|
|
|
|
|
|
* ty/repo-config-cleanups (2026-08-07) 3 commits
|
|
- environment: remove inaccurate repo_config_values comments
|
|
- environment: clarify repository config getter documentation
|
|
- environment: drop redundant NULL checks in config getters
|
|
|
|
Repository configuration getters in 'environment.c' have been
|
|
simplified by removing redundant NULL checks. The documentation for
|
|
these getters in 'environment.h' has been clarified, and inaccurate
|
|
section comments inside 'struct repo_config_values' have been removed.
|
|
|
|
Needs review.
|
|
source: <20260807085932.3958759-1-cat@malon.dev>
|
|
|
|
|
|
* dk/use-nsec-runtime (2026-08-29) 3 commits
|
|
- core: convert build-time USE_NSEC into runtime core.useNanosec
|
|
- environment: align repo_config_values_init with struct declaration
|
|
- meson: expose knob for xmlto relative links in manuals
|
|
|
|
The build-time knob 'USE_NSEC' for nanosecond stat precision has been
|
|
converted to a runtime configuration 'core.useNanosec', allowing
|
|
distributions to bundle one binary that adapts to filesystem
|
|
capabilities dynamically.
|
|
|
|
Will merge to 'next'?
|
|
cf. <xmqq8q5n1fa2.fsf@gitster.g>
|
|
cf. <apWUGfzQxx7vArpo@pks.im>
|
|
source: <cover.1788010335.git.ben.knoble@gmail.com>
|
|
|
|
|
|
* bc/restrict-hex-to-lowercase (2026-07-29) 6 commits
|
|
- hex: allow only lowercase object IDs in breaking changes mode
|
|
- 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.
|
|
|
|
Expecting a reroll.
|
|
cf. <ao4MJQgp6Ai4tJxi@fruit.crustytoothpaste.net>
|
|
cf. <ao4MqtDxZJaMEBBI@fruit.crustytoothpaste.net>
|
|
source: <20260729233215.398654-1-sandals@crustytoothpaste.net>
|
|
|
|
|
|
* js/mingw-build-updates (2026-08-12) 12 commits
|
|
- mingw: allow `git.exe` to be used instead of the "Git wrapper"
|
|
- mingw: ensure valid CTYPE
|
|
- mingw: always define `ETC_*` for MSYS2 environments
|
|
- windows: skip linking `git-<command>` for built-ins
|
|
- mingw: rely on MSYS2's metadata instead of hard-coding it
|
|
- mingw: only enable the MSYS2-specific stuff when compiling in MSYS2
|
|
- mingw: set the prefix and HOST_CPU as per MSYS2's settings
|
|
- mingw: avoid over-specifying `--pic-executable`
|
|
- mingw: only use -Wl,--large-address-aware for 32-bit builds
|
|
- mingw: drop the -D_USE_32BIT_TIME_T option
|
|
- mingw: stop hard-coding `CC = gcc`
|
|
- mingw: include the Python parts in the build
|
|
|
|
A collection of patches from Git for Windows has been upstreamed,
|
|
mostly focusing on simplifying and robustifying build configurations
|
|
for MinGW/MSYS2, dropping obsolete compatibility options, and allowing
|
|
the main 'git.exe' to be used directly without the extra wrapper
|
|
process on Windows.
|
|
|
|
Waiting for response.
|
|
cf. <4f4129df-681f-4e99-8b1f-8bb96e206a2d@kdbg.org>
|
|
source: <pull.2195.v2.git.1786521173.gitgitgadget@gmail.com>
|
|
|
|
|
|
* yn/worktree-ambiguous-remote-advice (2026-08-27) 4 commits
|
|
(merged to 'next' on 2026-08-30 at 8e7670286a)
|
|
+ worktree add: treat multiple matches with --guess-remote as an error
|
|
+ worktree add: improve message for ambiguous remote branch name
|
|
+ checkout: improve message for ambiguous remote branch name
|
|
+ checkout: extract function to display advice for ambiguous remotes
|
|
|
|
'git worktree add' did not prevent DWIM behavior when '-b' or '-B' was
|
|
specified, which has been corrected.
|
|
|
|
Will merge to 'master'.
|
|
cf. <xmqq4igfa2pv.fsf@gitster.g>
|
|
source: <pull.2197.v10.git.1787841717.gitgitgadget@gmail.com>
|
|
|
|
|
|
* hn/ci-cancel-stale-pr-runs (2026-08-31) 1 commit
|
|
- ci: cancel stale pull request workflow runs
|
|
|
|
GitHub Actions CI workflow runs triggered by pull requests have
|
|
been configured to cancel older runs when a new push is made to the
|
|
same pull request.
|
|
|
|
Will merge to 'next'?
|
|
source: <pull.2369.v3.git.git.1788193095825.gitgitgadget@gmail.com>
|
|
|
|
|
|
* hn/checkout-m-autostash-refine (2026-08-31) 1 commit
|
|
- checkout: print blank line after autostash conflict advice
|
|
|
|
The autostash fallback in 'git checkout -m' has been refined to only
|
|
retry when there are local changes. Additionally, a blank line now
|
|
visually separates autostash conflict advice from the subsequent
|
|
branch-switch message.
|
|
|
|
Waiting for response.
|
|
cf. <xmqq4igaxl5t.fsf@gitster.g>
|
|
source: <pull.2364.v2.git.git.1788177601572.gitgitgadget@gmail.com>
|
|
|
|
|
|
* kj/repo-info-more-path-keys (2026-08-25) 7 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
|
|
- 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: <20260825175818.645579-1-jayatheerthkulkarni2005@gmail.com>
|
|
|
|
|
|
* tc/last-modified-bloom (2026-08-31) 6 commits
|
|
- last-modified: keep per-path Bloom filters for wildcard pathspecs
|
|
- last-modified: check pathspec against Bloom filter first
|
|
- revision: add Bloom check that includes parent directories
|
|
- bloom: add helper to check if any key in a vector is present
|
|
- revision: expose check for paths maybe changed in Bloom filter
|
|
- revision: move bloom keyvec precondition into function
|
|
|
|
The 'git last-modified' command has been optimized by using Bloom
|
|
filters. It now reuses revision walk filtering logic from 'git log'
|
|
to pre-filter commits, and maintains per-path Bloom filters even when
|
|
wildcard pathspecs are used.
|
|
|
|
Needs review.
|
|
source: <20260831-toon-speed-up-last-modified-v3-0-2bbb864acf93@iotcl.com>
|
|
|
|
|
|
* ds/trace2-tolerate-failed-timestamp (2026-08-31) 7 commits
|
|
- trace2: remove use of xcalloc()
|
|
- trace2: remove use of ALLOC_GROW()
|
|
- trace2: remove use of xstrfmt()
|
|
- trace2: remove use of ALLOC_ARRAY()
|
|
- trace2: remove use of xstrdup()
|
|
- trace2: tolerate failed timestamp formatting
|
|
- banned-die: create header for banning of functions
|
|
|
|
Functions like `xstrfmt()` and `xcalloc()` have been banned from use
|
|
in the trace2 API codebase to prevent calls to `die()` which lead to
|
|
unwanted process exits and recursion when memory allocation fails.
|
|
|
|
Needs review.
|
|
source: <pull.2178.v3.git.1788197143.gitgitgadget@gmail.com>
|
|
|
|
|
|
* pz/fetch-submodule-errors-config (2026-07-16) 2 commits
|
|
- fetch: add fetch.submoduleErrors to make submodule fetch errors non-fatal
|
|
- submodule: fix premature failure in recursive submodule fetch
|
|
|
|
The 'git fetch' command can now configure how submodule fetch errors
|
|
are handled via 'fetch.submoduleErrors' and '--submodule-errors',
|
|
making them non-fatal. A premature failure during recursive submodule
|
|
fetches has been fixed by deferring the error until the OID-based
|
|
retry phase fails.
|
|
|
|
Needs review.
|
|
source: <20260716140956.1023740-1-paulius.zaleckas@gmail.com>
|
|
|
|
|
|
* gr/add-e-use-apply-api (2026-07-10) 1 commit
|
|
(merged to 'next' on 2026-08-31 at 04ee2ac5c5)
|
|
+ builtin/add.c: replace run_command() with direct apply_all_patches() call
|
|
|
|
The application of the edited patch in 'git add -e' has been
|
|
refactored to use the internal apply API directly, avoiding the need
|
|
to spawn a 'git apply' subprocess.
|
|
|
|
Will merge to 'master'.
|
|
cf. <xmqqbjaoiyzx.fsf@gitster.g>
|
|
source: <20260711061246.58079-1-gatlavishweshwarreddy26@gmail.com>
|
|
|
|
|
|
* fz/rebase-autosquash-empty (2026-08-27) 1 commit
|
|
- sequencer: honor --empty when a fixup!/squash! empties its target
|
|
|
|
A commit that is emptied by melding a 'fixup!' or 'squash!' commit
|
|
during 'git rebase --autosquash' is now handled according to the
|
|
'--empty' option, allowing it to be dropped, kept, or to halt the
|
|
rebase.
|
|
|
|
Waiting for response.
|
|
cf. <511300fe-112d-4f20-bd3f-e401e68c4a27@gmail.com>
|
|
source: <20260827-fz-autosquash-empty-v4-1-f98ffd575780@gmail.com>
|
|
|
|
|
|
* mm/lib-httpd-cgi-safe (2026-08-12) 3 commits
|
|
- t/lib-httpd: document writing concurrency-safe CGI helpers
|
|
- t/lib-httpd: make http-429 first-request check atomic
|
|
- t/lib-httpd: fix apply-one-time-script race under concurrent requests
|
|
|
|
CGI helper scripts used by HTTP-related test scripts have been updated
|
|
to use atomic filesystem operations, preventing race conditions when
|
|
Apache handles concurrent requests.
|
|
|
|
Expecting a reroll.
|
|
cf. <CAC2Qwm+L01XZgys2NGtZwWfVapWmnqDbsevt3Z4WKpS9EoP65A@mail.gmail.com>
|
|
source: <pull.2171.v3.git.1786583137.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. <27219.20156.438730.881821@chiark.greenend.org.uk>
|
|
source: <20260706115816.20267-1-ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
* 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.
|
|
|
|
Will discard.
|
|
cf. <xmqqtsogei9d.fsf@gitster.g>
|
|
source: <20260702041759.51572-1-zhihao.yao@njit.edu>
|
|
|
|
|
|
* 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
|
|
(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.v2.git.1782581342.gitgitgadget@gmail.com>
|
|
|
|
|
|
* hn/history-squash (2026-08-20) 8 commits
|
|
- history: support editing squashed commit messages
|
|
- history: create squashed commits without editing
|
|
- history: protect branches when squashing a range
|
|
- history: validate squash revision ranges
|
|
- history: add skeleton for squash subcommand
|
|
- sequencer: share the squash message marker helpers and flags
|
|
- history: give commit_tree_ext a message template
|
|
- history: extract helper for a commit's parent tree
|
|
|
|
The experimental 'git history' command has been taught a new 'squash'
|
|
subcommand to fold a range of commits into a single commit, with any
|
|
descendants replayed on top.
|
|
|
|
Waiting for response.
|
|
cf. <xmqq4igov9h9.fsf@gitster.g>
|
|
source: <pull.2337.v14.git.git.1787249432.gitgitgadget@gmail.com>
|
|
|
|
|
|
* tb/midx-incremental-custom-base (2026-06-12) 3 commits
|
|
- midx-write: include packs above custom incremental base
|
|
- midx: pass custom '--base' through incremental writes
|
|
- t5334: expose shared `nth_line()` helper
|
|
|
|
The 'git multi-pack-index write --incremental' command has been
|
|
corrected to properly honor the '--base' option. Previously, the
|
|
custom base was ignored by the normal write path; packs from layers
|
|
above the selected base were incorrectly skipped by the pack exclusion
|
|
logic, and reachability closure for bitmaps was broken.
|
|
|
|
Expecting a reroll.
|
|
cf. <an4uIQA09rDCwwBp@com-79390>
|
|
cf. <apUbQ4S-zJGtBeu2@pks.im>
|
|
source: <cover.1781294771.git.me@ttaylorr.com>
|
|
|
|
|
|
* mm/diff-process-hunks (2026-08-13) 11 commits
|
|
- fixup! diff: consult oid-only hunk providers via diff.<driver>.process
|
|
- diff: consult oid-only hunk providers via diff.<driver>.process
|
|
- userdiff: add diff.<driver>.process config
|
|
- sub-process: add a gentle status read
|
|
- sub-process: separate process lifecycle from hashmap management
|
|
- blame: read precomputed hunks
|
|
- diff: read precomputed hunks for stat output
|
|
- diff: record precomputed hunks during stat output
|
|
- diff-hunks: add the store format, library, and command
|
|
- diff: introduce a hunk provider interface
|
|
- gitattributes: document how external diff drivers relate to diff features
|
|
- Merge branch 'mm/line-log-limited-ops' into mm/diff-process-hunks
|
|
(this branch uses mm/line-log-limited-ops.)
|
|
|
|
A new 'diff.<driver>.process' configuration has been introduced to
|
|
allow a long-running external process to act as a hunk provider,
|
|
enabling external tools to control which lines Git considers changed
|
|
while leaving all output formatting (word diff, color, blame, etc.) to
|
|
Git's standard pipeline.
|
|
|
|
Expecting a reroll.
|
|
cf. <CAC2Qwm+kzT_3_GKrpay=JLGYsxS10oWCg2MJPHrCVogFHA0OdA@mail.gmail.com>
|
|
source: <20260801174156.2998808-1-mmontalbo@gmail.com>
|
|
|
|
--------------------------------------------------
|
|
[Discarded]
|
|
|
|
* kh/format-patch-range-diff-notes (2026-08-24) 3 commits
|
|
. format-patch: learn --[no-]range-diff-notes
|
|
. revision.h: rename struct member to reflect notes role
|
|
. format-patch: simplify get_notes_arg parameters
|
|
|
|
The 'format-patch' command has been updated with options to
|
|
configure notes specifically for range-diff output, allowing them to
|
|
differ from the notes displayed on the patches themselves.
|
|
|
|
Retracted.
|
|
cf. <9335a35f-e9c0-4e62-812c-e5855c201003@app.fastmail.com>
|
|
source: <CV_format-patch_learn_--range-diff-notes.c57@msgid.xyz>
|
|
|
|
|
|
* jc/die-for-incompatible-opts (2026-08-27) 1 commit
|
|
. die_for_incompatible_opts(): unbounded number of options
|
|
|
|
The die_for_incompatible_opt[234]() family of functions has been
|
|
generalized to handle an arbitrary number of mutually exclusive
|
|
options via a variadic function.
|
|
|
|
Retracted.
|
|
cf. <xmqqfqzv1g6z.fsf@gitster.g>
|
|
source: <xmqqbjana2wv.fsf@gitster.g>
|