To: git@vger.kernel.org
-Subject: What's cooking in git.git (Mar 2026, #06)
-X-master-at: ca1db8a0f7dc0dbea892e99f5b37c5fe5861be71
-X-next-at: 0bb29b3bc592338d0db506b4bb84c8f3f11e7095
+Subject: What's cooking in git.git (Mar 2026, #07)
+X-master-at: 7ff1e8dc1e1680510c96e69965b3fa81372c5037
+X-next-at: 1eceb487f285f1efa78465e6208770318f9f4892
Bcc: lwn@lwn.net, gitster@pobox.com
-What's cooking in git.git (Mar 2026, #06)
+What's cooking in git.git (Mar 2026, #07)
-----------------------------------------
Here are the topics that have been cooking in my tree. Commits
--------------------------------------------------
[Graduated to 'master']
-* ds/for-each-repo-w-worktree (2026-03-03) 4 commits
- (merged to 'next' on 2026-03-06 at 3886f0d054)
- + for-each-repo: simplify passing of parameters
- + for-each-repo: work correctly in a worktree
- + run-command: extract sanitize_repo_env helper
- + for-each-repo: test outside of repo context
+* bk/run-command-wo-the-repository (2026-03-12) 2 commits
+ (merged to 'next' on 2026-03-12 at 61ffe62b75)
+ + run-command: wean auto_maintenance() functions off the_repository
+ + run-command: wean start_command() off the_repository
+
+ The run_command() API lost its implicit dependencyon the singleton
+ `the_repository` instance.
+ source: <20260312144437.626392-1-bkkaracay@gmail.com>
+
+
+* dd/list-objects-filter-options-wo-strbuf-split (2026-03-11) 2 commits
+ (merged to 'next' on 2026-03-12 at 99c4dbd03e)
+ + list-objects-filter-options: avoid strbuf_split_str()
+ + worktree: do not pass strbuf by value
+ (this branch is used by dd/cocci-do-not-pass-strbuf-by-value.)
+
+ The way combined list-object filter options are parsed has been
+ revamped.
+ source: <20260311173336.8395-1-deveshigurgaon@gmail.com>
- "git for-each-repo" started from a secondary worktree did not work
- as expected, which has been corrected.
- source: <pull.2056.v4.git.1772559114.gitgitgadget@gmail.com>
+* jc/doc-wholesale-replace-before-next (2026-03-09) 1 commit
+ (merged to 'next' on 2026-03-13 at 19ca350c9b)
+ + SubmittingPatches: spell out "replace fully to pretend to be perfect"
-* fp/t3310-unhide-git-failures (2026-03-07) 1 commit
- (merged to 'next' on 2026-03-09 at edd6c35bb8)
- + t3310: avoid hiding failures from rev-parse in command substitutions
+ Doc update.
+ source: <xmqq34283b12.fsf@gitster.g>
+
+
+* lc/rebase-trailer (2026-03-06) 6 commits
+ (merged to 'next' on 2026-03-13 at 75c22b6b26)
+ + rebase: support --trailer
+ + commit, tag: parse --trailer with OPT_STRVEC
+ + trailer: append trailers without fork/exec
+ + trailer: libify a couple of functions
+ + interpret-trailers: refactor create_in_place_tempfile()
+ + interpret-trailers: factor trailer rewriting
+
+ "git rebase" learns "--trailer" command to drive the
+ interpret-trailers machinery.
+ source: <cover.1772808594.git.phillip.wood@dunelm.org.uk>
+
+
+* ps/editorconfig-unanchor (2026-03-11) 1 commit
+ (merged to 'next' on 2026-03-12 at 39ef732ca9)
+ + editorconfig: fix style not applying to subdirs anymore
- The construct 'test "$(command)" = expectation' loses the exit
- status from the command, which has been fixed by breaking up the
- statement into pieces.
- source: <20260307103631.89829-1-francescopaparatto@gmail.com>
+ Editorconfig filename patterns were specified incorrectly, making
+ many source files inside subdirectories unaffected, which has been
+ corrected.
+ source: <20260311-b4-pks-editorconfig-fix-subdirs-v1-1-4938193ccd31@pks.im>
-* hn/status-compare-with-push (2026-03-04) 4 commits
- (merged to 'next' on 2026-03-06 at 7c5ad405d7)
- + status: clarify how status.compareBranches deduplicates
- (merged to 'next' on 2026-02-26 at 1c11b8819a)
- + status: add status.compareBranches config for multiple branch comparisons
- + refactor format_branch_comparison in preparation
- + Merge branch 'jk/remote-tracking-ref-leakfix' into hn/status-compare-with-push
+* ps/t9200-test-path-is-helpers (2026-03-12) 2 commits
+ (merged to 'next' on 2026-03-12 at 8500bdf172)
+ + t9200: replace test -f with modern path helper
+ + t9200: handle missing CVS with skip_all
- "git status" learned to show comparison between the current branch
- and various other branches listed on status.compareBranches
- configuration.
- source: <pull.2138.v30.git.git.1772102022.gitgitgadget@gmail.com>
- source: <pull.2138.v31.git.git.1772627131.gitgitgadget@gmail.com>
+ Test update.
+ source: <20260311194002.190195-1-pabloosabaterr@gmail.com>
+ source: <20260312173305.15112-1-pabloosabaterr@gmail.com>
-* jk/unleak-mmap (2026-03-06) 6 commits
- (merged to 'next' on 2026-03-10 at e169ff00b3)
- + meson: turn on NO_MMAP when building with LSan
- + Makefile: turn on NO_MMAP when building with LSan
- + object-file: fix mmap() leak in odb_source_loose_read_object_stream()
- + pack-revindex: avoid double-loading .rev files
- + check_connected(): fix leak of pack-index mmap
- + check_connected(): delay opening new_pack
+* ps/unit-test-c-escape-names.txt (2026-03-10) 1 commit
+ (merged to 'next' on 2026-03-13 at f545ea5a9c)
+ + test-lib: print escape sequence names
- Plug a few leaks where mmap'ed memory regions are not unmapped.
- source: <20260305230315.GA2354983@coredump.intra.peff.net>
- source: <796110ee-d795-4445-9d82-7026370a88cf@intel.com>
- source: <20260307022459.GA693632@coredump.intra.peff.net>
+ The unit test helper function was taught to use backslash +
+ mnemonic notation for certain control characters like "\t", instead
+ of octal notation like "\011".
+ source: <20260311031442.11942-1-pabloosabaterr@gmail.com>
-* jt/repo-structure-extrema (2026-03-02) 6 commits
- (merged to 'next' on 2026-03-09 at 8ccfebc0b1)
- + builtin/repo: find tree with most entries
- + builtin/repo: find commit with most parents
- + builtin/repo: add OID annotations to table output
- + builtin/repo: collect largest inflated objects
- + builtin/repo: add helper for printing keyvalue output
- + builtin/repo: update stats for each object
+* ss/submodule--helper-use-xmalloc (2026-03-10) 1 commit
+ (merged to 'next' on 2026-03-13 at f13711965e)
+ + submodule--helper: replace malloc with xmalloc
- "git repo structure" command learns to report maximum values on
- various aspects of objects it inspects.
- source: <20260302214526.2034279-1-jltobler@gmail.com>
+ Code clean-up.
+ source: <20260310164412.47403-1-r.siddharth.shrimali@gmail.com>
-* os/doc-git-custom-commands (2026-03-07) 1 commit
- (merged to 'next' on 2026-03-09 at 5cabe3db39)
- + doc: make it easier to find custom command information
+* ss/t3200-test-zero-oid (2026-03-11) 1 commit
+ (merged to 'next' on 2026-03-12 at 647ee3f2dc)
+ + t3200: replace hardcoded null OID with $ZERO_OID
- Doc update.
- source: <pull.2225.git.git.1772903281929.gitgitgadget@gmail.com>
-
-
-* ps/odb-sources (2026-03-05) 19 commits
- (merged to 'next' on 2026-03-06 at 69fd3b792a)
- + odb/source: make `begin_transaction()` function pluggable
- + odb/source: make `write_alternate()` function pluggable
- + odb/source: make `read_alternates()` function pluggable
- + odb/source: make `write_object_stream()` function pluggable
- + odb/source: make `write_object()` function pluggable
- + odb/source: make `freshen_object()` function pluggable
- + odb/source: make `for_each_object()` function pluggable
- + odb/source: make `read_object_stream()` function pluggable
- + odb/source: make `read_object_info()` function pluggable
- + odb/source: make `close()` function pluggable
- + odb/source: make `reprepare()` function pluggable
- + odb/source: make `free()` function pluggable
- + odb/source: introduce source type for robustness
- + odb: move reparenting logic into respective subsystems
- + odb: embed base source in the "files" backend
- + odb: introduce "files" source
- + odb: split `struct odb_source` into separate header
- + Merge branch 'ps/object-info-bits-cleanup' into ps/odb-sources
- + Merge branch 'ps/odb-for-each-object' into ps/odb-sources
- (this branch is used by ps/object-counting.)
-
- The object source API is getting restructured to allow plugging new
- backends.
- source: <20260305-b4-pks-odb-source-pluggable-v2-0-3290bfd1f444@pks.im>
-
-
-* rs/history-ergonomics-updates-fix (2026-03-08) 1 commit
- (merged to 'next' on 2026-03-10 at 7d58650290)
- + history: initialize rev_info in cmd_history_reword()
-
- Fix use of uninitialized variable.
- source: <b0b8633f-be95-48eb-8244-d0e3f1a7be72@web.de>
-
-
-* sp/wt-status-wo-the-repository (2026-02-18) 3 commits
- (merged to 'next' on 2026-03-09 at 2e99d5ed52)
- + wt-status: use hash_algo from local repository instead of global the_hash_algo
- + wt-status: replace uses of the_repository with local repository instances
- + wt-status: pass struct repository through function parameters
-
- Reduce dependence on the global the_hash_algo and the_repository
- variables of wt-status code path.
- source: <20260218175654.66004-1-shreyanshpaliwalcmsmn@gmail.com>
-
-
-* ty/patch-ids-document-lazy-eval (2026-03-08) 1 commit
- (merged to 'next' on 2026-03-10 at c8be8d6f7e)
- + patch-ids: document intentional const-casting in patch_id_neq()
-
- In-code comment update to record a design decision to allow lazy
- computation of patch IDs.
- source: <20260309065140.108644-1-cat@malon.dev>
-
-
-* ty/setup-error-tightening (2026-03-04) 1 commit
- (merged to 'next' on 2026-03-10 at 38268a7acc)
- + setup: improve error diagnosis for invalid .git files
-
- While discovering a ".git" directory, the code treats any stat()
- failure as a sign that a filesystem entity .git does not exist
- there, and ignores ".git" that is not a "gitdir" file or a
- directory. The code has been tightened to notice and report
- filesystem corruption better.
- source: <20260304141526.37764-1-a3205153416@gmail.com>
+ A test now uses the symbolic constant $ZERO_OID instead of 40 "0" to
+ work better with SHA-256 as well as SHA-1.
+ source: <20260311174120.76871-1-r.siddharth.shrimali@gmail.com>
--------------------------------------------------
[New Topics]
+* jc/whitespace-incomplete-line (2026-03-17) 1 commit
+ - apply: fix new-style empty context line triggering incomplete-line check
+
+ Fix whitespace correction for new-style empty context lines.
+
+ Needs review.
+ source: <xmqqldfql4hp.fsf@gitster.g>
+
+
+* sp/add-patch-with-fewer-the-repository (2026-03-17) 1 commit
+ - add-patch: use repository instance from add_i_state instead of the_repository
+
+ Reduce dependency on `the_repository` in add-patch.c file.
+
+ Needs review.
+ source: <20260317155230.619378-1-shreyanshpaliwalcmsmn@gmail.com>
+
+
+* ds/backfill-revs (2026-03-16) 5 commits
+ - 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.
+
+ Needs review.
+ source: <pull.2070.git.1773707361.gitgitgadget@gmail.com>
+
+
+* jw/t2203-status-pipe-fix (2026-03-16) 1 commit
+ - t2203: avoid suppressing git status exit code
+
+ Test clean-up.
+
+ Will merge to 'next'?
+ source: <20260317011544.65952-1-jerrywang183@yahoo.com>
+
+
+* ps/commit-graph-overflow-fix (2026-03-17) 1 commit
+ - commit-graph: fix writing generations with dates exceeding 34 bits
+
+ Fix a regression in writing the commit-graph where commits with dates
+ exceeding 34 bits (beyond year 2514) could cause an underflow and
+ crash Git during the generation data overflow chunk writing.
+
+ Needs review.
+ source: <20260317-pks-commit-graph-overflow-v1-1-e6bee22cd826@pks.im>
+
+
+* tc/replay-down-to-root (2026-03-17) 1 commit
+ - replay: support replaying down from root commit
+
+ git replay now supports replaying down to the root commit.
+
+ Needs review.
+ source: <20260317-toon-replay-down-to-root-v1-1-cb5c249e15fd@iotcl.com>
+
+
+* mr/merge-file-object-id-worktree-fix (2026-03-10) 1 commit
+ - 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 'next'.
+ source: <c076edd0-9057-443b-ba37-33aacde2eede@app.fastmail.com>
+
+
+* rs/prio-queue-to-commit-stack (2026-03-17) 1 commit
+ - 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 'next'.
+ source: <05fc946f-6670-46e9-a058-231ee464029d@web.de>
+
+
+* jw/object-name-bitset-to-enum (2026-03-18) 1 commit
+ - 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 'next'?
+ source: <20260318190942.22595-1-jerrywang183@yahoo.com>
+
+
+* ai/t2107-test-path-is-helpers (2026-03-18) 1 commit
+ - t2107: modernize path existence check
+
+ Test cleanup.
+
+ Will merge to 'next'?
+ source: <pull.2071.v2.git.1773864455956.gitgitgadget@gmail.com>
+
+
+* gi/doc-boolean-config-typofix (2026-03-18) 1 commit
+ - doc: add missing space on git-config page
+
+ Doc typofix.
+
+ Will merge to 'next'.
+ source: <20260318210020.759128-1-gabl@gabl.ink>
+
+
+* ua/push-remote-group (2026-03-19) 3 commits
+ - fixup! push: support pushing to a remote group
+ - 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.
+
+ Will merge to 'next' after squashing the fixup in?
+ source: <20260318204028.1010487-1-usmanakinyemi202@gmail.com>
+
+
+* jc/rerere-modern-strbuf-handling (2026-03-19) 1 commit
+ - rerere: update to modern representation of empty strbufs
+
+ Code clean-up overdue by 19 years.
+
+ Will merge to 'next'.
+ source: <xmqq341wnvbk.fsf@gitster.g>
+
+
+* ps/odb-generic-object-name-handling (2026-03-18) 15 commits
+ - odb: introduce generic `odb_find_abbrev_len()`
+ - object-file: move logic to compute packed abbreviation length
+ - object-name: move logic to compute loose abbreviation length
+ - object-name: simplify computing common prefixes
+ - object-name: abbreviate loose object names without `disambiguate_state`
+ - object-name: merge `update_candidates()` and `match_prefix()`
+ - object-name: backend-generic `get_short_oid()`
+ - object-name: backend-generic `repo_collect_ambiguous()`
+ - object-name: extract function to parse object ID prefixes
+ - object-name: move logic to iterate through packed prefixed objects
+ - object-name: move logic to iterate through loose prefixed objects
+ - odb: introduce `struct odb_for_each_object_options`
+ - oidtree: extend iteration to allow for arbitrary return codes
+ - oidtree: modernize the code a bit
+ - Merge branch 'ps/object-counting' into ps/odb-generic-object-name-handling
+ (this branch uses ps/object-counting.)
+
+ Object name handling (disambiguation and abbreviation) has been
+ refactored to be backend-generic, moving logic into the respective
+ object database backends.
+
+ Comments?
+ source: <20260319-b4-pks-odb-source-abbrev-v1-0-5ddebad292b0@pks.im>
+
+
+* rs/ahead-behind-cleanup-optimization (2026-03-19) 1 commit
+ - commit-reach: simplify cleanup of remaining bitmaps in ahead_behind ()
+
+ The cleanup of remaining bitmaps in "ahead_behind()" has been
+ simplified.
+
+ Will merge to 'next'.
+ source: <21adf042-2bd1-4022-8822-9ed4985122a4@web.de>
+
+
+* bk/t5315-test-path-is-helpers (2026-03-19) 1 commit
+ - t5315: use test_path_is_file for loose-object check
+
+ Test clean-up.
+
+ Will merge to 'next'?
+ source: <20260319180803.164335-1-elkhatabibilal@gmail.com>
+
+
+* rs/split-index-the-repo-fix (2026-03-19) 1 commit
+ - 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 'next'.
+ source: <944c2331-4dec-4c98-9059-f41dc204ed86@web.de>
+
+--------------------------------------------------
+[Cooking]
+
* aa/reap-transport-child-processes (2026-03-12) 1 commit
- - transport-helper, connect: use clean_on_exit to reap children on abnormal exit
+ . transport-helper, connect: use clean_on_exit to reap children on abnormal exit
A few code paths that spawned child processes for network
connection weren't wait(2)ing for their children and letting "init"
reap them instead; they have been tightened.
- Will merge to 'next'?
+ CI failures on Windows in t0061.24?
+ cf. <20260318040423.GA2858991@coredump.intra.peff.net>
source: <20260312214945.4050010-1-cshung@gmail.com>
* ss/t0410-delete-object-cleanup (2026-03-12) 1 commit
- - t0410: modernize delete_object helper
+ (merged to 'next' on 2026-03-17 at a8d41f4c1f)
+ + t0410: modernize delete_object helper
Test clean-up.
- Will merge to 'next'.
- source: <20260313025852.30010-1-r.siddharth.shrimali@gmail.com>
+ Will merge to 'master'.
+ source: <20260313053159.36492-1-r.siddharth.shrimali@gmail.com>
-* ej/ref-transaction-hook-preparing (2026-03-15) 1 commit
+* ej/ref-transaction-hook-preparing (2026-03-16) 1 commit
- 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.
- Comments?
- source: <20260316045102.70551-2-eric.peijian@gmail.com>
+ Will merge to 'next'.
+ source: <20260317023624.43070-2-eric.peijian@gmail.com>
-* hn/git-checkout-m-with-stash (2026-03-15) 4 commits
+* 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
- sequencer: allow create_autostash to run silently
was taught to create a stash to save the local changes.
Needs review.
- source: <pull.2234.v5.git.git.1773573553.gitgitgadget@gmail.com>
+ source: <pull.2234.v6.git.git.1773740139.gitgitgadget@gmail.com>
* kh/name-rev-custom-format (2026-03-13) 2 commits
* dd/cocci-do-not-pass-strbuf-by-value (2026-03-15) 3 commits
- - stash: do not pass strbuf by value
- - coccinelle: detect struct strbuf passed by value
- - Merge branch 'dd/list-objects-filter-options-wo-strbuf-split' into dd/cocci-do-not-pass-strbuf-by-value
- (this branch uses dd/list-objects-filter-options-wo-strbuf-split.)
+ (merged to 'next' on 2026-03-18 at a2ffed1127)
+ + stash: do not pass strbuf by value
+ + coccinelle: detect struct strbuf passed by value
+ + Merge branch 'dd/list-objects-filter-options-wo-strbuf-split' into dd/cocci-do-not-pass-strbuf-by-value
Add a coccinelle rule to break the build when "struct strbuf" gets
passed by value.
- Will merge to 'next'?
+ Will merge to 'master'.
source: <20260315094445.19849-1-deveshigurgaon@gmail.com>
* gj/user-manual-fix-grep-example (2026-03-16) 1 commit
- - doc: fix git grep args order in Quick Reference
+ (merged to 'next' on 2026-03-17 at dbf9137a9d)
+ + doc: fix git grep args order in Quick Reference
Fix an example in the user-manual.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <pull.2069.git.1773670536808.gitgitgadget@gmail.com>
* jk/transport-color-leakfix (2026-03-14) 1 commit
- - transport: plug leaks in transport_color_config()
+ (merged to 'next' on 2026-03-17 at c2d7c74d11)
+ + transport: plug leaks in transport_color_config()
Leakfix.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <20260314160814.GA918806@coredump.intra.peff.net>
-* jw/apply-corrupt-location (2026-03-16) 1 commit
+* jw/apply-corrupt-location (2026-03-17) 3 commits
+ - 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.
- Expecting review responses.
- source: <20260316113459.77794-1-jerrywang183@yahoo.com>
+ Will merge to 'next'?
+ source: <20260317162321.71812-1-jerrywang183@yahoo.com>
* ps/clar-wo-path-max (2026-03-16) 1 commit
- - clar: update to fix compilation on platforms without PATH_MAX
+ (merged to 'next' on 2026-03-17 at 1d2f28a677)
+ + clar: update to fix compilation on platforms without PATH_MAX
Clar (unit testing framework) update from the upstream.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <20260316-b4-pks-clar-without-path-max-v1-1-40b4bc91fdc0@pks.im>
* rj/pack-refs-tests-path-is-helpers (2026-03-15) 1 commit
- - t/pack-refs-tests: use test_path_is_missing
+ (merged to 'next' on 2026-03-17 at 56374095e3)
+ + t/pack-refs-tests: use test_path_is_missing
Test updates.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <20260315081032.497-1-riteshjd75@gmail.com>
--commit-list-format` (formerly `--cover-letter-format`) option,
including a new "modern" preset and better CLI ergonomics.
- Needs review.
+ Expecting a reroll.
+ cf. <abl-U6jJaMQsfxWj@exploit>
source: <cover.1773530191.git.mroik@delayed.space>
* mf/t0008-cleanup (2026-03-15) 1 commit
- - t0008: improve test cleanup to fix failing test
+ (merged to 'next' on 2026-03-17 at 2bb0e51243)
+ + t0008: improve test cleanup to fix failing test
Test clean-up.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <20260316011544.13825-1-mroik@delayed.space>
* pb/t4200-test-path-is-helpers (2026-03-16) 1 commit
- - t4200: convert test -[df] checks to test_path_* helpers
+ (merged to 'next' on 2026-03-17 at a78771f93e)
+ + t4200: convert test -[df] checks to test_path_* helpers
Test clean-up.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <20260316172457.38242-1-prashantjee2025@gmail.com>
---------------------------------------------------
-[Cooking]
* js/parseopt-subcommand-autocorrection (2026-03-16) 10 commits
- doc: document autocorrect API
* jt/fast-import-sign-again (2026-03-12) 3 commits
- - fast-import: add mode to sign commits with invalid signatures
- - gpg-interface: allow sign_buffer() to use default signing key
- - commit: remove unused forward declaration
+ (merged to 'next' on 2026-03-17 at e04808d5f2)
+ + fast-import: add mode to sign commits with invalid signatures
+ + gpg-interface: allow sign_buffer() to use default signing key
+ + commit: remove unused forward declaration
"git fast-import" learned to optionally replace signature on
commits whose signatures get invalidated due to replaying by
signing afresh.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <20260313013938.2742124-1-jltobler@gmail.com>
"git apply -p<n>" parses <n> more carefully now.
- Will merge to 'next'?
+ Will merge to 'next'.
source: <20260316005120.7079-1-mroik@delayed.space>
-* ps/build-tweaks (2026-03-16) 8 commits
+* ps/build-tweaks (2026-03-18) 8 commits
- meson: precompile "git-compat-util.h"
- meson: compile compatibility sources separately
- git-compat-util.h: move warning infra to prepare for PCHs
Tweak the build infrastructure by moving tools around.
- Will merge to 'next'??
- source: <20260316-b4-pks-build-infra-improvements-v2-0-4b2c2c0c0425@pks.im>
+ Will merge to 'next'.
+ source: <20260319-b4-pks-build-infra-improvements-v3-0-82f5fb3edc3f@pks.im>
* ps/object-counting (2026-03-12) 7 commits
- - 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
+ (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.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <20260312-b4-pks-odb-source-count-objects-v2-0-5914f69256bf@pks.im>
* ty/doc-diff-u-wo-number (2026-03-10) 1 commit
- - diff: document -U without <n> as using default context
+ (merged to 'next' on 2026-03-18 at 8a410154ff)
+ + diff: document -U without <n> as using default context
"git diff -U<num>" was too lenient in its command line parsing and
took an empty string as a valid <num>.
- Will merge to 'next'?
+ Will merge to 'master'.
source: <20260310095017.131957-1-cat@malon.dev>
source: <20260311121107.1122387-1-dev+git@drbeat.li>
-* ps/editorconfig-unanchor (2026-03-11) 1 commit
- (merged to 'next' on 2026-03-12 at 39ef732ca9)
- + editorconfig: fix style not applying to subdirs anymore
-
- Editorconfig filename patterns were specified incorrectly, making
- many source files inside subdirectories unaffected, which has been
- corrected.
-
- Will merge to 'master'.
- source: <20260311-b4-pks-editorconfig-fix-subdirs-v1-1-4938193ccd31@pks.im>
-
-
-* ps/unit-test-c-escape-names.txt (2026-03-10) 1 commit
- (merged to 'next' on 2026-03-13 at f545ea5a9c)
- + test-lib: print escape sequence names
-
- The unit test helper function was taught to use backslash +
- mnemonic notation for certain control characters like "\t", instead
- of octal notation like "\011".
-
- Will merge to 'master'.
- source: <20260311031442.11942-1-pabloosabaterr@gmail.com>
-
-
-* ss/submodule--helper-use-xmalloc (2026-03-10) 1 commit
- (merged to 'next' on 2026-03-13 at f13711965e)
- + submodule--helper: replace malloc with xmalloc
-
- Code clean-up.
-
- Will merge to 'master'.
- source: <20260310164412.47403-1-r.siddharth.shrimali@gmail.com>
-
-
-* ss/t3200-test-zero-oid (2026-03-11) 1 commit
- (merged to 'next' on 2026-03-12 at 647ee3f2dc)
- + t3200: replace hardcoded null OID with $ZERO_OID
-
- A test now uses the symbolic constant $ZERO_OID instead of 40 "0" to
- work better with SHA-256 as well as SHA-1.
-
- Will merge to 'master'.
- source: <20260311174120.76871-1-r.siddharth.shrimali@gmail.com>
-
-
* jc/test-allow-sed-with-ere (2026-03-11) 1 commit
(merged to 'next' on 2026-03-16 at be057bed35)
+ t: allow use of "sed -E"
source: <xmqq3425lvtq.fsf@gitster.g>
-* bk/run-command-wo-the-repository (2026-03-12) 2 commits
- (merged to 'next' on 2026-03-12 at 61ffe62b75)
- + run-command: wean auto_maintenance() functions off the_repository
- + run-command: wean start_command() off the_repository
-
- The run_command() API lost its implicit dependencyon the singleton
- `the_repository` instance.
-
- Will merge to 'master'.
- source: <20260312144437.626392-1-bkkaracay@gmail.com>
-
-
-* kh/doc-interpret-trailers-1 (2026-03-11) 3 commits
+* kh/doc-interpret-trailers-1 (2026-03-16) 4 commits
+ - 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.
- Expecting a (hopefully small and final) reroll?
- cf. <xmqq1phogbk5.fsf@gitster.g>
- source: <CV_doc_interpret-tr_synopsis.48a@msgid.xyz>
+ Will merge to 'next'.
+ source: <V2_CV_doc_interpret-tr_synopsis.50a@msgid.xyz>
* ty/mktree-wo-the-repository (2026-03-12) 1 commit
source: <20260312164203.964033-1-cat@malon.dev>
-* mm/line-log-use-standard-diff-output (2026-03-06) 4 commits
+* 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
- line-log: route -L output through the standard diff pipeline
log/diff machinery is being reworked a bit to make the feature
compatible with more diff options, like -S/G.
- Expecting a reroll.
- cf. <CAC2QwmJTqYj5b531itc=8ZM3vXsg5oG3BLCHiEuoB7d0d4U=TQ@mail.gmail.com>
- source: <pull.2065.git.1772845338.gitgitgadget@gmail.com>
+ Needs review.
+ source: <pull.2065.v2.git.1773714095.gitgitgadget@gmail.com>
* ar/config-hook-cleanups (2026-03-08) 11 commits
source: <3ad40c3d0762c2e8c14792dfb68cba9f63a883a3.1773026586.git.collin.funk1@gmail.com>
-* dd/list-objects-filter-options-wo-strbuf-split (2026-03-11) 2 commits
- (merged to 'next' on 2026-03-12 at 99c4dbd03e)
- + list-objects-filter-options: avoid strbuf_split_str()
- + worktree: do not pass strbuf by value
- (this branch is used by dd/cocci-do-not-pass-strbuf-by-value.)
-
- Revamp the way combined option filter is parsed.
-
- Will merge to 'master'.
- source: <20260311173336.8395-1-deveshigurgaon@gmail.com>
-
-
-* jc/doc-wholesale-replace-before-next (2026-03-09) 1 commit
- (merged to 'next' on 2026-03-13 at 19ca350c9b)
- + SubmittingPatches: spell out "replace fully to pretend to be perfect"
-
- Doc update.
-
- Will merge to 'master'.
- source: <xmqq34283b12.fsf@gitster.g>
-
-
-* ps/t9200-test-path-is-helpers (2026-03-12) 2 commits
- (merged to 'next' on 2026-03-12 at 8500bdf172)
- + t9200: replace test -f with modern path helper
- + t9200: handle missing CVS with skip_all
-
- Test update.
-
- Will merge to 'master'.
- source: <20260311194002.190195-1-pabloosabaterr@gmail.com>
- source: <20260312173305.15112-1-pabloosabaterr@gmail.com>
-
-
* ab/clone-default-object-filter (2026-03-14) 1 commit
- clone: add clone.<url>.defaultObjectFilter config
* ps/history-split (2026-03-02) 8 commits
- - builtin/history: implement "split" subcommand
- - builtin/history: split out extended function to create commits
- - cache-tree: allow writing in-memory index as tree
- - add-patch: allow disabling editing of hunks
- - add-patch: add support for in-memory index patching
- - add-patch: remove dependency on "add-interactive" subsystem
- - add-patch: split out `struct interactive_options`
- - add-patch: split out header from "add-interactive.h"
+ (merged to 'next' on 2026-03-17 at 456723f018)
+ + builtin/history: implement "split" subcommand
+ + builtin/history: split out extended function to create commits
+ + cache-tree: allow writing in-memory index as tree
+ + add-patch: allow disabling editing of hunks
+ + add-patch: add support for in-memory index patching
+ + add-patch: remove dependency on "add-interactive" subsystem
+ + add-patch: split out `struct interactive_options`
+ + add-patch: split out header from "add-interactive.h"
"git history" learned the "split" subcommand.
- Will merge to 'next'.
+ Will merge to 'master'.
source: <20260302-pks-history-split-v1-0-444fc987a324@pks.im>
* ps/upload-pack-buffer-more-writes (2026-03-12) 10 commits
- - builtin/pack-objects: reduce lock contention when writing packfile data
- - csum-file: drop `hashfd_throughput()`
- - csum-file: introduce `hashfd_ext()`
- - sideband: use writev(3p) to send pktlines
- - wrapper: introduce writev(3p) wrappers
- - compat/posix: introduce writev(3p) wrapper
- - upload-pack: reduce lock contention when writing packfile data
- - upload-pack: prefer flushing data over sending keepalive
- - upload-pack: adapt keepalives based on buffering
- - upload-pack: fix debug statement when flushing packfile data
+ (merged to 'next' on 2026-03-18 at 138ad42ac5)
+ + builtin/pack-objects: reduce lock contention when writing packfile data
+ + csum-file: drop `hashfd_throughput()`
+ + csum-file: introduce `hashfd_ext()`
+ + sideband: use writev(3p) to send pktlines
+ + wrapper: introduce writev(3p) wrappers
+ + compat/posix: introduce writev(3p) wrapper
+ + upload-pack: reduce lock contention when writing packfile data
+ + upload-pack: prefer flushing data over sending keepalive
+ + upload-pack: adapt keepalives based on buffering
+ + upload-pack: fix debug statement when flushing packfile data
Reduce system overhead "git upload-pack" spends on relaying "git
pack-objects" output to the "git fetch" running on the other end of
the connection.
- Will merge to 'next'?
- source: <20260313-pks-upload-pack-write-contention-v4-0-7a9668061f7f@pks.im>
-
-
-* lc/rebase-trailer (2026-03-06) 6 commits
- (merged to 'next' on 2026-03-13 at 75c22b6b26)
- + rebase: support --trailer
- + commit, tag: parse --trailer with OPT_STRVEC
- + trailer: append trailers without fork/exec
- + trailer: libify a couple of functions
- + interpret-trailers: refactor create_in_place_tempfile()
- + interpret-trailers: factor trailer rewriting
-
- "git rebase" learns "--trailer" command to drive the
- interpret-trailers machinery.
-
Will merge to 'master'.
- source: <cover.1772808594.git.phillip.wood@dunelm.org.uk>
+ source: <20260313-pks-upload-pack-write-contention-v4-0-7a9668061f7f@pks.im>
* mf/format-patch-cover-letter-format (2026-03-06) 5 commits
source: <20260313054035.26605-1-siddharthasthana31@gmail.com>
-* vp/http-rate-limit-retries (2026-02-23) 4 commits
+* vp/http-rate-limit-retries (2026-03-17) 3 commits
- http: add support for HTTP 429 rate limit retries
- - remote-curl: introduce show_http_message_fatal() helper
- strbuf_attach: fix call sites to pass correct alloc
- strbuf: pass correct alloc to strbuf_attach() in strbuf_reencode()
The HTTP transport learned to react to "429 Too Many Requests".
Needs review.
- cf. <xmqq5x7nknrd.fsf@gitster.g>
- source: <pull.2008.v5.git.1771856405.gitgitgadget@gmail.com>
+ source: <pull.2008.v6.git.1773752435.gitgitgadget@gmail.com>
* ar/parallel-hooks (2026-03-09) 10 commits
* yc/histogram-hunk-shift-fix (2026-03-02) 1 commit
- - xdiff: re-diff shifted change groups when using histogram algorithm
+ (merged to 'next' on 2026-03-18 at 5e49edc821)
+ + xdiff: re-diff shifted change groups when using histogram algorithm
The final clean-up phase of the diff output could turn the result of
histogram diff algorithm suboptimal, which has been corrected.
- Will merge to 'next'?
+ Will merge to 'master'.
source: <pull.2120.v2.git.git.1772463265865.gitgitgadget@gmail.com>
* tb/incremental-midx-part-3.2 (2026-02-24) 17 commits
- - 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
+ (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
- Will merge to 'next'?
+ Will merge to 'master'.
source: <cover.1771959555.git.me@ttaylorr.com>
--------------------------------------------------
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>