What's cooking (2026/03 #12)

todo
Junio C Hamano 2026-03-30 16:28:38 -07:00
parent 69ed932e0b
commit 8933d95b25
1 changed files with 376 additions and 336 deletions

View File

@ -1,10 +1,10 @@
To: git@vger.kernel.org
Subject: What's cooking in git.git (Mar 2026, #11)
X-master-at: 41688c1a2312f62f44435e1a6d03b4b904b5b0ec
X-next-at: 0a8c60e8ae259ec48ddcdbbda0df4b2f04610708
Subject: What's cooking in git.git (Mar 2026, #12)
X-master-at: 270e10ad6dda3379ea0da7efd11e4fbf2cd7a325
X-next-at: 0c370356e2245450de215a847afb905bda230d11
Bcc: lwn@lwn.net, gitster@pobox.com

What's cooking in git.git (Mar 2026, #11)
What's cooking in git.git (Mar 2026, #12)
-----------------------------------------

Here are the topics that have been cooking in my tree. Commits
@ -45,71 +45,303 @@ Release tarballs are available at:

https://www.kernel.org/pub/software/scm/git/

--------------------------------------------------
[Graduated to 'master']

* ps/object-counting (2026-03-12) 7 commits
(merged to 'next' on 2026-03-17 at 8d3d9a1374)
+ odb: introduce generic object counting
+ odb/source: introduce generic object counting
+ object-file: generalize counting objects
+ object-file: extract logic to approximate object count
+ packfile: extract logic to count number of objects
+ odb: stop including "odb/source.h"
+ Merge branch 'ps/odb-sources' into ps/object-counting
(this branch is used by ps/odb-generic-object-name-handling.)

The logic to count objects has been cleaned up.
source: <20260312-b4-pks-odb-source-count-objects-v2-0-5914f69256bf@pks.im>


* tb/incremental-midx-part-3.2 (2026-02-24) 17 commits
(merged to 'next' on 2026-03-18 at 7f995e23bb)
+ midx: enable reachability bitmaps during MIDX compaction
+ midx: implement MIDX compaction
+ t/helper/test-read-midx.c: plug memory leak when selecting layer
+ midx-write.c: factor fanout layering from `compute_sorted_entries()`
+ midx-write.c: enumerate `pack_int_id` values directly
+ midx-write.c: extract `fill_pack_from_midx()`
+ midx-write.c: introduce `midx_pack_perm()` helper
+ midx: do not require packs to be sorted in lexicographic order
+ midx-write.c: introduce `struct write_midx_opts`
+ midx-write.c: don't use `pack_perm` when assigning `bitmap_pos`
+ t/t5319-multi-pack-index.sh: fix copy-and-paste error in t5319.39
+ git-multi-pack-index(1): align SYNOPSIS with 'git multi-pack-index -h'
+ git-multi-pack-index(1): remove non-existent incompatibility
+ builtin/multi-pack-index.c: make '--progress' a common option
+ midx: introduce `midx_get_checksum_hex()`
+ midx: rename `get_midx_checksum()` to `midx_get_checksum_hash()`
+ midx: mark `get_midx_checksum()` arguments as const

Further work on incremental repacking using MIDX/bitmap
source: <cover.1771959555.git.me@ttaylorr.com>

--------------------------------------------------
[New Topics]

* jc/test-set-e-clean (2026-03-24) 11 commits
. t9902: make test "set -e" clean
. t5570: make test "set -e" clean
. t940?: make test "set -e" clean
. t9200: make test "set -e" clean
. t7508: make test "set -e" clean
. tests: make svn test "set -e" clean
. t7450: make test "set -e" clean
. t4032: make test "set -e" clean
. t6002: make test "set -e" clean
. t0008: make test "set -e" clean
. test-lib: catch misspelt 'test_expect_successo'
* sa/cat-file-batch-mailmap-switch (2026-03-29) 1 commit
- cat-file: add mailmap subcommand to --batch-command

The test suite harness and many individual test scripts have been
updated to work correctly when 'set -e' is in effect, which helps
detect misspelled test commands.
"git cat-file --batch" learns an in-line command "mailmap"
that lets the user toggle use of mailmap.

Comments?
source: <20260325062114.2067946-1-gitster@pobox.com>
source: <20260329082808.12609-2-siddharthasthana31@gmail.com>


* sp/doc-gitignore-oowt (2026-03-28) 1 commit
- doc: gitignore: clarify pattern base for info/exclude and core.excludesFile

Doc update.

Will merge to 'next'.
source: <20260328152233.1140327-1-shreyanshpaliwalcmsmn@gmail.com>


* tb/incremental-midx-part-3.3 (2026-03-29) 16 commits
- repack: allow `--write-midx=incremental` without `--geometric`
- repack: introduce `--write-midx=incremental`
- repack: implement incremental MIDX repacking
- packfile: ensure `close_pack_revindex()` frees in-memory revindex
- builtin/repack.c: convert `--write-midx` to an `OPT_CALLBACK`
- repack-geometry: prepare for incremental MIDX repacking
- repack-midx: extract `repack_fill_midx_stdin_packs()`
- repack-midx: factor out `repack_prepare_midx_command()`
- midx: expose `midx_layer_contains_pack()`
- repack: track the ODB source via existing_packs
- midx: support custom `--base` for incremental MIDX writes
- midx: introduce `--checksum-only` for incremental MIDX writes
- midx: use `strvec` for `keep_hashes`
- strvec: introduce `strvec_init_alloc()`
- midx: use `string_list` for retained MIDX files
- midx-write: handle noop writes when converting incremental chains

The repacking code has been refactored and compaction of MIDX layers
have been implemented, and incremental strategy that does not require
all-into-one repacking has been introduced.

Needs review.
source: <cover.1774820449.git.me@ttaylorr.com>


* th/t6101-unhide-git-failures (2026-03-28) 1 commit
- t6101: avoid suppressing git's exit code

Test cleanup.

Will merge to 'next'.
source: <20260328135935.180646-1-vikingtc4@gmail.com>


* za/t2000-modernise (2026-03-27) 1 commit
- t2000: modernise overall structure

Test cleanup.

Will merge to 'next'.
source: <20260327234019.95591-1-zakariyahali100@gmail.com>


* jd/read-cache-trace-wo-the-repository (2026-03-30) 1 commit
- read-cache: use istate->repo for trace2 logging

A handful of inappropriate uses of the_repository have been
rewritten to use the right repository structure instance in the
read-cache.c codepath.

Will merge to 'next'.
source: <pull.2253.v4.git.git.1774895886678.gitgitgadget@gmail.com>


* jd/unpack-trees-wo-the-repository (2026-03-30) 1 commit
- unpack-trees: use explicit repository in trace2 calls

A handful of inappropriate uses of the_repository have been
rewritten to use the right repository structure instance in the
unpack-trees.c codepath.

Will merge to 'next'.
source: <pull.2258.git.git.1774901607564.gitgitgadget@gmail.com>


* ps/receive-pack-updateinstead-in-worktree (2026-03-30) 3 commits
- receive-pack: use worktree HEAD for updateInstead
- t5516: clean up cloned and new-wt in denyCurrentBranch and worktrees test
- t5516: test updateInstead with worktree and unborn bare HEAD

The check in "receive-pack" to prevent a checked out branch from
getting updated via updateInstead mechanism has been corrected.

Needs review.
source: <20260330111822.165188-1-pabloosabaterr@gmail.com>


* ps/setup-wo-the-repository (2026-03-30) 18 commits
- setup: stop using `the_repository` in `init_db()`
- setup: stop using `the_repository` in `create_reference_database()`
- setup: stop using `the_repository` in `initialize_repository_version()`
- setup: stop using `the_repository` in `check_repository_format()`
- setup: stop using `the_repository` in `upgrade_repository_format()`
- setup: stop using `the_repository` in `setup_git_directory()`
- setup: stop using `the_repository` in `setup_git_directory_gently()`
- setup: stop using `the_repository` in `setup_git_env()`
- setup: stop using `the_repository` in `set_git_work_tree()`
- setup: stop using `the_repository` in `setup_work_tree()`
- setup: stop using `the_repository` in `enter_repo()`
- setup: stop using `the_repository` in `verify_non_filename()`
- setup: stop using `the_repository` in `verify_filename()`
- setup: stop using `the_repository` in `path_inside_repo()`
- setup: stop using `the_repository` in `prefix_path()`
- setup: stop using `the_repository` in `is_inside_git_dir()`
- setup: stop using `the_repository` in `is_inside_worktree()`
- setup: replace use of `the_repository` in static functions

Many uses of the_repository has been updated to use a more
appropriate struct repository instance in setup.c codepath.

Needs review.
source: <20260330-pks-setup-wo-the-repository-v1-0-0d2e822837aa@pks.im>


* qb/doc-git-stash-push-optionality (2026-03-30) 1 commit
- docs: fix "git stash [push]" documentation

Doc update.

Will merge to 'next'.
source: <pull.2255.v2.git.git.1774877075694.gitgitgadget@gmail.com>


* kh/doc-trailers (2026-03-30) 2 commits
- doc: interpret-trailers: explain key format
- doc: interpret-trailers: stop fixating on RFC 822

Documentation updates.

Expecting a reroll.
cf. <5ba0bbcb-25a7-4ad0-ac1d-c86508eaffdd@app.fastmail.com>
source: <CV_doc_int-tr_key_format.533@msgid.xyz>

--------------------------------------------------
[Graduated to 'master']

* ai/t2107-test-path-is-helpers (2026-03-18) 1 commit
(merged to 'next' on 2026-03-23 at 56d10e5f76)
+ t2107: modernize path existence check

Test cleanup.
source: <pull.2071.v2.git.1773864455956.gitgitgadget@gmail.com>


* ej/ref-transaction-hook-preparing (2026-03-16) 1 commit
(merged to 'next' on 2026-03-20 at f9b8fbb0dc)
+ refs: add 'preparing' phase to the reference-transaction hook

The reference-transaction hook was taught to be triggered before
taking locks on references in the "preparing" phase.
source: <20260317023624.43070-2-eric.peijian@gmail.com>


* gi/doc-boolean-config-typofix (2026-03-18) 1 commit
(merged to 'next' on 2026-03-20 at 8810624798)
+ doc: add missing space on git-config page

Doc typofix.
source: <20260318210020.759128-1-gabl@gabl.ink>


* jc/rerere-modern-strbuf-handling (2026-03-19) 2 commits
(merged to 'next' on 2026-03-21 at 919b766afc)
+ cocci: strbuf.buf is never NULL
+ rerere: update to modern representation of empty strbufs

Code clean-up overdue by 19 years.
source: <xmqq341wnvbk.fsf@gitster.g>
source: <xmqq4imbigvt.fsf@gitster.g>


* jk/diff-highlight-identical-pairs (2026-03-17) 1 commit
(merged to 'next' on 2026-03-20 at a8aa5bd14e)
+ contrib/diff-highlight: do not highlight identical pairs
(this branch is used by jk/diff-highlight-more.)

The handling of the incomplete lines at the end by "git
diff-highlight" has been fixed.
source: <20260317230223.GA716496@coredump.intra.peff.net>


* jw/apply-corrupt-location (2026-03-17) 3 commits
(merged to 'next' on 2026-03-23 at 18e9b8f91f)
+ apply: report input location in binary and garbage patch errors
+ apply: report input location in header parsing errors
+ apply: report the location of corrupt patches

"git apply" now reports the name of the input file along with the
line number when it encounters a corrupt patch, and correctly
resets the line counter when processing multiple patch files.
source: <20260317162321.71812-1-jerrywang183@yahoo.com>


* jw/object-name-bitset-to-enum (2026-03-18) 1 commit
(merged to 'next' on 2026-03-23 at 881af371ef)
+ object-name: turn INTERPRET_BRANCH_* constants into enum values

The unsigned integer that is used as an bitset to specify the kind
of branches interpret_branch_name() function has been changed to
use a dedicated enum type.
source: <20260318190942.22595-1-jerrywang183@yahoo.com>


* jw/t2203-status-pipe-fix (2026-03-16) 1 commit
(merged to 'next' on 2026-03-23 at 521c6eb44b)
+ t2203: avoid suppressing git status exit code

Test clean-up.
source: <20260317011544.65952-1-jerrywang183@yahoo.com>


* kh/doc-interpret-trailers-1 (2026-03-16) 4 commits
(merged to 'next' on 2026-03-20 at 6acc8b5a8a)
+ interpret-trailers: use placeholder instead of *
+ doc: config: convert trailers section to synopsis style
+ doc: interpret-trailers: normalize and fill out options
+ doc: interpret-trailers: convert to synopsis style

Doc updates.
source: <V2_CV_doc_interpret-tr_synopsis.50a@msgid.xyz>


* mf/apply-p-no-atoi (2026-03-15) 1 commit
(merged to 'next' on 2026-03-20 at 70a0a4313b)
+ apply.c: fix -p argument parsing

"git apply -p<n>" parses <n> more carefully now.
source: <20260316005120.7079-1-mroik@delayed.space>


* mr/merge-file-object-id-worktree-fix (2026-03-10) 1 commit
(merged to 'next' on 2026-03-20 at 68e1ee2045)
+ merge-file: fix BUG when --object-id is used in a worktree

merge-file --object-id used to trigger a BUG when run in a linked
worktree, which has been fixed.
source: <c076edd0-9057-443b-ba37-33aacde2eede@app.fastmail.com>


* ps/build-tweaks (2026-03-18) 8 commits
(merged to 'next' on 2026-03-20 at fb53cf619a)
+ meson: precompile "git-compat-util.h"
+ meson: compile compatibility sources separately
+ git-compat-util.h: move warning infra to prepare for PCHs
+ builds: move build scripts into "tools/"
+ contrib: move "update-unicode.sh" script into "tools/"
+ contrib: move "coverage-diff.sh" script into "tools/"
+ contrib: move "coccinelle/" directory into "tools/"
+ Introduce new "tools/" directory
(this branch is used by rs/use-strvec-pushv.)

Tweak the build infrastructure by moving tools around.
source: <20260319-b4-pks-build-infra-improvements-v3-0-82f5fb3edc3f@pks.im>


* rs/ahead-behind-cleanup-optimization (2026-03-19) 1 commit
(merged to 'next' on 2026-03-21 at 5d8b4fa265)
+ commit-reach: simplify cleanup of remaining bitmaps in ahead_behind ()

The cleanup of remaining bitmaps in "ahead_behind()" has been
simplified.
source: <21adf042-2bd1-4022-8822-9ed4985122a4@web.de>


* rs/prio-queue-to-commit-stack (2026-03-17) 1 commit
(merged to 'next' on 2026-03-20 at 265cb7b28c)
+ use commit_stack instead of prio_queue in LIFO mode

Uses of prio_queue as a LIFO stack of commits have been written
with commit_stack.
source: <05fc946f-6670-46e9-a058-231ee464029d@web.de>


* rs/split-index-the-repo-fix (2026-03-19) 1 commit
(merged to 'next' on 2026-03-21 at d66850b2ce)
+ split-index: stop using the_repository and the_hash_algo

split-index.c has been updated to not use the global the_repository
and the_hash_algo variables.
source: <944c2331-4dec-4c98-9059-f41dc204ed86@web.de>

--------------------------------------------------
[Cooking]

* jk/t0061-bat-test-update (2026-03-24) 1 commit
(merged to 'next' on 2026-03-26 at ffae180124)
+ t0061: simplify .bat test
@ -145,7 +377,8 @@ Release tarballs are available at:
The experimental `git replay` command learned the `--ref=<ref>` option
to allow specifying which ref to update, overriding the default behavior.

Comments?
Seems to break CI.
cf. <xmqqjyuynv99.fsf@gitster.g>
source: <20260325-toon-replay-arbitrary-ref-v2-0-553038702c9c@iotcl.com>


@ -171,42 +404,34 @@ Release tarballs are available at:
that discarded constness when they return a pointer into a const
string to preserve constness.

Comments?
Will merge to 'next'.
source: <20260326190243.GA412983@coredump.intra.peff.net>
source: <20260326192320.GA418281@coredump.intra.peff.net>


* mf/format-patch-commit-list-format-doc (2026-03-26) 2 commits
* mf/format-patch-commit-list-format-doc (2026-03-27) 3 commits
- format-patch: removing unconditional wrapping
- docs: fix --commit-list-format related entries
- Merge branch 'mf/format-patch-commit-list-format' into mf/format-patch-commit-list-format-doc
(this branch uses mf/format-patch-commit-list-format and mf/format-patch-cover-letter-format.)

Doc updates.

Waiting for review responses.
source: <20260326200643.20251-1-mroik@delayed.space>
Will merge to 'next'.
source: <cover.1774640789.git.mroik@delayed.space>


* th/t8003-unhide-git-failures (2026-03-26) 1 commit
- t8003: avoid suppressing git's exit code
* th/t8003-unhide-git-failures (2026-03-28) 2 commits
(merged to 'next' on 2026-03-30 at ad41378b07)
+ t8003: modernise style
+ t8003: avoid suppressing git's exit code

Test clean-up.

Will merge to 'next'?
source: <20260326141118.146155-1-vikingtc4@gmail.com>
Will merge to 'master'.
source: <20260328132955.172262-2-vikingtc4@gmail.com>


* za/t2000-test-path-is-helpers (2026-03-26) 1 commit
- t2000: modernize path checks with test_path_is_* helpers

Test clean-up.

Will merge to 'next'?
source: <20260326192603.23961-1-zakariyahali100@gmail.com>

--------------------------------------------------
[Cooking]

* jt/fast-import-signed-modes (2026-03-26) 5 commits
- fast-import: add 'abort-if-invalid' mode to '--signed-tags=<mode>'
- fast-import: add 'sign-if-invalid' mode to '--signed-tags=<mode>'
@ -216,27 +441,28 @@ Release tarballs are available at:

Handling of signed commits and tags in fast-import has been made more
configurable.

Needs review.
source: <20260326191414.3783974-1-jltobler@gmail.com>


* ps/graph-lane-limit (2026-03-25) 2 commits
- graph: add documentation and tests about --graph-lane-limit
* ps/graph-lane-limit (2026-03-27) 3 commits
- graph: add truncation mark to capped lanes
- graph: add --graph-lane-limit option
- graph: limit the graph width to a hard-coded max

The graph output from commands like "git log --graph" can now be
limited to a specified number of lanes, preventing overly wide output
in repositories with many branches.

Expecting a reroll.
cf. <CAN5EUNQdq7Eg+yd9ZqVGbYuKSYOhAB5rc2np7SeQT-Zc10aqDw@mail.gmail.com>
source: <20260325174401.217577-1-pabloosabaterr@gmail.com>
Needs review.
source: <20260328001113.1275291-1-pabloosabaterr@gmail.com>


* rs/use-strvec-pushv (2026-03-24) 2 commits
(merged to 'next' on 2026-03-24 at 7c6487dcaf)
+ use strvec_pushv() to add another strvec
+ Merge branch 'ps/build-tweaks' into rs/use-strvec-pushv
(this branch uses ps/build-tweaks.)

Code paths that loop over another array to push each element into a
strvec have been rewritten to use strvec_pushv() instead.
@ -283,18 +509,6 @@ Release tarballs are available at:
source: <20260322023557.15907-1-jayatheerthkulkarni2005@gmail.com>


* jk/diff-highlight-identical-pairs (2026-03-17) 1 commit
(merged to 'next' on 2026-03-20 at a8aa5bd14e)
+ contrib/diff-highlight: do not highlight identical pairs
(this branch is used by jk/diff-highlight-more.)

The handling of the incomplete lines at the end by "git
diff-highlight" has been fixed.

Will merge to 'master'.
source: <20260317230223.GA716496@coredump.intra.peff.net>


* jk/diff-highlight-more (2026-03-22) 9 commits
(merged to 'next' on 2026-03-24 at e7b555cbc5)
+ diff-highlight: fetch all config with one process
@ -306,7 +520,6 @@ Release tarballs are available at:
+ diff-highlight: drop perl version dependency back to 5.8
+ diff-highlight: mention build instructions
+ Merge branch 'jk/diff-highlight-identical-pairs' into jk/diff-highlight-more
(this branch uses jk/diff-highlight-identical-pairs.)

Various updates to contrib/diff-highlight, including documentation
updates, test improvements, and color configuration handling.
@ -336,7 +549,7 @@ Release tarballs are available at:
source: <20260323-b4-pks-fsck-without-the-repository-v2-0-e8dc79bca651@pks.im>


* tb/stdin-packs-excluded-but-open (2026-03-25) 5 commits
* tb/stdin-packs-excluded-but-open (2026-03-27) 5 commits
- repack: mark non-MIDX packs above the split as excluded-open
- pack-objects: support excluded-open packs with --stdin-packs
- t7704: demonstrate failure with once-cruft objects above the geometric split
@ -346,8 +559,8 @@ Release tarballs are available at:
pack-objects's --stdin-packs=follow mode learns to handle
excluded-but-open packs.

Will merge to 'next'?
source: <cover.1774482700.git.me@ttaylorr.com>
Will merge to 'next'.
source: <cover.1774641999.git.me@ttaylorr.com>


* yc/path-walk-fix-error-reporting (2026-03-20) 1 commit
@ -391,27 +604,18 @@ Release tarballs are available at:


* ds/backfill-revs (2026-03-26) 6 commits
- t5620: test backfill's unknown argument handling
- path-walk: support wildcard pathspecs for blob filtering
- backfill: work with prefix pathspecs
- backfill: accept revision arguments
- t5620: prepare branched repo for revision tests
- revision: include object-name.h
(merged to 'next' on 2026-03-27 at d4703fdd35)
+ t5620: test backfill's unknown argument handling
+ path-walk: support wildcard pathspecs for blob filtering
+ backfill: work with prefix pathspecs
+ backfill: accept revision arguments
+ t5620: prepare branched repo for revision tests
+ revision: include object-name.h

`git backfill` learned to accept revision and pathspec arguments.

Will merge to 'next'?
source: <pull.2070.v3.git.1774538094.gitgitgadget@gmail.com>


* jw/t2203-status-pipe-fix (2026-03-16) 1 commit
(merged to 'next' on 2026-03-23 at 521c6eb44b)
+ t2203: avoid suppressing git status exit code

Test clean-up.

Will merge to 'master'.
source: <20260317011544.65952-1-jerrywang183@yahoo.com>
source: <pull.2070.v3.git.1774538094.gitgitgadget@gmail.com>


* ps/commit-graph-overflow-fix (2026-03-23) 1 commit
@ -431,88 +635,24 @@ Release tarballs are available at:

git replay now supports replaying down to the root commit.

Will merge to 'next'?
Will merge to 'next'.
source: <20260324-toon-replay-down-to-root-v2-1-34e723489f6e@iotcl.com>


* mr/merge-file-object-id-worktree-fix (2026-03-10) 1 commit
(merged to 'next' on 2026-03-20 at 68e1ee2045)
+ merge-file: fix BUG when --object-id is used in a worktree

merge-file --object-id used to trigger a BUG when run in a linked
worktree, which has been fixed.

Will merge to 'master'.
source: <c076edd0-9057-443b-ba37-33aacde2eede@app.fastmail.com>


* rs/prio-queue-to-commit-stack (2026-03-17) 1 commit
(merged to 'next' on 2026-03-20 at 265cb7b28c)
+ use commit_stack instead of prio_queue in LIFO mode

Uses of prio_queue as a LIFO stack of commits have been written
with commit_stack.

Will merge to 'master'.
source: <05fc946f-6670-46e9-a058-231ee464029d@web.de>


* jw/object-name-bitset-to-enum (2026-03-18) 1 commit
(merged to 'next' on 2026-03-23 at 881af371ef)
+ object-name: turn INTERPRET_BRANCH_* constants into enum values

The unsigned integer that is used as an bitset to specify the kind
of branches interpret_branch_name() function has been changed to
use a dedicated enum type.

Will merge to 'master'.
source: <20260318190942.22595-1-jerrywang183@yahoo.com>


* ai/t2107-test-path-is-helpers (2026-03-18) 1 commit
(merged to 'next' on 2026-03-23 at 56d10e5f76)
+ t2107: modernize path existence check

Test cleanup.

Will merge to 'master'.
source: <pull.2071.v2.git.1773864455956.gitgitgadget@gmail.com>


* gi/doc-boolean-config-typofix (2026-03-18) 1 commit
(merged to 'next' on 2026-03-20 at 8810624798)
+ doc: add missing space on git-config page

Doc typofix.

Will merge to 'master'.
source: <20260318210020.759128-1-gabl@gabl.ink>


* ua/push-remote-group (2026-03-25) 2 commits
* ua/push-remote-group (2026-03-27) 3 commits
- SQUASH??? - futureproof against the attack of the "main"
- push: support pushing to a remote group
- remote: move remote group resolution to remote.c

"git push" learned to take a "remote group" name to push to, which
causes pushes to multiple places, just like "git fetch" would do.

Waiting for a review response.
Expecting a reroll.
cf. <xmqq7bqzu1xh.fsf@gitster.g>
cf. <xmqqse9kj4rh.fsf@gitster.g>
source: <20260325190906.1153080-1-usmanakinyemi202@gmail.com>


* jc/rerere-modern-strbuf-handling (2026-03-19) 2 commits
(merged to 'next' on 2026-03-21 at 919b766afc)
+ cocci: strbuf.buf is never NULL
+ rerere: update to modern representation of empty strbufs

Code clean-up overdue by 19 years.

Will merge to 'master'.
source: <xmqq341wnvbk.fsf@gitster.g>
source: <xmqq4imbigvt.fsf@gitster.g>


* ps/odb-generic-object-name-handling (2026-03-20) 16 commits
- odb: introduce generic `odb_find_abbrev_len()`
- object-file: move logic to compute packed abbreviation length
@ -535,21 +675,11 @@ Release tarballs are available at:
refactored to be backend-generic, moving logic into the respective
object database backends.

Comments?
Will merge to 'next'.
cf. <874ilxm4wp.fsf@toon--20250203-5JQV3.mail-host-address-is-not-set>
source: <20260320-b4-pks-odb-source-abbrev-v2-0-fe65dcd8c735@pks.im>


* rs/ahead-behind-cleanup-optimization (2026-03-19) 1 commit
(merged to 'next' on 2026-03-21 at 5d8b4fa265)
+ commit-reach: simplify cleanup of remaining bitmaps in ahead_behind ()

The cleanup of remaining bitmaps in "ahead_behind()" has been
simplified.

Will merge to 'master'.
source: <21adf042-2bd1-4022-8822-9ed4985122a4@web.de>


* bk/t5315-test-path-is-helpers (2026-03-19) 1 commit
(merged to 'next' on 2026-03-24 at f7374e8e70)
+ t5315: use test_path_is_file for loose-object check
@ -560,17 +690,6 @@ Release tarballs are available at:
source: <20260319180803.164335-1-elkhatabibilal@gmail.com>


* rs/split-index-the-repo-fix (2026-03-19) 1 commit
(merged to 'next' on 2026-03-21 at d66850b2ce)
+ split-index: stop using the_repository and the_hash_algo

split-index.c has been updated to not use the global the_repository
and the_hash_algo variables.

Will merge to 'master'.
source: <944c2331-4dec-4c98-9059-f41dc204ed86@web.de>


* aa/reap-transport-child-processes (2026-03-12) 1 commit
- transport-helper, connect: use clean_on_exit to reap children on abnormal exit

@ -578,22 +697,11 @@ Release tarballs are available at:
connection weren't wait(2)ing for their children and letting "init"
reap them instead; they have been tightened.

Will merge to 'next' after jk/t0061-bat-test-update settles down.
Will merge to 'next'.
cf. <20260325061357.GA3772970@coredump.intra.peff.net>
source: <20260312214945.4050010-1-cshung@gmail.com>


* ej/ref-transaction-hook-preparing (2026-03-16) 1 commit
(merged to 'next' on 2026-03-20 at f9b8fbb0dc)
+ refs: add 'preparing' phase to the reference-transaction hook

The reference-transaction hook was taught to be triggered before
taking locks on references in the "preparing" phase.

Will merge to 'master'.
source: <20260317023624.43070-2-eric.peijian@gmail.com>


* hn/git-checkout-m-with-stash (2026-03-17) 4 commits
- checkout: -m (--merge) uses autostash when switching branches
- sequencer: teach autostash apply to take optional conflict marker labels
@ -621,28 +729,15 @@ Release tarballs are available at:


* pw/worktree-reduce-the-repository (2026-03-26) 3 commits
- worktree: reject NULL worktree in get_worktree_git_dir()
- worktree add: stop reading ".git/HEAD"
- worktree: remove "the_repository" from is_current_worktree()
(merged to 'next' on 2026-03-30 at f967ececef)
+ worktree: reject NULL worktree in get_worktree_git_dir()
+ worktree add: stop reading ".git/HEAD"
+ worktree: remove "the_repository" from is_current_worktree()

Reduce the reference to the_repository in the worktree subsystem.

Will merge to 'next'?
source: <cover.1774534617.git.phillip.wood@dunelm.org.uk>


* jw/apply-corrupt-location (2026-03-17) 3 commits
(merged to 'next' on 2026-03-23 at 18e9b8f91f)
+ apply: report input location in binary and garbage patch errors
+ apply: report input location in header parsing errors
+ apply: report the location of corrupt patches

"git apply" now reports the name of the input file along with the
line number when it encounters a corrupt patch, and correctly
resets the line counter when processing multiple patch files.

Will merge to 'master'.
source: <20260317162321.71812-1-jerrywang183@yahoo.com>
source: <cover.1774534617.git.phillip.wood@dunelm.org.uk>


* mf/format-patch-commit-list-format (2026-03-23) 9 commits
@ -686,47 +781,6 @@ Release tarballs are available at:
source: <SY0P300MB080186A23FB9582AD793F0D1CE40A@SY0P300MB0801.AUSP300.PROD.OUTLOOK.COM>


* mf/apply-p-no-atoi (2026-03-15) 1 commit
(merged to 'next' on 2026-03-20 at 70a0a4313b)
+ apply.c: fix -p argument parsing

"git apply -p<n>" parses <n> more carefully now.

Will merge to 'master'.
source: <20260316005120.7079-1-mroik@delayed.space>


* ps/build-tweaks (2026-03-18) 8 commits
(merged to 'next' on 2026-03-20 at fb53cf619a)
+ meson: precompile "git-compat-util.h"
+ meson: compile compatibility sources separately
+ git-compat-util.h: move warning infra to prepare for PCHs
+ builds: move build scripts into "tools/"
+ contrib: move "update-unicode.sh" script into "tools/"
+ contrib: move "coverage-diff.sh" script into "tools/"
+ contrib: move "coccinelle/" directory into "tools/"
+ Introduce new "tools/" directory
(this branch is used by rs/use-strvec-pushv.)

Tweak the build infrastructure by moving tools around.

Will merge to 'master'.
source: <20260319-b4-pks-build-infra-improvements-v3-0-82f5fb3edc3f@pks.im>


* kh/doc-interpret-trailers-1 (2026-03-16) 4 commits
(merged to 'next' on 2026-03-20 at 6acc8b5a8a)
+ interpret-trailers: use placeholder instead of *
+ doc: config: convert trailers section to synopsis style
+ doc: interpret-trailers: normalize and fill out options
+ doc: interpret-trailers: convert to synopsis style

Doc updates.

Will merge to 'master'.
source: <V2_CV_doc_interpret-tr_synopsis.50a@msgid.xyz>


* mm/line-log-use-standard-diff-output (2026-03-16) 4 commits
- doc: note that -L supports patch formatting and pickaxe options
- t4211: add tests for -L with standard diff options
@ -742,24 +796,25 @@ Release tarballs are available at:


* ar/config-hook-cleanups (2026-03-25) 13 commits
- hook: reject unknown hook names in git-hook(1)
- hook: show disabled hooks in "git hook list"
- hook: show config scope in git hook list
- hook: introduce hook_config_cache_entry for per-hook data
- t1800: add test to verify hook execution ordering
- hook: make consistent use of friendly-name in docs
- hook: replace hook_list_clear() -> string_list_clear_func()
- hook: detect & emit two more bugs
- hook: rename cb_data_free/alloc -> hook_data_free/alloc
- hook: fix minor style issues
- builtin/receive-pack: properly init receive_hook strbuf
- hook: move unsorted_string_list_remove() to string-list.[ch]
- Merge branch 'ar/config-hooks' into ar/config-hook-cleanups
(merged to 'next' on 2026-03-30 at c128948b16)
+ hook: reject unknown hook names in git-hook(1)
+ hook: show disabled hooks in "git hook list"
+ hook: show config scope in git hook list
+ hook: introduce hook_config_cache_entry for per-hook data
+ t1800: add test to verify hook execution ordering
+ hook: make consistent use of friendly-name in docs
+ hook: replace hook_list_clear() -> string_list_clear_func()
+ hook: detect & emit two more bugs
+ hook: rename cb_data_free/alloc -> hook_data_free/alloc
+ hook: fix minor style issues
+ builtin/receive-pack: properly init receive_hook strbuf
+ hook: move unsorted_string_list_remove() to string-list.[ch]
+ Merge branch 'ar/config-hooks' into ar/config-hook-cleanups
(this branch is used by ar/parallel-hooks.)

Code clean-up around the recent "hooks defined in config" topic.

Will merge to 'next'?
Will merge to 'master'.
source: <20260325195503.1139418-1-adrian.ratiu@collabora.com>


@ -865,20 +920,20 @@ Release tarballs are available at:

The fsmonitor daemon has been implemented for Linux.

Waiting for the rerolls to slow down?
cf. <aakyzGksiC2fhhiD@pks.im>
Needs review.
source: <pull.2147.v8.git.git.1772648125.gitgitgadget@gmail.com>


* sa/replay-revert (2026-03-25) 2 commits
- replay: add --revert mode to reverse commit changes
- sequencer: extract revert message formatting into shared function
(merged to 'next' on 2026-03-30 at ef4896a676)
+ replay: add --revert mode to reverse commit changes
+ sequencer: extract revert message formatting into shared function
(this branch is used by tc/replay-ref.)

"git replay" (experimental) learns, in addition to "pick" and
"replay", a new operating mode "revert".

Will merge to 'next'?
Will merge to 'master'.
source: <20260325202354.10628-1-siddharthasthana31@gmail.com>


@ -915,17 +970,32 @@ Release tarballs are available at:
source: <20260326101819.1307742-1-adrian.ratiu@collabora.com>


* en/xdiff-cleanup-3 (2026-03-25) 5 commits
- xdiff/xdl_cleanup_records: use unambiguous types
* en/xdiff-cleanup-3 (2026-03-30) 6 commits
- xdiff/xdl_cleanup_records: simplify INVESTIGATE handling for clarity
- xdiff/xdl_cleanup_records: make setting action easier to follow
- xdiff/xdl_cleanup_records: make limits more clear
- xdiff/xdl_cleanup_records: use unambiguous types
- xdiff: use unambiguous types in xdl_bogo_sqrt()
- xdiff/xdl_cleanup_records: delete local recs pointer

Preparation of the xdiff/ codebase to work with Rust

Needs review?
source: <pull.2156.v2.git.git.1774473065.gitgitgadget@gmail.com>
Needs review.
source: <pull.2156.v4.git.git.1774890003.gitgitgadget@gmail.com>

--------------------------------------------------
[Discarded]

* bc/rev-parse-parseopt-help-exit-code (2026-03-16) 1 commit
. rev-parse: have --parseopt callers exit 0 on --help

`rev-parse --parseopt` now includes "exit 0" in its output when the
user asks for help, ensuring that scripts using the recommended `eval`
pattern exit successfully.

Need to step back and rethink how exit code should look like.
cf. <20260317150759.GA9975@coredump.intra.peff.net>
source: <20260316220742.1286157-1-sandals@crustytoothpaste.net>


* js/macos-homebrew-forgets-reg-enhanced (2026-03-20) 1 commit
@ -939,33 +1009,3 @@ Release tarballs are available at:
cf. <458ad3c1-96df-4575-ee42-e6eb754f25f6@gmx.de>
cf. <xmqq8qbi5vvx.fsf@gitster.g>
source: <d340af9e-334c-4e81-e58a-fc3dea73ebdd@gmx.de>

--------------------------------------------------
[Discarded]

* js/neuter-sideband (2026-02-03) 6 commits
. sideband: delay sanitizing by default to Git v3.0
. sideband: offer to configure sanitizing on a per-URL basis
. sideband: add options to allow more control sequences to be passed through
. sideband: do allow ANSI color sequences by default
. sideband: introduce an "escape hatch" to allow control characters
. sideband: mask control characters

Invalidate control characters in sideband messages, to avoid
terminal state getting messed up.

Superseded by 'jc/neuter-sideband-fixup', which reuses most of the patches.
cf. <xmqqv7gcnwd4.fsf@gitster.g>
source: <pull.1853.v4.git.1770113882.gitgitgadget@gmail.com>


* bc/rev-parse-parseopt-help-exit-code (2026-03-16) 1 commit
. rev-parse: have --parseopt callers exit 0 on --help

`rev-parse --parseopt` now includes "exit 0" in its output when the
user asks for help, ensuring that scripts using the recommended `eval`
pattern exit successfully.

Need to step back and rethink how exit code should look like.
cf. <20260317150759.GA9975@coredump.intra.peff.net>
source: <20260316220742.1286157-1-sandals@crustytoothpaste.net>