Subject: What's cooking in git.git (Jan 2025, #09; Fri, 31)

From: Junio C Hamano <[email-masked]>
Date: Fri, 31 Jan 2025 18:51:33 -0800

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 are candidate to be in a
future release).  Commits prefixed with '-' are only in 'seen', and
aren't considered "accepted" at all and may be annotated with an URL
to a message that raises issues but they are no means exhaustive.  A
topic without enough support may be discarded after a long period of
no activity (of course they can be resubmit when new interests
arise).

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

* am/trace2-with-valueless-true (2025-01-23) 1 commit
  (merged to 'next' on 2025-01-23 at 7dc4bdaea8)
 + trace2: prevent segfault on config collection with valueless true

 The trace2 code was not prepared to show a configuration variable
 that is set to true using the valueless true syntax, which has been
 corrected.
 source: <[email-masked]>

* ds/path-walk-1 (2025-01-22) 8 commits
  (merged to 'next' on 2025-01-23 at 1d3743f005)
 + path-walk: drop redundant parse_tree() call
  (merged to 'next' on 2025-01-22 at 3171845b73)
 + path-walk: reorder object visits
 + path-walk: mark trees and blobs as UNINTERESTING
 + path-walk: visit tags and cached objects
 + path-walk: allow consumer to specify object types
 + t6601: add helper for testing path-walk API
 + test-lib-functions: add test_cmp_sorted
 + path-walk: introduce an object walk by path
 (this branch is used by ds/backfill.)

 Introduce a new API to visit objects in batches based on a common
 path, or by type.
 cf. <[email-masked]>
 source: <[email-masked]>

* ja/doc-commit-markup-updates (2025-01-15) 5 commits
  (merged to 'next' on 2025-01-23 at aa9235f015)
 + doc: migrate git-commit manpage secondary files to new format
 + doc: convert git commit config to new format
 + doc: make more direct explanations in git commit options
 + doc: the mode param of -u of git commit is optional
 + doc: apply new documentation guidelines to git commit

 Doc updates.
 source: <[email-masked]>

* ja/doc-notes-markup-updates (2025-01-10) 1 commit
  (merged to 'next' on 2025-01-24 at d02f3c8a9c)
 + doc: convert git-notes to new documentation format

 Doc mark-up updates.
 source: <[email-masked]>

* ja/doc-restore-markup-update (2025-01-10) 1 commit
  (merged to 'next' on 2025-01-24 at ba5df28904)
 + doc: convert git-restore to new style format

 Doc mark-up updates.
 source: <[email-masked]>

* jc/show-index-h-update (2024-12-20) 1 commit
  (merged to 'next' on 2025-01-28 at 2196ecadc4)
 + show-index: the short help should say the command reads from its input

 Doc and short-help text for "show-index" has been clarified to
 stress that the command reads its data from the standard input.
 source: <[email-masked]>

* kn/reflog-symref-fix (2025-01-23) 1 commit
  (merged to 'next' on 2025-01-23 at 123929bd42)
 + refs: fix creation of reflog entries for symrefs

 reflog entries for symbolic ref updates were broken, which has been
 corrected.
 source: <[email-masked]>

* ps/reflog-migration-with-logall-fix (2025-01-22) 1 commit
  (merged to 'next' on 2025-01-23 at 079036d154)
 + refs: fix migration of reflogs respecting "core.logAllRefUpdates"

 The "git refs migrate" command did not migrate the reflog for
 refs/stash, which is the contents of the stashes, which has been
 corrected.
 source: <[email-masked]>

* rs/ref-fitler-used-atoms-value-fix (2025-01-21) 3 commits
  (merged to 'next' on 2025-01-23 at 714518543f)
 + ref-filter: remove ref_format_clear()
 + ref-filter: move is-base tip to used_atom
 + ref-filter: move ahead-behind bases into used_atom

 "git branch --sort=..." and "git for-each-ref --format=... --sort=..."
 did not work as expected with some atoms, which has been corrected.
 source: <[email-masked]>

* sk/strlen-returns-size_t (2024-12-26) 1 commit
  (merged to 'next' on 2025-01-24 at 43464adc45)
 + date.c: Fix type missmatch warings from msvc

 Code clean-up.
 source: <[email-masked]>

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

* ps/leakfixes-0129 (2025-01-30) 2 commits
  (merged to 'next' on 2025-01-30 at 6dc24dfdaf)
 + scalar: free result of `remote_default_branch()`
 + unix-socket: fix memory leak when chdir(3p) fails

 A few more leakfixes.

 Will merge to 'master'.
 source: <[email-masked]>

* ps/build-meson-fixes-0130 (2025-01-30) 14 commits
 - gitlab-ci: restrict maximum number of link jobs on Windows
 - meson: consistently use custom program paths to resolve programs
 - meson: fix overwritten `git` variable
 - meson: prevent finding sed(1) in a loop
 - meson: improve handling of `sane_tool_path` option
 - meson: improve PATH handling
 - meson: drop separate version library
 - meson: stop linking libcurl into all executables
 - meson: introduce `libgit_curl` dependency
 - meson: simplify use of the common-main library
 - meson: inline the static 'git' library
 - meson: fix OpenSSL fallback when not explicitly required
 - meson: fix exec path with enabled runtime prefix
 - Merge branch 'ps/build-meson-fixes' into ps/build-meson-fixes-0130
 (this branch uses ps/build-meson-fixes.)

 Assorted fixes and improvements to the build procedure based on
 meson.

 Needs review.
 source: <[email-masked]>

* ps/setup-reinit-fixes (2025-01-30) 3 commits
 - setup: fix reinit of repos with incompatible GIT_DEFAULT_HASH
 - setup: fix reinit of repos with incompatible GIT_DEFAULT_REF_FORMAT
 - t0001: remove duplicate test

 "git init" to reinitialize a repository that already exists cannot
 change the hash function and ref backends; such a request is
 silently ignored now.

 Will merge to 'next'.
 source: <[email-masked]>

* pw/apply-ulong-overflow-check (2025-01-30) 1 commit
 - apply: detect overflow when parsing hunk header

 "git apply" internally uses unsigned long for line numbers and uses
 strtoul() to parse numbers on the hunk headers.  It however forgot
 to check parse errors.

 Will merge to 'next'.
 source: <[email-masked]>

* sk/unit-tests-0130 (2025-01-31) 4 commits
 - t/unit-tests: convert strcmp-offset test to use clar test framework
 - t/unit-tests: convert strbuf test to use clar test framework
 - t/unit-tests: adapt example decorate test to use clar test framework
 - t/unit-tests: convert hashmap test to use clar test framework

 Convert a handful of unit tests to work with the clar framework.

 Will merge to 'next'.
 source: <[email-masked]>

* jt/gitlab-ci-base-fix (2025-01-31) 1 commit
 - ci: fix base commit fallback for check-whitespace and check-style

 Two CI tasks, whitespace check and style check, work on the
 difference from the base version and the version being checked, but
 the base was computed incorrectly in GitLab CI in some cases, which
 has been corrected.

 Will merge to 'next'.
 source: <[email-masked]>

* op/worktree-is-main-bare-fix (2025-01-31) 1 commit
 - worktree: detect from secondary worktree if main worktree is bare

 Going into a secondary worktree and asking "is the main worktree
 bare?" did not work correctly when per-worktree configuration
 option was in use, which has been corrected.

 Will merge to 'next'?
 source: <[email-masked]>

* ps/hash-cleanup (2025-01-31) 5 commits
 - global: adapt callers to use generic hash context helpers
 - hash: provide generic wrappers to update hash contexts
 - hash: stop typedeffing the hash context
 - hash: convert hashing context to a structure
 - Merge branch 'tb/unsafe-hash-cleanup' into ps/hash-cleanup
 (this branch uses tb/unsafe-hash-cleanup.)

 Further code clean-up on the use of hash functions.  Now the
 context object knows what hash function it is working with.

 Will merge to 'next'.
 source: <[email-masked]>

* tc/clone-single-revision (2025-01-31) 7 commits
 - fixup! builtin/clone: teach git-clone(1) the --revision= option
 - builtin/clone: teach git-clone(1) the --revision= option
 - clone: introduce struct clone_opts in builtin/clone.c
 - clone: add tags refspec earlier to fetch refspec
 - clone: refactor wanted_peer_refs()
 - clone: make it possible to specify --tags
 - clone: cut down on global variables in clone.c

 "git clone" learned to make a shallow clone for a single commit
 that is not necessarily be at the tip of any branch.

 Needs review.
 source: <[email-masked]>

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

* jp/doc-trailer-config (2025-01-24) 1 commit
 - config.txt: add trailer.* variables

 Documentaiton updates.

 Will merge to 'next'?
 source: <[email-masked]>

* js/bundle-unbundle-fd-reuse-fix (2025-01-25) 1 commit
  (merged to 'next' on 2025-01-29 at e490587933)
 + bundle: avoid closing file descriptor twice

 The code path used when "git fetch" fetches from a bundle file
 closed the same file descriptor twice, which sometimes broke things
 unexpectedly when the file descriptor was reused, which has been
 corrected.

 Will merge to 'master'.
 source: <[email-masked]>

* ms/refspec-cleanup (2025-01-27) 3 commits
 - refspec: relocate apply_refspecs and related funtions
 - refspec: relocate query related functions
 - refspec: relocate omit_name_by_refspec and related functions

 Code clean-up.
 source: <[email-masked]>

* ps/reftable-sans-compat-util (2025-01-28) 21 commits
 - Makefile: skip reftable library for Coccinelle
 - reftable: decouple from Git codebase by pulling in "compat/posix.h"
 - git-compat-util.h: split out POSIX-emulating bits
 - compat/msvc: split out POSIX-related bits
 - compat/mingw: split out POSIX-related bits
 - compat: consistently resolve headers via project root
 - reftable/basics: stop using `UNUSED` annotation
 - reftable/basics: stop using `SWAP()` macro
 - reftable/stack: stop using `sleep_millisec()`
 - reftable/system: introduce `reftable_rand()`
 - reftable/reader: stop using `ARRAY_SIZE()` macro
 - reftable/basics: provide wrappers for big endian conversion
 - reftable/basics: stop using `st_mult()` in array allocators
 - reftable: stop using `BUG()` in trivial cases
 - reftable/record: don't `BUG()` in `reftable_record_cmp()`
 - reftable/record: stop using `BUG()` in `reftable_record_init()`
 - reftable/record: stop using `COPY_ARRAY()`
 - reftable/blocksource: stop using `xmmap()`
 - reftable/stack: stop using `write_in_full()`
 - reftable/stack: stop using `read_in_full()`
 - Merge branch 'ps/reftable-sign-compare' into ps/reftable-sans-compat-util

 Make the code in reftable library less reliant on the service
 routines it used to borrow from Git proper, to make it easier to
 use by external users of the library.
 source: <[email-masked]>

* ac/doc-http-ssl-type-config (2025-01-23) 1 commit
 - docs: indicate http.sslCertType and sslKeyType

 Two configuration variables about SSL authentication material that
 weren't mentioned in the documentations are now mentioned.

 Waiting for review response.
 cf. <[email-masked]>
 source: <[email-masked]>

* kn/reflog-migration-fix-fix (2025-01-27) 1 commit
  (merged to 'next' on 2025-01-28 at e70c392ca2)
 + refs/reftable: fix uninitialized memory access of `max_index`
 (this branch uses kn/reflog-migration-fix.)

 Fix bugs in an earlier attempt to fix "git refs migration".

 Will merge to 'master'.
 source: <[email-masked]>

* bc/doc-adoc-not-txt (2025-01-21) 5 commits
  (merged to 'next' on 2025-01-24 at 737049d332)
 + Remove obsolete ".txt" extensions for AsciiDoc files
 + doc: use .adoc extension for AsciiDoc files
 + gitattributes: mark AsciiDoc files as LF-only
 + editorconfig: add .adoc extension
 + doc: update gitignore for .adoc extension

 All the documentation .txt files have been renamed to .adoc to help
 content aware editors.

 Will cook in 'next' for at least 3 weeks til mid Feb 2025.
 cf. <[email-masked]>
 source: <[email-masked]>

* js/libgit-rust (2025-01-29) 4 commits
 - libgit: add higher-level libgit crate
 - libgit-sys: also export some config_set functions
 - libgit-sys: introduce Rust wrapper for libgit.a
 - common-main: split init and exit code into new files

 Foreign language interface for Rust into our code base has been added.

 Will merge to 'next'?
 source: <[email-masked]>

* kn/reflog-migration-fix (2025-01-15) 1 commit
  (merged to 'next' on 2025-01-16 at ae8f9ce9a0)
 + reftable: write correct max_update_index to header
 (this branch is used by kn/reflog-migration-fix-fix and kn/reflog-migration-fix-followup.)

 "git refs migrate" for migrating reflog data was broken.

 On hold.
 cf. <[email-masked]>
 cf. <CAOLa=[email-masked]>
 source: <CAOLa=[email-masked]>

* kn/pack-write-with-reduced-globals (2025-01-21) 5 commits
  (merged to 'next' on 2025-01-28 at bb5f4b8547)
 + pack-write: pass hash_algo to internal functions
 + pack-write: pass hash_algo to `write_rev_file()`
 + pack-write: pass hash_algo to `write_idx_file()`
 + pack-write: pass repository to `index_pack_lockfile()`
 + pack-write: pass hash_algo to `fixup_pack_header_footer()`

 Code clean-up.

 Will merge to 'master'.
 source: <[email-masked]>

* zh/gc-expire-to (2025-01-24) 1 commit
 - gc: add `--expire-to` option

 "git gc" learned the "--expire-to" option and passes it down to
 underlying "git repack".

 Will merge to 'next'?
 source: <[email-masked]>

* kn/reflog-migration-fix-followup (2025-01-22) 4 commits
 - reftable: prevent 'update_index' changes after adding records
 - refs: use 'uint64_t' for 'ref_update.index'
 - refs: mark `ref_transaction_update_reflog()` as static
 - Merge branch 'kn/reflog-migration-fix' into kn/reflog-migration-fix-followup
 (this branch uses kn/reflog-migration-fix.)

 Code clean-up.

 On hold.
 cf. <[email-masked]>
 source: <[email-masked]>

* bf/fetch-set-head-fix (2025-01-27) 2 commits
 - fetch set_head: fix non-mirror remotes in bare repositories
 - fetch set_head: refactor to use remote directly

 Fetching into a bare repository incorrectly assumed it always used
 a mirror layout when deciding to update remote-tracking HEAD, which
 has been corrected.

 Will merge to 'next'?
 source: <[email-masked]>

* ps/build-meson-fixes (2025-01-22) 12 commits
  (merged to 'next' on 2025-01-28 at c7c317a06f)
 + ci: wire up Visual Studio build with Meson
 + ci: raise error when Meson generates warnings
 + meson: fix compilation with Visual Studio
 + meson: make the CSPRNG backend configurable
 + meson: wire up fuzzers
 + meson: wire up generation of distribution archive
 + meson: wire up development environments
 + meson: fix dependencies for generated headers
 + meson: populate project version via GIT-VERSION-GEN
 + GIT-VERSION-GEN: allow running without input and output files
 + GIT-VERSION-GEN: simplify computing the dirty marker
 + Merge branch 'ps/meson-weak-sha1-build' into ps/build-meson-fixes
 (this branch is used by ps/build-meson-fixes-0130 and ps/zlib-ng.)

 More build fixes and enhancements on meson based build procedure.

 Will merge to 'master'.
 source: <[email-masked]>

* ps/zlib-ng (2025-01-28) 12 commits
  (merged to 'next' on 2025-01-30 at ecf8e8bbef)
 + ci: make "linux-musl" job use zlib-ng
 + ci: switch linux-musl to use Meson
 + compat/zlib: allow use of zlib-ng as backend
 + git-zlib: cast away potential constness of `next_in` pointer
 + compat/zlib: provide stubs for `deflateSetHeader()`
 + compat/zlib: provide `deflateBound()` shim centrally
 + git-compat-util: move include of "compat/zlib.h" into "git-zlib.h"
 + compat: introduce new "zlib.h" header
 + git-compat-util: drop `z_const` define
 + compat: drop `uncompress2()` compatibility shim
 + Merge branch 'ps/build-meson-fixes' into ps/zlib-ng
 + Merge branch 'ps/meson-weak-sha1-build' into ps/zlib-ng
 (this branch uses ps/build-meson-fixes.)

 The code paths to interact with zlib has been cleaned up in
 preparation for building with zlib-ng.

 Will merge to 'master'.
 source: <[email-masked]>

* tb/unsafe-hash-cleanup (2025-01-23) 8 commits
  (merged to 'next' on 2025-01-28 at 9e0d6f9a5e)
 + hash.h: drop unsafe_ function variants
 + csum-file: introduce hashfile_checkpoint_init()
 + t/helper/test-hash.c: use unsafe_hash_algo()
 + csum-file.c: use unsafe_hash_algo()
 + hash.h: introduce `unsafe_hash_algo()`
 + csum-file.c: extract algop from hashfile_checksum_valid()
 + csum-file: store the hash algorithm as a struct field
 + t/helper/test-tool: implement sha1-unsafe helper
 (this branch is used by ps/hash-cleanup.)

 The API around choosing to use unsafe variant of SHA-1
 implementation has been updated in an attempt to make it harder to
 abuse.

 Will merge to 'master'.
 source: <[email-masked]>

* sj/ref-consistency-checks-more (2025-01-30) 8 commits
 . builtin/fsck: add `git refs verify` child process
 . packed-backend: check whether the "packed-refs" is sorted
 . packed-backend: add "packed-refs" entry consistency check
 . packed-backend: check whether the refname contains NUL characters
 . packed-backend: add "packed-refs" header consistency check
 . packed-backend: check whether the "packed-refs" is regular
 . builtin/refs: get worktrees without reading head info
 . t0602: use subshell to ensure working directory unchanged

 "git fsck" becomes more careful when checking the refs.

 A reroll exists.
 source: <Z5r6ZnLH3Ee8IQnN@ArchLinux>

* jk/combine-diff-cleanup (2025-01-09) 14 commits
  (merged to 'next' on 2025-01-28 at 97e76074b3)
 + tree-diff: make list tail-passing more explicit
 + tree-diff: simplify emit_path() list management
 + tree-diff: use the name "tail" to refer to list tail
 + tree-diff: drop list-tail argument to diff_tree_paths()
 + combine-diff: drop public declaration of combine_diff_path_size()
 + tree-diff: inline path_appendnew()
 + tree-diff: pass whole path string to path_appendnew()
 + tree-diff: drop path_appendnew() alloc optimization
 + run_diff_files(): de-mystify the size of combine_diff_path struct
 + diff: add a comment about combine_diff_path.parent.path
 + combine-diff: use pointer for parent paths
 + tree-diff: clear parent array in path_appendnew()
 + combine-diff: add combine_diff_path_new()
 + run_diff_files(): delay allocation of combine_diff_path

 Code clean-up for code paths around combined diff.

 Will merge to 'master'.
 source: <[email-masked]>

* sc/help-autocorrect-one (2025-01-13) 1 commit
 - help: interpret boolean string values for help.autocorrect

 "[help] autocorrect = 1" used to be a way to say "please wait for
 0.1 second after suggesting a typofix of the command name before
 running that command"; now it means "yes, if there is a plausible
 typofix for the command name, please run it immediately".

 Looking good except for "should 0 and false be 'tell it without doing it'?".
 source: <[email-masked]>

* ua/os-version-capability (2025-01-24) 6 commits
 - connect: advertise OS version
 - t5701: add setup test to remove side-effect dependency
 - version: extend get_uname_info() to hide system details
 - version: refactor get_uname_info()
 - version: refactor redact_non_printables()
 - version: replace manual ASCII checks with isprint() for clarity

 The value of "uname -s" is by default sent over the wire as a new
 capability, with an opt-out for privacy-concious folks.

 Will merge to 'next'?
 source: <[email-masked]>

* ps/ci-misc-updates (2025-01-10) 10 commits
  (merged to 'next' on 2025-01-29 at 4d2f9d7f18)
 + ci: remove stale code for Azure Pipelines
 + ci: use latest Ubuntu release
 + ci: stop special-casing for Ubuntu 16.04
 + gitlab-ci: add linux32 job testing against i386
 + gitlab-ci: remove the "linux-old" job
 + github: simplify computation of the job's distro
 + github: convert all Linux jobs to be containerized
 + github: adapt containerized jobs to be rootless
 + t7422: fix flaky test caused by buffered stdout
 + t0060: fix EBUSY in MinGW when setting up runtime prefix

 CI updates (containerization, dropping stale ones, etc.).

 Will merge to 'master'.
 source: <[email-masked]>

* sk/maintenance-remote-prune (2025-01-03) 1 commit
 - maintenance: add prune-remote-refs task

 A new periodic maintenance task to run "git remote prune" has been
 introduced.

 Expecting a reroll.
 source: <[email-masked]>

* jc/doc-attr-tree (2024-12-14) 1 commit
 - doc: give attr.tree a bit more visibility

 Make sure that "git --attr-source=X", GIT_ATTR_SOURCE, and
 attr.tree configuration variables appear at the same places in the
 documentation.

 On hold.
 cf. <[email-masked]>
 source: <[email-masked]>

* ps/3.0-remote-deprecation (2025-01-24) 6 commits
  (merged to 'next' on 2025-01-28 at 970fcdf59d)
 + remote: announce removal of "branches/" and "remotes/"
 + builtin/pack-redundant: remove subcommand with breaking changes
 + ci: repurpose "linux-gcc" job for deprecations
 + ci: merge linux-gcc-default into linux-gcc
 + Makefile: wire up build option for deprecated features
 + Merge branch 'ps/build' into ps/3.0-remote-deprecation

 Following the procedure we established to introduce breaking
 changes for Git 3.0, allow an early opt-in for removing support of
 $GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure
 remotes.

 Will merge to 'master'.
 source: <[email-masked]>

* cc/lop-remote (2025-01-27) 6 commits
 - doc: add technical design doc for large object promisors
 - promisor-remote: check advertised name or URL
 - Add 'promisor-remote' capability to protocol v2
 - version: make redact_non_printables() non-static
 - version: refactor redact_non_printables()
 - version: replace manual ASCII checks with isprint() for clarity

 Needs review.
 source: <[email-masked]>

* ds/backfill (2025-01-23) 6 commits
 - backfill: assume --sparse when sparse-checkout is enabled
 - backfill: add --sparse option
 - backfill: add --min-batch-size=<n> option
 - backfill: basic functionality and tests
 - backfill: add builtin boilerplate
 - Merge branch 'ds/path-walk-1' into ds/backfill

 Lazy-loading missing files in a blobless clone on demand is costly
 as it tends to be one-blob-at-a-time.  "git backfill" is introduced
 to help bulk-download necessary files beforehand.

 Expecting a reroll.
 cf. <[email-masked]>
 source: <[email-masked]>

* tb/incremental-midx-part-2 (2024-11-20) 15 commits
 - midx: implement writing incremental MIDX bitmaps
 - pack-bitmap.c: use `ewah_or_iterator` for type bitmap iterators
 - pack-bitmap.c: keep track of each layer's type bitmaps
 - ewah: implement `struct ewah_or_iterator`
 - pack-bitmap.c: apply pseudo-merge commits with incremental MIDXs
 - pack-bitmap.c: compute disk-usage with incremental MIDXs
 - pack-bitmap.c: teach `rev-list --test-bitmap` about incremental MIDXs
 - pack-bitmap.c: support bitmap pack-reuse with incremental MIDXs
 - pack-bitmap.c: teach `show_objects_for_type()` about incremental MIDXs
 - pack-bitmap.c: teach `bitmap_for_commit()` about incremental MIDXs
 - pack-bitmap.c: open and store incremental bitmap layers
 - pack-revindex: prepare for incremental MIDX bitmaps
 - Documentation: describe incremental MIDX bitmaps
 - Merge branch 'tb/pseudo-merge-bitmap-fixes' into tb/incremental-midx-part-2
 - Merge branch 'tb/incremental-midx-part-1' into tb/incremental-midx-part-2

 Incrementally updating multi-pack index files.

 Needs review.
 source: <[email-masked]>

* ps/send-pack-unhide-error-in-atomic-push (2025-01-31) 8 commits
 - send-pack: gracefully close the connection for atomic push
 - t5543: atomic push reports exit code failure
 - send-pack: new return code "ERROR_SEND_PACK_BAD_REF_STATUS"
 - t5548: add porcelain push test cases for dry-run mode
 - t5548: add new porcelain test cases
 - t5548: refactor test cases by resetting upstream
 - t5548: refactor to reuse setup_upstream() function
 - t5504: modernize test by moving heredocs into test bodies

 "git push --atomic --porcelain" used to ignore failures from the
 other side, losing the error status from the child process, which
 has been corrected.

 Needs review.
 source: <[email-masked]>

* ds/name-hash-tweaks (2025-01-27) 7 commits
 - pack-objects: prevent name hash version change
 - test-tool: add helper for name-hash values
 - p5313: add size comparison test
 - pack-objects: add GIT_TEST_NAME_HASH_VERSION
 - repack: add --name-hash-version option
 - pack-objects: add --name-hash-version option
 - pack-objects: create new name-hash function version

 "git pack-objects" and its wrapper "git repack" learned an option
 to use an alternative path-hash function to improve delta-base
 selection to produce a packfile with deeper history than window
 size.

 Will merge to 'next'?
 source: <[email-masked]>

* ej/cat-file-remote-object-info (2025-01-14) 8 commits
 - cat-file: add remote-object-info to batch-command
 - transport: add client support for object-info
 - serve: advertise object-info feature
 - fetch-pack: move fetch initialization
 - fetch-pack: refactor packet writing
 - t1006: split test utility functions into new "lib-cat-file.sh"
 - cat-file: add declaration of variable i inside its for loop
 - git-compat-util: add strtoul_ul() with error handling

 "git cat-file --batch" and friends can optionally ask a remote
 server about objects it does not have.

 Comments?
 source: <[email-masked]>