Git development
 help / color / mirror / Atom feed
* What's cooking in git.git (Nov 2026, #05)
@ 2026-11-12 23:45 Junio C Hamano
  2026-11-13 10:08 ` Toon Claes
  0 siblings, 1 reply; 3+ messages in thread
From: Junio C Hamano @ 2026-11-12 23:45 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking in my tree.  Commits
prefixed with '+' are in 'next' (being in 'next' is a sign that a
topic is stable enough to be used and is a candidate to be in a
future release).  Commits prefixed with '-' are only in 'seen', and
aren't considered "accepted" at all.  Each topic is annotated with
one-line comment of its status (e.g., "Waiting for response", "Will
merge to 'master'") and may be annotated with URLs of messages that
led to the status, but these references are by no means exhaustive.
A topic without enough support may be discarded after a long period
of inactivity (of course, it can be resubmitted when new interest
arises).

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']

* ep/pack-objects-streamed-large-blobs (2026-11-01) 1 commit
  (merged to 'next' on 2026-11-04 at 1e64290722)
 + pack-objects: use size_t for streamed large blobs

 The code in 'git pack-objects' used to truncate object sizes on
 platforms where 'long' is 32-bit but 'size_t' is larger (like 64-bit
 Windows) when handling large objects exceeding 4GiB, which has been
 corrected by using 'size_t' and 'off_t' appropriately.

 Graduated to 'master'.
 cf. <xmqqo6c54l75.fsf@gitster.g>
 source: <20261101072904.274912-1-gitter.spiros@gmail.com>


* hn/remote-simple-push-triangular (2026-10-31) 2 commits
  (merged to 'next' on 2026-11-04 at 3d87058231)
 + remote: resolve "simple" @{push} when pushing to another remote
 + remote: move "simple" @{push} resolution into a helper

 The 'simple' push resolution in 'git rev-parse @{push}' has been
 updated to mirror the behavior of 'git push'. When the configured push
 remote differs from the fetch remote, it now resolves to the branch of
 the same name on the push remote instead of failing.

 Graduated to 'master'.
 cf. <xmqq5wyh2w8m.fsf@gitster.g>
 source: <pull.2466.v2.git.git.1793433841.gitgitgadget@gmail.com>


* jk/test-env-quoting-fix (2026-10-30) 1 commit
  (merged to 'next' on 2026-11-04 at a009c20290)
 + t5702: be more resilient to env quoting

 Tests in 't5702' that grep the output of 'env' to check for the
 'GIT_PROTOCOL' environment variable have been updated to explicitly
 echo the variable instead, making them resilient to quoting changes
 introduced in newer GNU coreutils.

 Graduated to 'master'.
 cf. <xmqqwlqytvg9.fsf@gitster.g>
 source: <20261031002550.GA626623@coredump.intra.peff.net>


* oa/range-diff-repo (2026-10-29) 1 commit
  (merged to 'next' on 2026-11-04 at ab1018250d)
 + range-diff: use diffopt->repo instead of the_repository

 The 'range-diff' command has been updated to use the repository
 context pointer from 'diff_options' instead of relying on the global
 'the_repository' and 'the_hash_algo' variables, as part of the
 libification effort.

 Graduated to 'master'.
 cf. <xmqqzevw4gze.fsf@gitster.g>
 source: <20261029084720.93221-1-okhuomonajayi54@gmail.com>


* ps/ci-consolidate-test-variables (2026-11-02) 7 commits
  (merged to 'next' on 2026-11-05 at dbb1431606)
 + ci: don't override initial branch name in testbed job
 + ci/lib: add another NO_RUST build using glibc
 + t: honor default ref storage format
 + ci/lib: merge switches for specific job names
 + ci/lib: deduplicate test variables by pattern matching
 + ci/lib: always set GIT_TEST_USE_SET_E on Linux jobs
 + ci: consolidate setup of test environment

 The test environment setup in the CI scripts has been consolidated and
 deduplicated to remove redundancies and simplify test flag management.

 Graduated to 'master'.
 cf. <0b0a3de3-b758-4a1b-b8a0-9804b362b261@gmail.com>
 cf. <20261104063645.GC1543013@coredump.intra.peff.net>
 source: <20261102-b4-pks-ci-test-vars-consolidation-v2-0-a5485c437c62@pks.im>


* tb/merge-ort-valueless-rename-config (2026-10-31) 1 commit
  (merged to 'next' on 2026-11-04 at 345086619a)
 + merge-ort: accept rename settings given without a value

 The configuration parsing in the 'merge-ort' backend has been updated
 to accept valueless settings for 'diff.renames', 'merge.renames', and
 'merge.directoryRenames', which are now properly treated as true.

 Graduated to 'master'.
 cf. <xmqqjymx2x0c.fsf@gitster.g>
 source: <pull.2284.git.1793441202854.gitgitgadget@gmail.com>


* tc/security-boundary-doc (2026-10-30) 1 commit
  (merged to 'next' on 2026-11-05 at 972d6e3ab6)
 + Documentation: clarify Git's security boundary

 A new document, gitsecurityboundary(7), has been added to clarify
 the security boundaries Git guarantees and the responsibilities of
 the user, aiming to provide a clear reference for what constitutes a
 security vulnerability in Git.

 Graduated to 'master'.
 cf. <xmqqy0bcz9m4.fsf@gitster.g>
 source: <pull.2286.git.1793362370899.gitgitgadget@gmail.com>

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

* wh/checkout-orphaned-commit-warning (2026-11-11) 4 commits
 - SQUASH???
 - scalar: disable orphaned commit checks by default
 - checkout: advise when orphaned commit checks are slow
 - checkout: make orphaned commit checks configurable

 'git checkout' to switch back from a detached HEAD state can spend a
 lot of time computing what commits are left behind.  A configuration
 variable is introduced to skip computing the list of orphaned commits.

 Waiting for response.
 cf. <90f09054-9013-46f6-b4de-9be88d1f3126@gmail.com>
 cf. <xmqqa4ngpcjq.fsf@gitster.g>
 cf. <xmqqtslnmc9b.fsf@gitster.g>
 source: <pull.2264.git.1794337920.gitgitgadget@gmail.com>


* tb/config-null-values (2026-11-11) 15 commits
 - config: handle NULL values when listing colors and expiry dates
 - bundle-uri: handle NULL values in bundle lists
 - config: handle NULL value for remote URLs in hasconfig includes
 - scalar: handle NULL value for scalar.repo
 - pseudo-merge: handle NULL value for bitmapPseudoMerge.<name>.pattern
 - setup: handle NULL value for safe.bareRepository
 - remote: handle NULL value for remotes.<group>
 - merge: handle NULL value for branch.<name>.mergeOptions
 - blame: handle NULL values for color.blame.* config
 - remote: handle NULL value for remote.<name>.tagOpt
 - grep: handle NULL value for grep.patternType
 - bundle-uri: handle NULL value for fetch.bundleCreationToken
 - add-patch: handle NULL value for color slots
 - odb: handle NULL values for core.alternateRefs* config
 - rebase -i: handle NULL value for rebase.missingCommitsCheck

 Various commands have been updated to check for missing configuration
 values (where a config key is provided without an '=' sign) to prevent
 NULL pointer dereferences in config callbacks.

 Will merge to 'next'?
 cf. <f04be044-96a7-40e5-9fb9-81bde0e3dc04@gmail.com>
 cf. <e8f6cbb1-8324-44e8-b703-d7a29ae7fa09@gmail.com>
 source: <pull.2297.v3.git.1794437355.gitgitgadget@gmail.com>


* ak/t2401-w2-path-fix (2026-11-10) 1 commit
 - t2401: fix misfiring substitution when path contains w2

 The test for 'git worktree prune' in 't2401' has been updated to
 avoid using 'sed' string substitution to mutate worktree paths,
 fixing a failure when the trash directory path itself contains the
 substring 'w2'.

 Will merge to 'next'?
 cf. <xmqqjymjnwg8.fsf@gitster.g>
 source: <20261110-t2401-substitution-v1-1-32f3524f2b92@mit.edu>


* mv/log-follow-merge-opt-in (2026-11-12) 1 commit
 - log: make --follow following renames for non-linear history optional

 The performance of 'git log --follow' was severely degraded by a
 recent enhancement to follow renames across non-linear history.
 The expensive per-parent rename detection has been made opt-in,
 enabled via '--follow=merges' or 'log.follow=merges'.

 Needs review.
 source: <avWBQ_10mHUNQcFi@collabora.com>


* yh/refs-drop-peel-iterated-oid (2026-11-11) 1 commit
 - refs: drop unused `peel_iterated_oid()` declaration

 The unused declaration of peel_iterated_oid() and its associated
 comment have been removed from the 'refs.h' header, as the function
 itself was dropped in an earlier commit.

 Will merge to 'next'?
 cf. <xmqqv761j3df.fsf@gitster.g>
 source: <20261112-refs-drop-peel-iterated-oid-v1-1-7df1c313e293@gmail.com>


* jm/worktree-rebase-bisect-checked-out (2026-11-11) 5 commits
 - branch: do not mark the branch the current worktree is rebasing
 - ref-filter: add %(currentworktree)
 - ref-filter: name the worktree of a branch being rebased or bisected
 - doc: for-each-ref: say how to read %(worktreepath) safely
 - worktree remove: refuse a worktree in the middle of an operation

 The 'git worktree remove' command has been updated to refuse to remove
 a worktree in the middle of a rebase or bisect operation unless
 '--force' is given. The '%(worktreepath)' atom and 'git branch'
 command now correctly identify the worktree that is rebasing or
 bisecting a branch.

 Needs review.
 source: <20261111152811.99986-1-me@jaspermayone.com>


* kk/commit-struct-padding (2026-11-12) 1 commit
 - commit: remove padding from struct commit

 The layout of 'struct commit' has been rearranged to eliminate padding
 bytes, reducing its memory footprint by 8 bytes per allocated commit
 on 64-bit platforms.

 Expecting a reroll.
 cf. <60c1d61e-777d-4c5a-b5a1-10c6530aa0d5@gmail.com>
 cf. <CAL71e4OS8MKZMY88C1SMs7ufSZ98-DNHNBc94cESdKpuXKbs7w@mail.gmail.com>
 source: <pull.2309.git.1794500044740.gitgitgadget@gmail.com>


* kn/fast-import-tests (2026-11-12) 20 commits
 - t93xx: drop the series letter from the moved test names
 - t9300: move self-contained tests into dedicated files
 - t9300: make the get-mark and encoding tests self-contained
 - t9300: make the stream tests self-contained
 - t9300: make the feature and option tests self-contained
 - t9300: make the cat-blob tests self-contained
 - t9300: make the series Y tests self-contained
 - t9300: make the marks tests self-contained
 - t9300: make the pack edges test self-contained
 - t9300: make the date format tests self-contained
 - t9300: make the ref update tests self-contained
 - t9300: make the big blob tests self-contained
 - t9300: make the series O tests self-contained
 - t9300: make the series P tests self-contained
 - t9300: make the series Q tests self-contained
 - t9300: make the series V tests self-contained
 - t9300: make the series S tests self-contained
 - t9300: make the series T tests self-contained
 - t9300: make the series B tests self-contained
 - t9300: move 'fastimport.unpackLimit' to the required test
 - Merge branches 'cc/early-scan-options' and 'tj/drop-no-parseopt' into kn/fast-import-tests
 (this branch uses cc/early-scan-options and tj/drop-no-parseopt.)

 The 't9300-fast-import.sh' test script has been refactored to make
 individual tests self-contained, encapsulating setup and state into
 subshells. The tests have also been split into several new test files
 to improve parallel execution and maintainability.

 Needs review.
 source: <20261112-kn-fast-import-tests-1-v2-0-b8c3a0ab27e8@gmail.com>

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

* jc/unpack-trees-repo (2026-11-09) 2 commits
  (merged to 'next' on 2026-11-10 at b3d98b9389)
 + unpack-trees: consistently use "struct index_state *istate"
 + unpack-trees: lose USE_THE_REPOSITORY

 The low level functions in the unpack-trees API have been updated to
 rely on the repository instance pointed at by the 'struct
 index_state' and 'struct unpack_trees_options' variables instead of
 implicitly depending on the global 'the_repository'.

 Will merge to 'master'.
 cf. <avHNf-aaxdsyim7g@pks.im>
 cf. <784778b3-173d-4226-ae9e-4efcd4f556af@gmail.com>
 cf. <37267fd4-c565-4559-9c5c-01d58cd0426d@gmail.com>
 cf. <avNI9rHN3GS7Kmlz@pks.im>
 source: <20261109205438.369060-1-gitster@pobox.com>


* bc/setup-default-hash-algo (2026-11-07) 1 commit
 - setup: default hash algo to GIT_HASH_DEFAULT

 The object format initialization in 'git init' has been updated to
 use the default hash algorithm compiled into the binary, ensuring
 new repositories use 'sha256' when breaking changes are enabled.

 Waiting for response.
 cf. <xmqqik274201.fsf@gitster.g>
 source: <20261108011633.1772000-1-sandals@crustytoothpaste.net>


* hs/doc-promisor-fetch-order (2026-11-08) 1 commit
  (merged to 'next' on 2026-11-12 at 082129397d)
 + doc: describe promisor remote fetch order

 The documentation on partial clone has been updated to describe the
 order in which promisor remotes are tried when fetching missing
 objects.

 Will merge to 'master'.
 source: <20261108195518.943-1-husainsitamuwala21@gmail.com>


* kk/test-tool-genbytes (2026-11-11) 1 commit
 - t: add "test-tool genbytes" to avoid slow tr(1) on macOS

 The test helper used for generating large files with repeated bytes
 has been updated to avoid slow 'tr' performance on macOS. A new
 'test-tool genbytes' now generates repeated bytes natively, replacing
 the 'genzeros | tr' pipeline in several tests.

 Will merge to 'next'?
 cf. <xmqqo6bwqy9n.fsf@gitster.g>
 cf. <avRJPDEJWTGWySKp@pks.im>
 source: <pull.2301.v4.git.1794412751763.gitgitgadget@gmail.com>


* kj/repo-info-more-path-keys (2026-11-07) 7 commits
 - repo: add path.cdup
 - repo: add path.git-prefix
 - repo: add path.index with absolute and relative suffixes
 - repo: add path.hooks with absolute and relative suffixes
 - repo: add path.superproject-root with absolute and relative suffixes
 - submodule: use repository to find superproject
 - repo: add path.toplevel with absolute and relative suffix formatting

 The 'git repo info' command has been taught more keys to output
 paths of various repository components (such as the working tree
 root, superproject working tree, object database, etc.), supporting
 both absolute and relative path formats.

 Expecting a reroll.
 cf. <CA+rGoLef6b35hjJAcO5Nm57NiyDGK-iDbWO2MUMeoKVCkbRf5A@mail.gmail.com>
 cf. <xmqq5wy5zsqy.fsf@gitster.g>
 cf. <f7489c12-8529-4d0b-b820-225c9ee4d297@gmail.com>
 source: <20261107160100.122243-1-jayatheerthkulkarni2005@gmail.com>


* jt/object-file-error-handling (2026-11-03) 2 commits
  (merged to 'next' on 2026-11-08 at 49c648c8de)
 + object-file: return error on index-pack abnormal exit
 + object-file: warn on failed unlink

 Error handling in the object file writing paths has been polished to
 properly surface failures when 'index-pack' exits abnormally, and to
 issue a warning rather than failing silently when the cleanup of
 temporary lockfiles fails.

 Will merge to 'master'.
 cf. <CAOLa=ZRvbcjRt1MNn1ssun_Sfxm4ihQ+prw3sxc7=V5FcpVkMQ@mail.gmail.com>
 cf. <xmqqfqxgyzfo.fsf@gitster.g>
 cf. <xmqq8q38yz5i.fsf@gitster.g>
 source: <20261103212410.1389988-1-jltobler@gmail.com>


* cu/doc-api-parse-options (2026-11-04) 1 commit
  (merged to 'next' on 2026-11-08 at 4d9a913f8f)
 + api-parse-options.adoc: restore a dropped word

 The documentation for the parse-options API has been corrected to
 restore a missing word.

 Will merge to 'master'.
 cf. <xmqq1p90yyul.fsf@gitster.g>
 source: <20261104224559.4197-1-herroyalpriestess@gmail.com>


* ta/ci-retire-cirrus-ci (2026-11-05) 1 commit
  (merged to 'next' on 2026-11-08 at 2e2d3c1b2f)
 + ci: delete defunct Cirrus CI configuration

 The Cirrus CI configuration file has been deleted, as the service
 was shut down and the configuration is no longer functional.

 Will merge to 'master'.
 source: <20261105080001.6101-1-taahol@utu.fi>


* tj/annotate-blame-args (2026-11-04) 1 commit
  (merged to 'next' on 2026-11-08 at cc6f965ac2)
 + annotate: pass the arguments to blame unchanged

 The git annotate command has been simplified to pass its arguments
 down to git blame unchanged, as the redundant string array
 manipulation was causing an issue with --git-completion-helper.

 Will merge to 'master'.
 source: <20261105073101.1449292-1-tangajoris@gmail.com>


* ta/command-list-guides-sync-lint (2026-10-29) 2 commits
 - lint-docs: check the guide list in command-list.txt
 - command-list.txt: add gitformat-loose(5) and gitpacking(7)

 The manual page linter has been extended to ensure that concept
 guides and interface manuals listed in the documentation makefile
 are also properly featured in the command list.

 Expecting a reroll.
 cf. <xmqqcxsjt6b3.fsf@gitster.g>
 cf. <xmqqh5hvt6ot.fsf@gitster.g>
 cf. <20261111220001.VKwmr%taahol@utu.fi>
 source: <20261029184834.2273-1-taahol@utu.fi>


* ps/ci-speedups (2026-11-11) 7 commits
 - t5551: use reftables for repositories with many refs
 - t1092: set up repositories from templates
 - t0027: cache expected output files
 - t0027: optimize how we reset repository state
 - ci: build optimized binaries with Meson
 - gitlab-ci: exclude intermediate outputs from Windows artifacts
 - gitlab-ci: speed up installation of Git for Windows SDK

 The GitLab CI and testing frameworks have been optimized to reduce
 execution time, bypassing some intermediate artifact extraction and
 redundant processes, and utilizing reftables to speed up tests
 dealing with large number of references.

 Will merge to 'next'?
 cf. <xmqqqzgxkgf0.fsf@gitster.g>
 cf. <xmqqwlqku0nv.fsf@gitster.g>
 source: <20261111-pks-gitlab-ci-speedups-v3-0-d1e34117ee2e@pks.im>


* kn/parse-options-doc (2026-11-09) 1 commit
  (merged to 'next' on 2026-11-12 at e8a05f0a14)
 + api-parse-options: add missing flags and macros

 The technical documentation for the parse-options API has been
 updated to include descriptions for various missing flags and
 macros.

 Will merge to 'master'.
 source: <20261109-kn-parse-options-doc-v3-1-e60022942721@gmail.com>


* kk/large-pack-assertions (2026-11-06) 2 commits
  (merged to 'next' on 2026-11-09 at c5258f9d5a)
 + t5608: assert that the packs involved really are that large
 + unpack-objects: pass the size of a streamed blob as size_t

 The 'unpack-objects' tool has been fixed to use 'size_t' instead of
 'unsigned long' when streaming large blobs, preventing size
 truncation on Windows.  The setup for 't5608' has also been updated
 to correctly synthesize packs larger than 2GB, with new assertions
 added to ensure the packs are indeed that large.

 Will merge to 'master'.
 cf. <au3qKLWlM45rByWg@pks.im>
 source: <pull.2299.git.1793969476.gitgitgadget@gmail.com>


* ps/storage-format-improvements (2026-11-05) 5 commits
  (merged to 'next' on 2026-11-09 at 1fa175c9b7)
 + t: allow testing with a non-default object storage format
 + builtin/rev-parse: print payload for the ref storage format
 + setup: allow speciyfing payloads with default storage formats
 + odb/files: create leading directories
 + refs: create leading directories
 + Merge branch 'ps/odb-object-storage-extension' into ps/storage-format-improvements

 The handling of reference and object storage formats has been enhanced
 to properly support formats carrying payloads. Leading directories are
 now created automatically when initializing storage backends on disk,
 and the testing framework has been updated to allow running tests with
 a non-default object storage format.

 Will merge to 'master'.
 cf. <CAOLa=ZROTekhsC5g4vQKgCKg-akb4X0DMFf3bcfbO2k0uHtxsg@mail.gmail.com>
 source: <20261105-pks-storage-format-improvements-v1-0-870bb4212518@pks.im>


* ik/fsmonitor-untracked-cache-trivial-response (2026-11-09) 1 commit
  (merged to 'next' on 2026-11-12 at 2e6259781a)
 + fsmonitor: check the untracked cache after a trivial response

 The index writer has been taught to check the untracked cache
 against the filesystem when an FSMonitor trivial response is
 received, preventing commands like 'git add' from saving a new token
 while leaving stale untracked cache entries intact.

 Will merge to 'master'.
 cf. <fefa2680-695c-41db-9975-7e972590b969@gmail.com>
 source: <pull.2247.v2.git.1794251653636.gitgitgadget@gmail.com>


* kk/connectivity-check-ignore-replace (2026-11-02) 1 commit
  (merged to 'next' on 2026-11-06 at 823f1167ae)
 + rev-list: ignore replacements in the connectivity check

 The connectivity check algorithm has been updated to ignore
 replacement objects, aligning its behavior with operations like 'fsck'
 and 'pack-objects' that also require the original underlying objects
 to be present.

 Will merge to 'master'.
 cf. <xmqq4idyhotf.fsf@gitster.g>
 cf. <aum0rJ6T-OFWrMqW@pks.im>
 cf. <xmqq7bit92yg.fsf@gitster.g>
 source: <pull.2279.git.1793634429929.gitgitgadget@gmail.com>


* kk/quarantine-alternate-refs (2026-11-04) 1 commit
  (merged to 'next' on 2026-11-08 at 1a0e4e4d14)
 + odb: do not list our own refs as alternate refs

 The object database alternate iteration code has been updated to avoid
 listing the repository's own refs as alternate refs.  This fixes a
 significant performance issue where hidden refs were being loaded
 unnecessarily during the connectivity check in 'git-receive-pack(1)'.

 Will merge to 'master'.
 cf. <20261105185632.GA2898829@coredump.intra.peff.net>
 source: <pull.2285.v3.git.1793864602482.gitgitgadget@gmail.com>


* jc/freeze-repo-config-values (2026-11-02) 1 commit
  (merged to 'next' on 2026-11-06 at a26fc72ff8)
 + repo_config_values: freeze the structure for now

 The 'struct repo_config_values' structure has been documented to
 explicitly discourage adding new members to it, pending a wider
 cleanup of repository configuration and settings.

 Will merge to 'master'.
 cf. <aurSZcNENBrgxowu@pks.im>
 cf. <cfa38152-2fca-4734-94df-bcac44fb499d@gmail.com>
 source: <xmqq1p917kwl.fsf@gitster.g>


* rm/http-retry-improvements (2026-11-06) 5 commits
 - http: default http.retryAfter to 10 seconds
 - remote-curl: retry transient HTTP errors in post_rpc()
 - http: add http.retryStatusCodes config option
 - http: add exponential backoff without Retry-After
 - http: fix retry count and Retry-After timing

 The HTTP retry mechanism has been enhanced to implement exponential
 backoff when a 'Retry-After' header is missing, to allow configuring
 additional transient HTTP status codes (like 502 or 503) for
 retries, and to extend these retry capabilities to HTTP POST
 operations such as 'git-upload-pack'.

 Needs review.
 cf. <xmqqik2d63cc.fsf@gitster.g>
 cf. <xmqqse1d9ryw.fsf@gitster.g>
 cf. <CAF+mdifT3HAw-EvSqUxQ2si6a8j+Cmj0Sri6Z1t+SWPMBXe1wA@mail.gmail.com>
 source: <pull.2287.v3.git.1794022836.gitgitgadget@gmail.com>


* ep/pack-objects-streamed-large-blobs-fix (2026-11-01) 1 commit
  (merged to 'next' on 2026-11-06 at b0d1af577b)
 + pack-objects: use size_t for streamed large blobs

 The code in 'git pack-objects' used to truncate object sizes on
 platforms where 'long' is 32-bit but 'size_t' is larger (like 64-bit
 Windows) when handling large objects exceeding 4GiB, which has been
 corrected by using 'size_t' and 'off_t' appropriately.

 Will merge to 'master'.
 cf. <xmqqo6c54l75.fsf@gitster.g>
 source: <20261101072904.274912-1-gitter.spiros@gmail.com>


* hn/ci-ubuntu-26.04-fixes (2026-11-01) 3 commits
  (merged to 'next' on 2026-11-06 at 48352116f8)
 + ci: pin linux32 to ubuntu-24.04 to restore networking
 + install-dependencies: work around a permission problem
 + ci: use apt-get in the linux32 job

 The GitHub Actions CI jobs have been updated to fix breakages caused
 by the move to Ubuntu 26.04 runner images, including using 'apt-get'
 instead of 'apt' for stable CLI output, elevating permissions when
 replacing system binaries, and temporarily pinning the 'linux32' job
 to Ubuntu 24.04 to avoid seccomp-related networking failures.

 Will merge to 'master'.
 cf. <xmqqse1h4lmw.fsf@gitster.g>
 source: <pull.2478.git.git.1793530936.gitgitgadget@gmail.com>


* ps/odb-loose-stale-cache (2026-11-04) 2 commits
 - odb/source-loose: fix existence checks for newly written objects
 - odb/source-loose: extract logic to retrieve subdirectory bitmap

 The loose object cache has been updated to track newly written loose
 objects to prevent stale cache entries from causing existence checks
 to fail, which previously caused issues when lazy-fetching missing
 objects during a partial clone.

 Needs review.
 cf. <xmqqfqxg32uy.fsf@gitster.g>
 cf. <CAL71e4ONN4OQUZ2S==0TRWqZgA8ogT0smRL3Rk46voTm+0Tihw@mail.gmail.com>
 cf. <55e14977-dfc2-4acc-bc71-a91915fa251f@gmail.com>
 cf. <20261105194314.GB2898829@coredump.intra.peff.net>
 cf. <au23Hvzp09yrym9s@pks.im>
 cf. <xmqq5wyalzi2.fsf@gitster.g>
 cf. <avHOTt_PEJUKq9Dy@pks.im>
 source: <20261104-pks-odb-loose-stale-cache-v1-0-a00d5cdb5e7d@pks.im>


* cd/shift-root-in-graph-fix (2026-11-03) 1 commit
  (merged to 'next' on 2026-11-08 at 2ed1bc0bca)
 + graph: do not indent visual roots with columns to their right

 The graph drawing logic has been updated to avoid indenting visual
 roots when there are columns to their right, which prevents rendering
 artifacts.

 Will merge to 'master'.
 cf. <DMLZ0DCQXG54.2FD3JQXSJCWPD@gmail.com>
 source: <20261103231153.289762-1-caspar.duregger@gmail.com>


* ds/path-walk-tagged-tree-revisit (2026-11-04) 1 commit
  (merged to 'next' on 2026-11-08 at 2bdad86c09)
 + path-walk: allow revisiting paths from tagged trees

 The 'path-walk' traversal has been corrected to allow revisiting paths
 from tagged trees by removing processed paths from the queue
 suppression set, ensuring objects introduced by tagged trees at
 previously visited paths are no longer skipped.

 Will merge to 'master'.
 cf. <auuvwlhhRpA0T2ml@com-79390>
 source: <pull.2296.git.1793819268371.gitgitgadget@gmail.com>


* jc/branch-doc-consistently-promote-switch (2026-11-03) 1 commit
  (merged to 'next' on 2026-11-08 at 1248b91c65)
 + branch doc: consistently promote 'switch'

 The documentation for 'git branch' has been updated to consistently
 use 'git switch -c' instead of 'git checkout -b' in its examples,
 aligning with the earlier promotion of 'git switch'.

 Will merge to 'master'.
 cf. <6EBBE956-4824-4398-B33D-F4E5F58040D1@gmail.com>
 source: <xmqqwlqt4lwj.fsf@gitster.g>


* je/doc-git-diff-examples (2026-11-11) 1 commit
 - doc: git-diff: rewrite EXAMPLES section

 The 'EXAMPLES' section of the 'git diff' manual page has been
 rewritten to use a more readable cheat-sheet format, incorporating
 commonly used examples while preserving historical ones.

 Will merge to 'next'?
 cf. <xmqq33tfxm2k.fsf@gitster.g>
 cf. <20261109230916.GA1347453@coredump.intra.peff.net>
 source: <pull.2293.v3.git.1794427993457.gitgitgadget@gmail.com>


* oa/negotiator-default-no-the-repository (2026-11-03) 1 commit
 - negotiator/default: stop using the_repository

 The default fetch negotiator has been updated to stop relying on the
 global 'the_repository' variable and instead use the repository
 context passed during its initialization.

 Needs review.
 source: <20261103155038.87456-1-okhuomonajayi54@gmail.com>


* ps/commit-graph-write-refactor (2026-11-04) 10 commits
  (merged to 'next' on 2026-11-08 at bbb65f01a6)
 + commit-graph: modernize function names
 + odb/source-files: verify commit-graphs as part of fsck
 + builtin/commit-graph: set flags directly
 + commit-graph: fix mixup of write/verify flags
 + commit-graph: move remaining write parameters into options
 + commit-graph: merge the two commit graph writers
 + commit-graph: drop redundant flags in write context
 + commit-graph: drop `NULL` checks for write options
 + commit-graph: pass writer flags via options
 + commit-graph: rename `struct commit_graph_opts`
 + Merge branch 'ps/commit-graph-cleanups' into ps/commit-graph-write-refactor

 Various refactoring patches around the commit-graph writing code have
 been applied to modernize interfaces and consolidate parameters into a
 single options structure, in preparation for pluggable commit-graph
 backends.

 Will merge to 'master'.
 cf. <0e74f6c3-2f43-4829-a071-27e96ab5e87b@gmail.com>
 cf. <CAL71e4N4BvO=eMfO0wnJ9=gGbfTRz5ayWFZULoN1dGSF7uCZAA@mail.gmail.com>
 cf. <xmqqa4no1k36.fsf@gitster.g>
 source: <20261104-pks-commit-graph-write-refactorings-v1-0-d013d9401a59@pks.im>


* tc/push-multiple-force-with-lease (2026-11-04) 1 commit
 - push: fix --force-with-lease forwarding in push_multiple()

 The forwarding of the '--force-with-lease' option when pushing to a
 remote group has been fixed to ensure that both bare
 '--force-with-lease' and '--force-with-lease=<ref>:' forms are
 correctly passed to the underlying push commands.

 Needs review.
 source: <20261104184950.403069-1-tyler@tylercipriani.com>


* hn/ccache-sloppiness-for-pch (2026-10-29) 1 commit
 - Makefile: let ccache cache objects built with the precompiled header

 The build procedure using GNU Make has been updated to export the
 'CCACHE_SLOPPINESS' variable with 'pch_defines' and 'time_macros'
 when the precompiled header is in use, which allows 'ccache' to
 actually cache the objects built with it.

 Needs review.
 source: <pull.2464.v2.git.git.1793262816420.gitgitgadget@gmail.com>


* jc/doc-gitignore-wildcard (2026-11-03) 1 commit
 - gitignore: rewrite wildcard description

 The documentation for '.gitignore' has been updated to clarify how
 wildcard characters like the asterisk and question mark behave,
 without relying on external references to the fnmatch(3) or glob(7)
 manuals.

 Needs review.
 source: <xmqqh5hx4jz3.fsf_-_@gitster.g>


* ps/grep-recurse-submodules-fix (2026-11-03) 3 commits
  (merged to 'next' on 2026-11-12 at 4fbba6cd7a)
 + builtin/grep: read ".gitmodules" via passed-in repository
 + builtin/grep: read sparse directory trees via passed-in repository
 + builtin/grep: read submodule trees via their repository

 A regression where 'git grep --recurse-submodules' failed to read
 nested trees in a submodule has been fixed by passing the correct
 repository context pointer instead of relying on the global
 'the_repository' variable. Additional latent bugs where grep_cache()
 and grep_objects() incorrectly referenced the global state have also
 been corrected.

 Will merge to 'master'.
 cf. <87pkwex9bj.fsf@dev.null.iotcl.com.invalid>
 source: <20261103-pks-grep-recurse-submodule-v2-0-b00e3b3dc865@pks.im>


* lt/describe-commit-date-skew (2026-10-30) 1 commit
 - describe: count the distance correctly when commit dates are skewed

 'git describe' has been taught to use commit generation numbers when
 available to accurately calculate commit distance even when commit
 dates are skewed.

 Waiting for response.
 cf. <xmqq5wyg1kus.fsf@gitster.g>
 cf. <augrFe35Zci2mG+j@szeder.dev>
 cf. <auiGP4XhObUzC9vD@pks.im>
 cf. <aumKXUS7_x0i7ZU1@pks.im>
 cf. <CAHk-=wh6X3V49_RmYadHe-9+vEML1jDp2coy2YGBzrDqyDF1rg@mail.gmail.com>
 cf. <xmqq5wyd4epv.fsf@gitster.g>
 cf. <CAL71e4PqEQkGoont3tL5wJWd1_itsaaxfX+DOkLj64x-S7xR1A@mail.gmail.com>
 cf. <CAL71e4Pp=rZSKd+vC9anjEVHS=a6DOoK-HC_Z+3vDaqjo0+6+Q@mail.gmail.com>
 cf. <xmqqy0b7w5kg.fsf@gitster.g>
 source: <20261031065525.19883-2-torvalds@kernel.org>


* sp/submodule-abbrev-fix (2026-11-04) 1 commit
  (merged to 'next' on 2026-11-08 at 73c6a1638b)
 + submodule: use the submodule repository to abbreviate commits

 The abbreviation of commit IDs in submodule diff headers has been
 corrected to use the submodule's object database instead of the
 superproject's, avoiding potential ambiguity.

 Will merge to 'master'.
 cf. <xmqqecczxq2y.fsf@gitster.g>
 source: <pull.2288.v6.git.1793821554097.gitgitgadget@gmail.com>


* ta/cg-require-perl-5.26.0 (2026-11-05) 1 commit
  (merged to 'next' on 2026-11-08 at 11baaac028)
 + CodingGuidelines: update the required Perl version

 CodingGuidelines has been updated to state that Perl 5.26.0 is
 required these days, which is the case since late 2024.

 Will merge to 'master'.
 cf. <xmqqcxsjungr.fsf@gitster.g>
 source: <20261105183900.28597-1-taahol@utu.fi>


* sa/submodule-root-relative-url (2026-10-26) 2 commits
 - SQUASH??? test number conflict resolution
 - submodule: make '^/' work like '../' but with an absolute path

 A new ^/ URL syntax has been introduced for submodules to specify
 paths relative to the superproject's remote's server root, allowing
 submodules to remain reachable when the superproject is forked into
 a subgroup or different hierarchy depth.

 Waiting for response.
 cf. <CA+P7+xo8J_+3QECoGHnN1AxXPpjaKaHp3VoN9EEcyhZ+Q1fzew@mail.gmail.com>
 cf. <xmqq1p9550ic.fsf@gitster.g>
 source: <20260929185122.3127574-1-lightofmysoul@gmail.com>


* ps/rerere-subcommands (2026-11-11) 12 commits
 - builtin/rerere: introduce proper usage strings for subcommands
 - builtin/rerere: use `OPT_SUBCOMMAND()`
 - builtin/rerere: turn "gc" into a proper subcommand
 - builtin/rerere: turn "diff" into a proper subcommand
 - builtin/rerere: turn "remaining" into a proper subcommand
 - builtin/rerere: turn "status" into a proper subcommand
 - builtin/rerere: turn "clear" into a proper subcommand
 - builtin/rerere: turn "forget" into a proper subcommand
 - builtin/rerere: stop passing flags to subcommands that ignore them
 - builtin/rerere: drop `the_repository`
 - rerere: convert flags into an enum
 - rerere: rename `repo_rerere()`
 - Merge branch 'ps/rerere-remove-global-state' into ps/rerere-subcommands

 The subcommand parsing of 'git rerere' has been converted to use
 the standard 'OPT_SUBCOMMAND()' API, removing custom ad-hoc parsing
 logic and bringing it in line with other Git commands.

 Needs review.
 cf. <CAOLa=ZTAYtq0K4YfcSBocf-fxadTiaJp+AV5-_6_pbNMBwYQXA@mail.gmail.com>
 source: <20261111-pks-rerere-subcommands-v4-0-df0c8bf79e16@pks.im>


* sm/test-chmtime-parse-options (2026-11-02) 1 commit
 - test-chmtime: use parse_options() to parse command-line flags

 The 'test-chmtime' test helper has been updated to use the standard
 'parse_options()' API for command-line argument parsing,
 simplifying the code and standardizing option handling.

 Needs review.
 source: <pull.2280.v3.git.1793639275978.gitgitgadget@gmail.com>


* jk/unit-tests-via-test-lib (2026-10-27) 8 commits
 - test-lib: drop the shell JUnit XML reporting code
 - test-tool: drop the run-command testsuite mode
 - t: drop redundant unit-test invocations
 - t: run clar unit tests through test-lib.sh
 - test-lib: allow an external program to supply TAP output
 - test-lib: stop inventing a JUnit testcase for empty suites
 - test-lib: drop unused test_external_has_tap variable
 - unit-tests: report the correct unexpected argument

 The unit-test execution has been refactored to run inside a regular
 'test-lib.sh' shell script, which allows unit tests to benefit from
 standard test setup like sanitizer options and logging.  The test
 suite's interaction with external TAP generators and JUnit XML
 reporting has also been cleaned up and simplified.

 Needs review.
 source: <20261027173205.GA97799@coredump.intra.peff.net>


* hn/reflog-operations (2026-11-07) 2 commits
 - pretty: add %gb to name the branch of each reflog entry
 - reflog: name the strings that mark switches, renames and rebase steps

 The 'git reflog' and 'git log -g' commands have learned the '%gb'
 format placeholder, which decorates each reflog entry with the name of
 the branch HEAD was on when the entry was recorded, parsing the
 historical branch name even during a rebase.

 Needs review.
 source: <pull.2448.v5.git.git.1794052536.gitgitgadget@gmail.com>


* iy/sigchain-recover-concurrent-pops (2026-10-16) 1 commit
 - sigchain: recover from concurrent double-pops of the same signal

 The signal handler chaining mechanism has been updated to recover
 from concurrent deliveries of the same signal to multiple threads,
 which previously could corrupt the handler stack and cause the
 process to enter an infinite loop.

 Waiting for response.
 cf. <0806471f-957a-4f32-ac33-c00c25a46033@gmail.com>
 cf. <d18d98c9-08a7-48e1-8a6b-a43aed05dec8@gmail.com>
 source: <pull.2263.git.1792154272296.gitgitgadget@gmail.com>


* ms/reftable-alloc-size-truncation (2026-10-21) 2 commits
 - reftable/basics: widen allocation size arguments to uintmax_t
 - Makefile: build the reftable record unit tests

 The allocation size validation and memory allocation functions in the
 reftable backend have been updated to use 'uintmax_t' for their size
 and element count arguments. This prevents wide values from being
 truncated to 'size_t' on 32-bit platforms before the allocation size
 overflow check is performed.

 Needs review.
 source: <pull.2255.v2.git.1792616615.gitgitgadget@gmail.com>


* sp/t2030-modernize-test-path-checks (2026-10-17) 1 commit
  (merged to 'next' on 2026-11-12 at fce08716a9)
 + t2030: modernize test path checks

 A test script has been modernized to use 'test_path_is_file' and
 'test_path_is_missing' helpers.

 Will merge to 'master'.
 cf. <xmqq33tdbcnq.fsf@gitster.g>
 source: <pull.2256.v3.git.1792299943380.gitgitgadget@gmail.com>


* ak/root-refs-vs-pseudorefs (2026-11-12) 5 commits
 - t: stop calling root refs pseudorefs
 - refs: stop calling root refs pseudorefs
 - doc: stop calling root refs pseudorefs
 - doc: glossary: update per-worktree refs
 - doc: glossary: add root ref and clarify pseudorefs

 The terminology in the documentation and tests has been updated to
 consistently distinguish between root refs (like 'HEAD' and
 'ORIG_HEAD' that are stored in the ref backends) and pseudorefs
 (like 'FETCH_HEAD' and 'MERGE_HEAD' that are not).

 Needs review.
 cf. <xmqqzevlehgx.fsf@gitster.g>
 source: <cover.1794520948.git.andy.koppe@gmail.com>


* jt/tmp-objdir-loose-idx-merge (2026-10-29) 4 commits
  (merged to 'next' on 2026-11-06 at 2af75d5b30)
 + tmp-objdir: merge loose object index when migrating tmpdir
 + loose: lift loose object index writing logic into helper
 + loose: lift loose object index parsing logic into helper
 + loose: use finite timeout when locking "loose-object-idx" file

 The temporary object directory migration logic, used for batch
 fsyncing, has been updated to correctly merge the loose object index
 file ('loose-object-idx') when migrating to the primary object
 directory, fixing a migration failure when a compatibility hash is
 enabled.

 Will merge to 'master'.
 cf. <auQ3FTXbn1awcP70@pks.im>
 cf. <CAOLa=ZRBdgNZ2D9B2ZFhMAOJc11ENZCcw2a7NhKtkv07t4VE-Q@mail.gmail.com>
 source: <20261029232220.1245827-1-jltobler@gmail.com>


* ag/reflog-count-plural (2026-10-24) 1 commit
 - object-name: use Q_() for the reflog entry count

 The error message given when a reflog entry is requested that is out
 of bounds has been updated to use the pluralized translation function,
 Q_().

 Waiting for response.
 cf. <xmqqa4o2z9ra.fsf@gitster.g>
 source: <20261024152931.440-1-aniketgupta3001@gmail.com>


* oa/checkout-wo-the-repository (2026-11-04) 2 commits
 - checkout: pass the repository to unique_tracking_name()
 - remote: add repo_for_each_remote()

 The unique_tracking_name() function in checkout.c was the only
 function that still assumed it works on 'the_repository'; the function
 and its dependencies have been updated to take an instance of 'struct
 repository' to work on an arbitrary repository.

 Needs review.
 source: <20261104090534.21838-1-okhuomonajayi54@gmail.com>


* tj/drop-no-parseopt (2026-11-05) 3 commits
  (merged to 'next' on 2026-11-08 at ac555242d0)
 + t0012: catch builtins that keep NO_PARSEOPT after conversion
 + git.c: drop NO_PARSEOPT from builtins that use parse-options
 + parse-options: answer --git-completion-helper before command runs
 (this branch is used by kn/fast-import-tests.)

 The 'NO_PARSEOPT' macro has been removed from a few commands that have
 migrated to use the parse_options() API, so that they will be included
 in the output of 'git --list-cmds=parseopt' for shell completion, and
 'git fast-import' has been updated to handle shell completion requests
 without blocking on standard input.

 Will merge to 'master'.
 cf. <xmqqfqxeoaz8.fsf@gitster.g>
 source: <20261105223458.1534785-1-tangajoris@gmail.com>


* sp/diff-delta-safe-arithmetic (2026-10-27) 1 commit
 - diff-delta: use safe integer arithmetic

 The integer arithmetic used to compute the memory allocation size for
 the delta index has been updated to use safe helpers. While current
 limits prevent wrap-around on 32-bit platforms, this provides
 defensive hardening.

 Needs review.
 source: <pull.2276.v9.git.1793120160248.gitgitgadget@gmail.com>


* ch/remote-defer-follow-remote-head-validation (2026-10-24) 2 commits
 - SQUASH??? factor out parsing of follow-remote-head-raw into a helper
 - remote.c: defer remote.<name>.followRemoteHEAD validation

 The configuration validation for 'remote.<name>.followRemoteHEAD' has
 been deferred from parse time to execution time, preventing commands
 that do not use the setting (like 'git push' or 'git remote -v') from
 emitting spurious warnings about unrecognized values.

 Expecting a reroll.
 cf. <xmqq33tw3wol.fsf@gitster.g>
 cf. <DMCYNNPMFVMA.S74D9Y3OQ9QE@lfurio.us>
 cf. <xmqqecdezfr1.fsf@gitster.g>
 cf. <CAHeTm9NOqLA=BfTU9ABDFt8+jOzaRDPRrMNP8thzAQN2NVZAew@mail.gmail.com>
 cf. <xmqqmrrxdhox.fsf@gitster.g>
 cf. <DMHZCS9LOW3N.ZJ3947HUCXZ8@lfurio.us>
 cf. <xmqq33tnz0hb.fsf@gitster.g>
 cf. <DMJFKJCI5DLL.12R7AMFO4DK2Y@lfurio.us>
 cf. <xmqqjymqobc3.fsf@gitster.g>
 cf. <DMO0XC1PL4MP.1J5830XZ4GCS5@lfurio.us>
 cf. <xmqq1p8ylywh.fsf@gitster.g>
 source: <20261023185007.21642-1-colinlewishinton@gmail.com>


* tc/test-greplint-in-chainlint (2026-10-24) 4 commits
 - t/chainlint: add --greplint to run greplint
 - t/greplint: move parsing and token check to library
 - t/greplint: skip test bodies without the word grep
 - t/interop: replace bare grep with test_grep

 The 'test-lint' target in the test suite has been optimized. The
 parsing effort of test scripts is now amortized by having the
 'chainlint' script perform 'greplint' checks during its tokenization
 phase, significantly speeding up the linting process.

 Needs review.
 source: <20261025063508.3026136-1-tyler@tylercipriani.com>


* os/rebase-doc-incompatible-options (2026-11-01) 1 commit
 - doc: git-rebase: update incompatible options

 Outdated cross-references to the 'INCOMPATIBLE OPTIONS' section in the
 'git rebase' documentation have been removed, and a missing one for
 the '--onto' option has been added.

 Will merge to 'next'?
 cf. <xmqqa4ngsgk9.fsf@gitster.g>
 source: <20261101082230.141688-1-omri.sarig13@gmail.com>


* jc/config-honor-file-permission (2026-10-26) 1 commit
  (merged to 'next' on 2026-11-08 at ea67756e9c)
 + config: honor file permission bits

 The configuration file writing machinery has been updated to inspect
 the permission bits of the original configuration file and refrain
 from overwriting a read-only file using its lockfile renaming
 mechanism.

 Will merge to 'master'.
 cf. <aum4pZp5P0ZRC-cf@pks.im>
 source: <xmqqa4o0v76o.fsf@gitster.g>


* tb/negotiator-skipping-parse-parents (2026-10-26) 2 commits
 - negotiator/skipping.c: parse parents before queueing
 - negotiator/default.c: mark commits seen only after parsing

 The default and skipping fetch negotiators have been updated to parse
 parent commits before adding them to the priority queue.  This ensures
 they are sorted by actual commit date rather than being delayed as old
 commits, and leaves unparsable commits out of the priority queue
 without incorrectly marking them as seen.

 Needs review.
 source: <cover.1793058562.git.ttaylorr@openai.com>


* ag/fsck-connectivity-count (2026-10-20) 1 commit
 - fsck: report the real object count in the connectivity message
 - Merge branch 'ag/fsck-connectivity-msg-i18n' into ag/fsck-connectivity-count

 The verbose "Checking connectivity" message in 'git fsck' has been
 updated to report the actual number of objects instead of the size
 of the object hash bucket array.

 Needs review.
 cf. <20261112025559.83265-1-laveeshb@laveeshbansal.com>
 source: <20261020102134.42151-1-aniketgupta3001@gmail.com>


* hn/fetch-shallow-v2-fix (2026-10-20) 1 commit
 - upload-pack: fix slow fetches from a shallow repository

 The server-side computation of shallow boundaries for a protocol v2
 fetch from a shallow repository has been optimized by directly
 sending all known shallow roots, avoiding expensive commit history
 walks and matching protocol v0 behavior.  Additionally, local commit
 history traversal for 'git fetch --unshallow' has been corrected to
 visit each commit exactly once, preventing hangs on repositories
 with long histories.

 Needs review.
 source: <pull.2455.v2.git.git.1792503631364.gitgitgadget@gmail.com>


* rk/mktree-batch-tests (2026-11-10) 1 commit
 - t1010: add basic tests for mktree --batch

 Basic tests for the batch mode of 'git mktree' have been added.

 Needs review.
 source: <pull.2270.v2.git.1794348807240.gitgitgadget@gmail.com>


* cc/pack-index-v3 (2026-10-23) 13 commits
 - doc: move pack index v3 documentation
 - packfile: allow looking up compat object IDs in packs
 - loose: map object IDs using pack index v3
 - packfile: validate pack index v3 tables
 - packfile: add support for reading pack index v3
 - object-file: handle compatibility algorithm
 - builtin: populate pack index v3 fields when indexing
 - pack-write: add support for pack index v3
 - object-file-convert: implement mapping in terms of object DB
 - odb: implement interoperability functions
 - loose: add a flag to control whether we write mapped OIDs
 - loose: rename repo_add_loose_object_map
 - loose: allow looking up in object map with source

 The third part of the SHA-1/SHA-256 interoperability work has been
 added, implementing support for reading and writing pack index v3.
 This allows packed objects to be mapped between hash algorithms by
 storing object IDs in both the main and compatibility hash
 algorithms.

 Needs review.
 source: <20261023072559.3204273-1-christian.couder@gmail.com>


* ep/status-missing-upstream (2026-10-21) 1 commit
 - status: reword message for a missing upstream branch

 The message given by 'git status' and 'git checkout' when the
 upstream branch does not exist has been reworded to explicitly say
 so, and to suggest running 'git push' if pushing would create it,
 instead of claiming that the upstream is gone.

 Needs review.
 cf. <xmqqzew91i5g.fsf@gitster.g>
 source: <20261021072137.258934-1-gitter.spiros@gmail.com>


* hn/imap-send-header-fix (2026-11-01) 4 commits
 - imap-send: match header names case insensitively
 - imap-send: check git send-email copies like other messages
 - imap-send: accept messages with Subject before Date
 - imap-send: wait for the tunnel command to finish

 The 'git imap-send' command has been updated to accept message
 headers in any order and to match header names case-insensitively,
 allowing it to properly process messages saved by 'git send-email'.
 A memory leak in the IMAP tunnel initialization has also been
 plugged.

 Will merge to 'next'?
 cf. <auCEKSc60ZnLKjBE@pks.im>
 source: <pull.2456.v5.git.git.1793521297.gitgitgadget@gmail.com>


* hn/status-compare-branches-default (2026-10-25) 1 commit
 - status: compare against both upstream and push branch by default

 The default behavior of 'git status' has been updated to compare
 the current branch against both its upstream and push tracking
 counterparts.  This makes it easier for users with triangular
 workflows to see all relevant comparisons without needing to
 configure 'status.compareBranches'.

 Needs review.
 cf. <CALnO6CBD2aGg_wDZZsT-mWJ99MXYUycx32JfsK8zJXfcmjTBDw@mail.gmail.com>
 source: <pull.2458.v3.git.git.1792925493844.gitgitgadget@gmail.com>


* jg/t3429-test-path-is-file (2026-10-21) 1 commit
 - t3429: use test_path_is_file helper

 A test script has been modernized to use 'test_path_is_file'
 instead of 'test -e' to verify the existence of a file.

 Waiting for response.
 cf. <CAPSxiM9SuRiRA6Xixp_zx=fFf_a6S8Mp327FP82Pg7mJdzQ3Kw@mail.gmail.com>
 source: <pull.2274.git.1792582249420.gitgitgadget@gmail.com>


* hn/branch-delete-merged-squash (2026-11-01) 4 commits
 - branch: let --delete-integrated find branches merged onto changed files
 - branch: add --delete-integrated to delete rebase and squash merged branches
 - branch: let delete_branches() name where a branch landed
 - branch: move the deleteMerged opt-out check into a helper

 A new '--delete-integrated' option has been added to 'git branch' to
 find and remove branches whose work has been squash-merged or
 rebase-merged into the upstream, by comparing the blobs of changed
 files.

 Waiting for response.
 cf. <20261111152753.99845-1-me@jaspermayone.com>
 source: <pull.2425.v6.git.git.1793521331.gitgitgadget@gmail.com>


* oa/merge-blobs-stop-using-the-repository (2026-10-17) 1 commit
  (merged to 'next' on 2026-11-12 at 9db30c28f4)
 + merge-blobs: stop using the_repository

 The merge-blobs subsystem has been updated to remove its reliance on
 the global the_repository variable by threading the repository
 context available from the index_state down to its helper functions.

 Will merge to 'master'.
 cf. <CAPSxiM-OyrVEzYgja0nwa8PikfU1WpsCYbiNiXpcxb4TM4=mOA@mail.gmail.com>
 cf. <xmqqy0b59xvs.fsf@gitster.g>
 source: <20261017105244.90295-1-okhuomonajayi54@gmail.com>


* ss/t2403-modernize-test-d (2026-10-15) 1 commit
  (merged to 'next' on 2026-11-10 at 77570a6a1d)
 + t2403: modernize test for directory existence

 The test for worktree removal in 't/t2403-worktree-move.sh' has been
 modernized to use the 'test_path_is_dir' helper instead of the raw
 'test -d' shell command.

 Will merge to 'master'.
 cf. <CAPSxiM_gCkW3gvgF-ebK64bUS5za9CQgTFLAn-PnHS12o4afbA@mail.gmail.com>
 source: <pull.2259.git.1792125111461.gitgitgadget@gmail.com>


* tb/sideband-skip-unrecognized-allow-control-characters (2026-10-16) 1 commit
  (merged to 'next' on 2026-11-12 at b811d5c253)
 + sideband: skip unrecognized allowControlCharacters keywords

 The configuration parser for 'sideband.allowControlCharacters' has
 been updated to correctly advance past unrecognized values,
 preventing an infinite loop when an unknown control character
 keyword is encountered.

 Will merge to 'master'.
 cf. <xmqq8q3xh98n.fsf@gitster.g>
 cf. <xmqqbj81bcwb.fsf@gitster.g>
 source: <pull.2261.git.1792154374653.gitgitgadget@gmail.com>


* ak/pretty-wrap-fix (2026-10-17) 1 commit
 - pretty: fix lost indent after newline in %w()

 The string-wrapping logic used by the '%w()' formatting directive
 has been corrected to stop skipping a whitespace character that
 immediately follows a hard line break.

 Needs review.
 source: <20261017081150.2295695-1-andy.koppe@gmail.com>


* dt/t0410-missing-tree-test (2026-10-20) 2 commits
 - t0410: keep git's exit code in test_grep calls
 - t0410: use rev-parse to get the subtree OID

 The missing-tree test in 't0410' has been cleaned up to avoid
 dropped exit codes and hardcoded assumptions about the length of
 object names.

 Needs review.
 source: <20261020160127.29096-1-dorine.a.tipo@gmail.com>


* yn/worktree-repair-fix (2026-10-17) 5 commits
 - worktree repair: avoid breaking unrelated .git file and gitdir
 - worktree repair: reduce .git file reads
 - worktree repair: use read_gitfile_raw() in infer_backlink()
 - worktree repair: centralize inferred backlink selection
 - worktree repair: align .git file handling with repair_gitfile()

 The 'git worktree repair' command learned to thoroughly validate the
 worktree ID and the inferred gitdir pathway, preventing it from
 corrupting unrelated '.git' files and gitdirs when repositories and
 their linked worktrees are moved or swapped.

 Needs review.
 source: <pull.2225.v3.git.1792241702.gitgitgadget@gmail.com>


* oa/merge-without-the-repository (2026-10-15) 1 commit
  (merged to 'next' on 2026-11-12 at d15514fd58)
 + merge: stop using the_repository

 The 'merge.c' code has been updated to eliminate its reliance on the
 global 'the_repository' and 'the_hash_algo' variables by passing down
 the repository context already available to its entry points.

 Will merge to 'master'.
 cf. <CAPSxiM_2Dd86rBKPj7jaT8Wmazo3PFZajJaaL2bVhB1GFsfnbg@mail.gmail.com>
 cf. <xmqq33tdcuub.fsf@gitster.g>
 source: <20261015142532.48175-1-okhuomonajayi54@gmail.com>


* vs/refs-seek-fix (2026-10-15) 1 commit
 - refs: fix loose-ref seeking across directory boundaries

 The logic to seek through loose references across directory
 boundaries has been corrected by including the trailing slash when
 comparing directory components, and by properly adjusting the
 iterator position when leaf entries sort either strictly before or
 after the seek point.

 Waiting for response.
 cf. <CAFuK-oarU1rZOcDzYr=YA1SNvfAzyB6LaXXCjtZV6WWGswOnyw@mail.gmail.com>
 cf. <auG4977CYFRTJVRQ@pks.im>
 source: <pull.2258.git.1792067455341.gitgitgadget@gmail.com>


* ab/describe-no-i18n-of-debug-messages (2026-10-16) 1 commit
 - describe: do not translate --debug output

 The debug output of 'git describe' has been updated not to
 localize the output to make it more helpful for developers.

 Waiting for response.
 cf. <xmqqjymp9r4s.fsf@gitster.g>
 source: <20261016185418.162998-1-antekborowski11@gmail.com>


* je/doc-detached-head (2026-11-12) 2 commits
 - SQUASH???
 - doc: checkout: rewrite detached HEAD state explanation

 The description of the detached HEAD state in 'git help checkout'  has
 been updated and moved to a standalone guide to make it easier  for
 users to understand and reference.

 Expecting a reroll.
 cf. <03a0b42a-08f8-4b9e-9dd9-9caf3fc5f7e6@jvns.ca>
 source: <pull.2250.v5.git.1794432869488.gitgitgadget@gmail.com>


* js/doc-test-fix-anti-pattern (2026-10-11) 1 commit
  (merged to 'next' on 2026-11-08 at 9ff0977a2f)
 + SubmittingPatches: avoid add-failing-test-then-fix anti-pattern

 The 'SubmittingPatches' document has been updated to discourage the
 anti-pattern of adding a failing test in one commit and fixing it in
 a subsequent one, advising contributors to combine the test and fix
 into a single commit for easier review

 Will merge to 'master'.
 cf. <xmqq4ierasxy.fsf@gitster.g>
 source: <20261012030029.12200-1-jon@jonsimons.org>


* js/push-refspec-match-speedup (2026-10-13) 12 commits
  (merged to 'next' on 2026-11-12 at 8df4d0fa4a)
 + remote: use strmap for apply_push_cas()
 + remote: restructure apply_push_cas() loops
 + t/perf: measure --force-with-lease in p5516
 + remote: use strmap for match_explicit_refs()
 + remote: reject duplicate destinations on an empty remote
 + t5408: check refspec order with distinct destinations
 + t5408, t5410: test duplicate updates without relying on the client
 + send-pack: plug leak upon match_push_refs failure
 + remote: use strmap for check_push_refs()
 + refs: stop using mkpath() in refname_match()
 + t/perf: add explicit delete refspec matching test
 + remote: validate --force-with-lease <refname> argument

 The client-side refspec matching during 'git push' has been
 optimized by replacing linear traversals with string map lookups,
 speeding up pushes with lots of delete refspecs against a server
 with many advertised refs.

 Will merge to 'master'.
 cf. <auJm92xzDos9MF+8@szeder.dev>
 cf. <xmqq1p8yrk2u.fsf@gitster.g>
 cf. <xmqqcxsiq3tg.fsf@gitster.g>
 cf. <xmqqik2aq4fx.fsf@gitster.g>
 cf. <xmqqmrrmq4u3.fsf@gitster.g>
 cf. <xmqqqzgyq58d.fsf@gitster.g>
 source: <20261014031347.50433-1-jon@jonsimons.org>


* bb/imap-send-openssl-set-verify (2026-10-17) 3 commits
 - imap-send: prepare for OpenSSL 4.0
 - imap-send: let OpenSSL do the hostname verification
 - imap-send: use the recommended TLS_method()

 imap-send used to use hand coded peer hostname verification,
 which has been replaced with the native API OpenSSL offered since
 version 1.1.0.

 Waiting for response.
 cf. <CABtdbsnrQ61eJv4GhawiFSHkN01tJhV5tYj8MNQT8F3zf3PgYw@mail.gmail.com>
 cf. <atW7CLcWmKRk4sMv@pks.im>
 cf. <atW7DJZwHYK_hABy@pks.im>
 cf. <atW7EcdjIEodXMD3@pks.im>
 source: <20261017100956.529225-1-dev+git@drbeat.li>


* cs/read-cache-conversion-size (2026-10-13) 1 commit
 - read-cache: do not trust a size change when conversion is active

 The index refresh logic has been updated to no longer trust a file
 size change as conclusive proof of modification when the path is
 subject to conversion, preventing false dirty statuses for files
 with only line-ending changes.

 Waiting for response.
 cf. <xmqq1p9twdhh.fsf@gitster.g>
 cf. <20261020205644.GB6367@tb-raspi4>
 cf. <20261026192514.15844-1-tboegi@web.de>
 source: <20261013180206.610-1-curtis.allen.smith@gmail.com>


* jw/wait-for-index-lock (2026-10-17) 4 commits
 - reset: fix write race
 - commit: fix write race
 - repository: add core.indexLockTimeout
 - repository: add repo_try_hold_locked_index()

 A new configuration variable 'core.indexLockTimeout' has been
 introduced to allow commands to retry when the index file is locked
 by another process, and 'git commit' has been updated to take
 advantage of this feature.

 Needs review.
 source: <20261017073231.3357477-1-quark.zju@gmail.com>


* mf/complete-log-graph-indent (2026-11-02) 1 commit
  (merged to 'next' on 2026-11-12 at a2e7c350d0)
 + completions: add some missing options for git log

 The command line completion script (in contrib/) has been taught to
 complete the '--[no-]graph-indent' and '--graph-lane-limit' options of
 'git log'.

 Will merge to 'master'.
 cf. <87wlqmxb9p.fsf@dev.null.iotcl.com.invalid>
 cf. <xmqqld71ycvi.fsf@gitster.g>
 source: <5735bacbd5c2c48eddafb43f75f7ddcdf402ff17.1793656021.git.mroik@delayed.space>


* qs/repack-kept-pack-fix (2026-10-26) 3 commits
 - repack: tell pack-objects which packs it may delete
 - pack-objects: add --ignore-pack-keep-from
 - pack-objects: reset kept-pack cache for cruft walk

 The behavior of 'git repack' and 'git pack-objects' has been updated
 to avoid losing objects to a '.keep' file that appears mid-run. 'git
 repack' now tells 'git pack-objects' which packs may be deleted via a
 new '--ignore-pack-keep-from' option, allowing it to ignore their
 '.keep' files.

 Needs review.
 source: <pull.2219.v4.git.1793005620.gitgitgadget@gmail.com>


* hn/status-push-rebased-on-newer-upstream (2026-10-06) 6 commits
 - push: suggest a force push after a clean rebase
 - push: offer a force push after rewriting pushed commits
 - push: name the branch to pull from when it is not the upstream
 - status: suggest a force push after a clean rebase
 - status: say when the push branch was rebased cleanly
 - status: count push divergence outside the upstream

 The 'git status' output and 'git push' rejection advice have been
 improved to recognize when a pushed branch was cleanly rebased onto
 a newer upstream, and now correctly suggest force-pushing instead of
 pulling.

 Needs review.
 source: <pull.2437.git.git.1791270504.gitgitgadget@gmail.com>


* pw/stash-change-check-only-once (2026-10-23) 7 commits
  (merged to 'next' on 2026-11-06 at f14c7472db)
 + stash: simplify reset_tree() function signature
 + stash create: remove unnecessary index load and refresh
 + stash create: rework temporary index creation
 + stash push: avoid duplicate calls to preload_index()
 + stash push: remove duplicate changes detection
 + stash create: remove duplicate changes detection
 + stash: use an enum for create status

 The index loading and refreshing logic in 'git stash create' and 'git
 stash push' has been optimized by eliminating redundant change
 detection checks and preload_index() calls, saving several lstat()
 calls per changed path.

 Will merge to 'master'.
 cf. <xmqqse1fq72m.fsf@gitster.g>
 cf. <xmqqmrrnq6xh.fsf@gitster.g>
 cf. <xmqqse1eoh3k.fsf@gitster.g>
 cf. <xmqqo6c2oh3j.fsf@gitster.g>
 source: <cover.1792767794.git.phillip.wood@dunelm.org.uk>


* tb/repack-cruft-less-midx-corner-cases (2026-09-30) 8 commits
  (merged to 'next' on 2026-11-08 at 47008bae94)
 + repack: include required packs in incremental MIDX writes
 + repack: defer allocating the append plan's write step
 + repack: track the preferred pack explicitly in MIDX write steps
 + repack: follow kept packs when omitting cruft from the MIDX
 + repack: use a sorted list for explicitly kept packs
 + repack: retain cruft packs in MIDXs after incremental repacks
 + pack-objects: ensure tree/tag closure with '--stdin-packs=follow'
 + pack-objects: introduce `stdin_packs_context` struct

 Various corner cases in the cruft-less MIDX feature have been fixed
 to ensure reachability closure when writing reachability bitmaps,
 such as properly retaining cruft packs after incremental repacks or
 when containing kept packs.

 Will merge to 'master'.
 cf. <20261003010613.GA839051@coredump.intra.peff.net>
 cf. <20261003010720.GB839051@coredump.intra.peff.net>
 cf. <xmqqqzh0z00d.fsf@gitster.g>
 source: <cover.1790827875.git.me@ttaylorr.com>


* hn/fetch-refmap (2026-10-30) 6 commits
 - remote: resolve @{push} through remote.<name>.fetchRefmap
 - remote: default to --limited-fetch in a shallow repository
 - remote: add "git remote add --limited-fetch"
 - fetch: infer branches to fetch from a refmap-only remote
 - fetch: extract collect_upstream_from_remote() helper
 - fetch: add remote.<name>.fetchRefmap

 In a shallow repository, adding a new remote and fetching from it used
 to eagerly fetch all remote branches. The default refspec configured
 for remotes added in shallow repositories has been changed to rely on
 'remote.<name>.fetchRefmap' rather than 'remote.<name>.fetch', pulling
 only those remote branches tracked by local branches.

 Waiting for response.
 cf. <b64387b3-294e-49da-b40a-0e757956bafd@gmail.com>
 source: <pull.2412.v13.git.git.1793357550.gitgitgadget@gmail.com>


* td/ls-files-untracked-cache (2026-10-23) 3 commits
 - ls-files: use and update the untracked cache
 - dir: share untracked caches across output modes
 - dir: hash ignore files before appending newline

 The git ls-files command has been optimized to reuse and populate
 the untracked cache for the working tree, and untracked cache
 implementations have been updated to share identical caches across
 -unormal and -uall outputs, avoiding redundant filesystem
 traversals.

 Needs review.
 source: <20261023-ls-files-untracked-cache-v3-0-292260e95f53@gmail.com>


* tc/push-force-if-includes-fixes (2026-10-18) 3 commits
 - push: --force-if-includes should allow fast-forward
 - push: fix --force-if-includes non-branch advice
 - push: check pushed ref for --force-if-includes

 The '--force-if-includes' protection for 'git push' has been
 updated to consult the reflog of the local branch being pushed,
 rather than incorrectly checking the reflog of a local branch that
 shares the name of the remote destination branch.  The push advice
 for detached HEAD scenarios has also been adjusted to indicate that
 the remote ref cannot be verified locally.  A bug that caused
 perfectly valid fast-forward pushes to be rejected when reflogs
 were expired has been fixed.

 Needs review.
 source: <20261018203255.2343005-1-tyler@tylercipriani.com>


* cc/early-scan-options (2026-11-02) 4 commits
  (merged to 'next' on 2026-11-06 at fff9cac6d4)
 + fast-import: use early_scan_options() for --allow-unsafe-features
 + parse-options: add early_scan_options()
 + parse-options: extract lookup_long_opt() from parse_long_opt()
 + parse-options: add parse_options_takes_argument()
 (this branch is used by kn/fast-import-tests.)

 The process of parsing command-line options in commands that perform
 an early scan over their arguments has been unified using a new
 early-scan sub-API. The 'git fast-import' command has been converted
 to use this API, safely parsing and skipping known options taking
 separate values to prevent logic bugs.

 Will merge to 'master'.
 cf. <faf0b5e6-1c63-4c68-9f23-42a452879854@gmail.com>
 cf. <xmqqv76dal2l.fsf@gitster.g>
 source: <20261102151447.734680-6-christian.couder@gmail.com>


* ll/doc-pushcert-if-asked (2026-08-29) 1 commit
  (merged to 'next' on 2026-11-08 at c7cc8a1a0b)
 + doc: remote-helpers: option pushcert if-asked

 The remote helper documentation for the 'pushcert' option has been
 updated to mention that it can also take 'if-asked', reflecting the
 existing implementation in the code.

 Will merge to 'master'.
 cf. <xmqqfqxjmwte.fsf@gitster.g>
 source: <20260829183659.29947-1-lorenz.leutgeb@posteo.eu>


* dw/config-read-both-global (2026-10-09) 2 commits
 - config: read global scope via config_sequence
 - t1300: test list with missing global config

 The 'git config --global' read operations have been updated to
 respect both '$HOME/.gitconfig' and '$XDG_CONFIG_HOME/git/config',
 fixing an inconsistency where only the former was read when both
 configuration files are present.

 Waiting for response.
 cf. <xmqqeccym7k6.fsf@gitster.g>
 cf. <xmqqa4nmm6mu.fsf@gitster.g>
 source: <20261009-fix-config-list-global-home-and-xdg-v3-0-f936b9c8a0cc@microsoft.com>


* bc/restrict-hex-to-lowercase (2026-09-07) 7 commits
 - hex: allow only lowercase object IDs in breaking changes mode
 - t5324: adjust tests for corrupt commit-graph
 - object-name: use hexval
 - hex: label usages of hex parsing for object IDs
 - hex: make hex_to_bytes accept kind of hex to use
 - hex: allow specifying hex type with hex2chr
 - hex: add functionality for lowercase-only hex

 The parser for hex object names has been updated to reject uppercase
 hexadecimal characters when running in the breaking changes mode, in
 preparation for Git 3.0.

 Needs review.
 source: <20260907195941.1024289-1-sandals@crustytoothpaste.net>

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

Some of these topics were picked up prematurely but did not prove
ready for inclusion, and will be removed.  Others received review
comments but then left unattended for a long time without making
much progress.  They can be resubmit if they gained enough interest
and showed good fit to the system in the future, unless noted
otherwise.

* 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.

 Waiting for response for too long, stalled.
 cf. <20261104062423.GA1763458@coredump.intra.peff.net>
 cf. <autQ3CB9bD9IIpXp@kunlun.suse.cz>
 source: <20260819-http-preserve-wwwauth-redirect-v2-1-4c61039432b0@nvidia.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.

 Waiting for response for too long, stalled.
 cf. <CALnO6CAxSHWzvB+jvWw8rFXtWuj9Upv+i3g5EA_b2PkvZ=LV+A@mail.gmail.com>
 cf. <CALnO6CDqtVuUqm0xW7Cd=MVbDSaa0Q+T6D9rx_CL7jjUbeb=DQ@mail.gmail.com>
 source: <20260822-vv-branch-recurse-no-start-ref-v1-0-46dc140acaa8@zitro.id>


* ec/commit-fixup-options (2026-09-22) 2 commits
 . commit: allow -c/-C for all kinds of --fixup
 . commit: allow -m/-F for all kinds of --fixup

 Support for '-m', '-F', '-c', or '-C' options to supply a commit log
 message from outside the editor has been added for all 'git commit
 --fixup' variations.

 Expecting a reroll for too long, stalled.
 cf. <ba174a25-f7bc-4a5d-918c-87229b2fb5f6@gmail.com>
 cf. <de12af28-a64e-4472-8bd4-b65200772dbe@gmail.com>
 cf. <auyXU7spezFBYohU@mbp>
 source: <cover.1790082176.git.erik@cervined.in>


* dm/libsecret-explicit-load (2026-09-27) 1 commit
 . credential/libsecret: load secrets explicitly

 The 'libsecret' credential helper has been updated to explicitly
 load secrets instead of relying on the search flag, preventing
 assertion failures when items are concurrently deleted or locked.

 Waiting for response for too long, stalled.
 cf. <c0a247f6-0dfa-4c10-8db5-203f2803ac8d@gmail.com>
 source: <pull.2372.v2.git.git.1790549181518.gitgitgadget@gmail.com>


* js/coverity-overflow-fixes (2026-10-13) 5 commits
 . date: avoid overflow in approxidate relative-time multiplication
 . git-compat-util: add `signed_mult_overflows` and `mult_overflows` macros
 . wrapper: reject insanely large byte counts when reading/writing
 . http: use `size_t` for byte position in fwrite_sha1_file
 . archive-tar: guard get_path_prefix against zero-length input

 Various integer overflow and bounds-checking issues reported by
 Coverity have been fixed, including adding robust compile-time
 macros for overflow detection in integer multiplication and using
 them to protect time offset calculations.

 Waiting for response for too long, stalled.
 cf. <163d14a8-711c-4d4f-b441-8268db819541@gmail.com>
 cf. <373f7186-3da6-4715-a4ce-cd5f56895176@gmail.com>
 cf. <96c1d112-1b05-4663-90c6-33374dccd764@gmail.com>
 source: <pull.2253.git.1791958171.gitgitgadget@gmail.com>


* mc/repo-structure-filtering (2026-10-15) 1 commit
 . repo: add filtering options to "repo structure"

 The 'git repo structure' command has been taught to accept standard
 revision arguments to filter the set of objects being counted.

 Waiting for response for too long, stalled.
 cf. <atG2ukqpl5pA6V0H@pks.im>
 cf. <xmqq33u5c6z6.fsf@gitster.g>
 source: <20261016133118.3659793-1-markchucarroll@fastmail.com>


* mv/log-follow-speedup (2026-11-09) 5 commits
 . log: speed up --follow following renames for non-linear history
 . log: simplify --follow following renames for non-linear history
 . log: fix -m --follow losing the history of later parents
 . log: extract showing the remerge/combined diff of a merge commit
 . t4219: test more --follow cases across merges

 The expensive rename detection logic in 'git log --follow' across
 non-linear history has been made optional, introducing the
 '--follow=merges' option and 'log.follow=merges' configuration.

 Retracted for now, to fast-track mv/log-follow-merge-opt-in
 source: <cover.1794078554.git.vmiklos@collabora.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: What's cooking in git.git (Nov 2026, #05)
  2026-11-12 23:45 What's cooking in git.git (Nov 2026, #05) Junio C Hamano
@ 2026-11-13 10:08 ` Toon Claes
  2026-11-13 17:34   ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Toon Claes @ 2026-11-13 10:08 UTC (permalink / raw)
  To: Junio C Hamano, git

Junio C Hamano <gitster@pobox.com> writes:

> * ps/odb-loose-stale-cache (2026-11-04) 2 commits
>  - odb/source-loose: fix existence checks for newly written objects
>  - odb/source-loose: extract logic to retrieve subdirectory bitmap
>
>  The loose object cache has been updated to track newly written loose
>  objects to prevent stale cache entries from causing existence checks
>  to fail, which previously caused issues when lazy-fetching missing
>  objects during a partial clone.
>
>  Needs review.
>  cf. <xmqqfqxg32uy.fsf@gitster.g>
>  cf. <CAL71e4ONN4OQUZ2S==0TRWqZgA8ogT0smRL3Rk46voTm+0Tihw@mail.gmail.com>
>  cf. <55e14977-dfc2-4acc-bc71-a91915fa251f@gmail.com>
>  cf. <20261105194314.GB2898829@coredump.intra.peff.net>
>  cf. <au23Hvzp09yrym9s@pks.im>
>  cf. <xmqq5wyalzi2.fsf@gitster.g>
>  cf. <avHOTt_PEJUKq9Dy@pks.im>
>  source: <20261104-pks-odb-loose-stale-cache-v1-0-a00d5cdb5e7d@pks.im>

As various other people confirmed, the changes also look good to me. It
fixes the bug at hand, that's the most important.

About the NEEDSWORK comments, I'd suggest to integrate that as-is (above
OBJECT_INFO_FOR_PREFETCH) for now.

-- 
Laters,
Toon

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: What's cooking in git.git (Nov 2026, #05)
  2026-11-13 10:08 ` Toon Claes
@ 2026-11-13 17:34   ` Junio C Hamano
  0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2026-11-13 17:34 UTC (permalink / raw)
  To: Toon Claes; +Cc: git

Toon Claes <toon@iotcl.com> writes:

> Junio C Hamano <gitster@pobox.com> writes:
>
>> * ps/odb-loose-stale-cache (2026-11-04) 2 commits
>>  - odb/source-loose: fix existence checks for newly written objects
>>  - odb/source-loose: extract logic to retrieve subdirectory bitmap
>>
>>  The loose object cache has been updated to track newly written loose
>> ...
>>  source: <20261104-pks-odb-loose-stale-cache-v1-0-a00d5cdb5e7d@pks.im>
>
> As various other people confirmed, the changes also look good to me. It

Thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-11-13 17:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-12 23:45 What's cooking in git.git (Nov 2026, #05) Junio C Hamano
2026-11-13 10:08 ` Toon Claes
2026-11-13 17:34   ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox