Subject: What's cooking in git.git (Jun 2025, #06; Wed, 18)

From: Junio C Hamano <[email-masked]>
Date: Wed, 18 Jun 2025 17:04:03 -0700

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

A handful of topics that have been cooking in 'next' are now in
'master'.  I've rewound the tip of 'next' to prepare for this cycle.

As the project usually is slow during Summer in Northern hemisphere,
I plan to make the next cycle on the shorter side to last 8 weeks
(usually a typical release cycle lasts for 8 to 12 weeks).  Key
dates are:

 - Jun 23rd - the 2.51 cycle opens
 - Aug  4th - 2.51-rc0 (preview)
 - Aug  7th - 2.51-rc1 (master really freezes)
 - Aug 13th - 2.51-rc2
 - Aug 18th - 2.51-final

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

* ag/send-email-docs (2025-05-30) 4 commits
  (merged to 'next' on 2025-06-05 at d6b5e97d89)
 + docs: make the purpose of using app password for Gmail more clear in send-email
 + docs: remove credential helper links for emails from gitcredentials
 + docs: improve formatting in git-send-email documentation
 + docs: add credential helper for yahoo and link Google's sendgmail tool

 Documentation for "git send-email" has been updated with a bit more
 credential helper and OAuth information.
 source: <[email-masked]>

* bs/solaris-10-and-11 (2025-06-07) 1 commit
  (merged to 'next' on 2025-06-09 at a6d20b3666)
 + config.mak.uname: update settings for Solaris 10 and 11

 Add settings for Solaris 10 & 11.
 
 source: <[email-masked]>

* cf/guideline-documenting-config-vars (2025-06-03) 1 commit
  (merged to 'next' on 2025-06-06 at 72457f666b)
 + CodingGuidelines: document formatting of similar config variables.

 CodingGuidelines update.
 
 source: <8024[email-masked]>

* ds/path-walk-2 (2025-05-16) 13 commits
  (merged to 'next' on 2025-06-05 at e59d4b1701)
 + pack-objects: allow --shallow and --path-walk
 + path-walk: add new 'edge_aggressive' option
 + pack-objects: thread the path-based compression
 + pack-objects: refactor path-walk delta phase
 + scalar: enable path-walk during push via config
 + pack-objects: enable --path-walk via config
 + repack: add --path-walk option
 + t5538: add tests to confirm deltas in shallow pushes
 + pack-objects: introduce GIT_TEST_PACK_PATH_WALK
 + p5313: add performance tests for --path-walk
 + pack-objects: update usage to match docs
 + pack-objects: add --path-walk option
 + pack-objects: extract should_attempt_deltas()

 "git pack-objects" learns to find delta bases from blobs at the
 same path, using the --path-walk API.
 source: <[email-masked]>

* jk/diff-no-index-with-pathspec (2025-05-21) 3 commits
  (merged to 'next' on 2025-06-05 at b0dee92a43)
 + diff --no-index: support limiting by pathspec
 + pathspec: add flag to indicate operation without repository
 + pathspec: add match_leading_pathspec variant

 "git diff --no-index dirA dirB" can limit the comparison with
 pathspec at the end of the command line, just like normal "git
 diff".
 source: <[email-masked]>

* jm/bundle-uri-debug-output-to-fp (2025-06-04) 1 commit
  (merged to 'next' on 2025-06-09 at c58618e2dd)
 + bundle-uri: send debug output to given FILE * stream

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

* jw/doc-txt-to-adoc-refs (2025-05-21) 1 commit
  (merged to 'next' on 2025-06-08 at 041162a215)
 + doc: update references to renamed AsciiDoc files

 Some leftover references to documentation source files that no
 longer exist, due to recent ".txt" -> ".adoc" renaming, have been
 corrected.
 
 source: <[email-masked]>

* lo/my-first-ow-doc-update (2025-06-02) 2 commits
  (merged to 'next' on 2025-06-05 at 576594dbf9)
 + MyFirstContribution: add walken.c to meson.build
 + MyFirstContribution: use struct repository in examples

 Doc update to the more recent world order.
 source: <[email-masked]>

* ly/commit-buffer-reencode-leakfix (2025-06-04) 1 commit
  (merged to 'next' on 2025-06-06 at 47b4fdbbf8)
 + repo_logmsg_reencode: fix memory leak when use repo_logmsg_reencode ()

 Leakfix.
 
 source: <[email-masked]>

* ly/commit-graph-graph-write-leakfix (2025-06-03) 1 commit
  (merged to 'next' on 2025-06-05 at ae03e27cc8)
 + commit-graph: fix start_delayed_progress() leak

 A memory-leak in an error code path has been plugged.
 source: <[email-masked]>

* ly/do-not-localize-bug-messages (2025-06-02) 1 commit
  (merged to 'next' on 2025-06-05 at 8fb8d5c0bb)
 + BUG(): remove leading underscore of the format string

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

* ly/fetch-pack-leakfix (2025-06-03) 1 commit
  (merged to 'next' on 2025-06-05 at 560cfcbe51)
 + builtin/fetch-pack: cleanup before return error

 A memory-leak in an error code path has been plugged.
 source: <[email-masked]>

* ly/pack-bitmap-root-leakfix (2025-06-09) 1 commit
  (merged to 'next' on 2025-06-09 at 15ff3f5f36)
 + pack-bitmap: remove checks before bitmap_free

 Memleak fix on an error code path.
 
 source: <[email-masked]>

* ly/sequencer-update-squash-is-fixup-only (2025-06-02) 1 commit
  (merged to 'next' on 2025-06-05 at 0ac9201fee)
 + sequencer: replace error() with BUG() in update_squash_messages ()

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

* ly/submodule-update-failure-leakfix (2025-06-07) 1 commit
  (merged to 'next' on 2025-06-09 at b28794c576)
 + builtin/submodule--helper: fix leak when remote_submodule_branch() failed

 A memory leak on an error code path has been plugged.
 
 source: <[email-masked]>

* ma/doc-diff-cc-headers (2025-06-06) 1 commit
  (merged to 'next' on 2025-06-08 at e2072501f7)
 + diff-generate-patch.adoc: drop spurious backticks

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

* ps/meson-tap-parse (2025-06-01) 10 commits
  (merged to 'next' on 2025-06-03 at 579d19e8ae)
 + meson: parse TAP output generated by our tests
 + meson: introduce kwargs variable for tests
 + test-lib: fail on unexpectedly passing tests
 + t7815: fix unexpectedly passing test on macOS
 + t/test-lib: fix TAP format for BASH_XTRACEFD warning
 + t/test-lib: don't print shell traces to stdout
 + t983*: use prereq to check for Python-specific git-p4(1) support
 + t9822: use prereq to check for ISO-8859-1 support
 + t: silence output from `test_create_repo()`
 + t: stop announcing prereqs
 (this branch is used by rj/meson-tap-parse-fixup.)

 Meson-based build/test framework now understands TAP output
 generated by our tests.
 source: <[email-masked]>

* rc/userdiff-r (2025-05-29) 1 commit
  (merged to 'next' on 2025-06-05 at 28e008821c)
 + userdiff: add support for R programming language

 Userdiff patterns for the R language.
 source: <[email-masked]>

* rj/meson-tap-parse-fixup (2025-06-09) 1 commit
  (merged to 'next' on 2025-06-10 at 1fc2a0284f)
 + test-lib: add missing prerequisites for Darwin

 An earlier test update incorrectly lost three prerequisites on
 macOS, which has been corrected.
 
 source: <[email-masked]>

* vd/cat-file-objectmode-update (2025-06-02) 3 commits
  (merged to 'next' on 2025-06-05 at fb997e495f)
 + cat-file.c: add batch handling for submodules
 + cat-file: add %(objectmode) atom
 + t1006: update 'run_tests' to test generic object specifiers

 "git cat-file --batch" learns to understand %(objectmode) atom to
 allow the caller to tell missing objects (due to repository
 corruption) and submodules (whose commit objects are OK to be
 missing) apart.
 source: <[email-masked]>

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

* ac/deglobal-sparse-variables (2025-06-17) 3 commits
 - environment: remove the global variable 'sparse_expect_files_outside_of_patterns'
 - environment: move access to "core.sparsecheckoutcone" into repo_settings
 - environment: move access to "core.sparsecheckout" into repo_settings

 Two global variables related to sparse checkout have been moved to
 the repository settings structure.

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

* jk/submodule-remote-lookup-cleanup (2025-06-17) 6 commits
 - submodule: look up remotes by URL first
 - submodule: move get_default_remote_submodule()
 - submodule--helper: improve logic for fallback remote name
 - remote: remove the_repository from some functions
 - dir: move starts_with_dot(_dot)_slash to dir.h
 - remote: fix tear down of struct branch and struct remote

 Updating submodules from the upstream did not work well when
 submodule's HEAD is detached, which has been improved.

 Comments?
 source: <[email-masked]>

* ly/run-builtin-use-passed-in-repo (2025-06-15) 1 commit
  (merged to 'next' on 2025-06-18 at ae732fef47)
 + git.c: remove the_repository dependence in run_builtin()

 Code clean-up.

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

* rm/t2400-modernize (2025-06-16) 1 commit
  (merged to 'next' on 2025-06-18 at 58c4f9560c)
 + t2400: replace 'test -[efd]' with 'test_path_is_*'

 Test clean-up.

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

* jc/diff-no-index-with-pathspec-fix (2025-06-18) 1 commit
 - diff-no-index: do not reference .d_type member of struct dirent

 Recent code added a direct access to the d_type member in "struct
 dirent", but some platforms lack it, which has been corrected.

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

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

* jg/mailinfo-leakfix (2025-06-13) 1 commit
 - mailinfo.c: fix memory leak in function handle_content_type()

 Leakfix.

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

* ow/rebase-verify-insn-fmt-before-initializing-state (2025-06-09) 1 commit
 - rebase: write script before initializing state

 "git rebase -i" with bogus rebase.instructionFormat configuration
 failed to produce the todo file after recording the state files,
 leading to confused "git status"; this has been corrected.

 Comments?
 cf. <[email-masked]>
 source: <[email-masked]>

* ac/preload-index-wo-the-repository (2025-06-10) 2 commits
  (merged to 'next' on 2025-06-18 at fe9378f663)
 + preload-index: stop depending on 'the_repository'
 + environment: remove the global variable 'core_preload_index'

 Code clean-up.

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

* jc/cg-let-bss-do-its-job (2025-06-11) 1 commit
  (merged to 'next' on 2025-06-18 at 5166eea328)
 + CodingGuidelines: let BSS do its job

 Clarify "do not explicitly initialize to zero" rule in the
 CodingGuidelines document.

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

* jc/merge-compact-summary (2025-06-12) 2 commits
 - merge/pull: extend merge.stat configuration variable to cover --compact-summary
 - merge/pull: add the "--compact-summary" option

 "git merge/pull" has been taught the "--compact-summary" option to
 use the compact-summary format, intead of diffstat, when showing
 the summary of the incoming changes.

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

* ly/prepare-show-merge-leakfix (2025-06-09) 1 commit
  (merged to 'next' on 2025-06-18 at 11ab005b9c)
 + revision: fix memory leak in prepare_show_merge()

 Leakfix.

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

* sa/multi-mailmap-fix (2025-06-13) 1 commit
  (merged to 'next' on 2025-06-18 at c492804406)
 + cat-file: fix mailmap application for different author and committer

 When asking to apply mailmap to both author and committer field
 while showing a commit object, the field that appears later was not
 correctly parsed and replaced, which has been corrected.

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

* bs/config-mak-freebsd (2025-06-12) 1 commit
 - config.mak.uname: update settings for FreeBSD

 Drop FreeBSD 4 support and assume we are at least at FreeBSD 6 with
 memmem() supported.

 Expecting a finalized version from Carlo?
 source: <[email-masked]>

* jc/tag-idempotent-no-op (2025-06-10) 1 commit
 - tag: allow idempotent "git tag" without "--force"

 "git tag T O" when the tag T is already pointing at the object O is
 a no-op; we used to but no longer error out such a request and
 require "--force" and instead turn it into a no-op.

 Comments?
 source: <[email-masked]>

* ss/compat-bswap-revamp (2025-06-11) 6 commits
 - bswap.h: provide a built-in based version of bswap32/64 if possible
 - bswap.h: remove optimized x86 version of bswap32/64
 - bswap.h: always overwrite ntohl/ntohll macros
 - bswap.h: define GIT_LITTLE_ENDIAN on MSVC as little endian
 - bswap.h: add support for __BYTE_ORDER__
 - Merge branch 'ss/revert-builtin-bswap-stuff' into ss/compat-bswap-revamp

 Clean-up compat/bswap.h mess.

 Comments?
 source: <[email-masked]>

* ja/doc-git-log-markup (2025-06-08) 9 commits
 - doc: git-log: convert log config to new doc format
 - doc: git-log: convert diff options to new doc format
 - doc: git-log: convert pretty formats to new doc format
 - doc: git-log: convert pretty options to new doc format
 - doc: git-log: convert rev list options to new doc format
 - doc: git-log: convert line range format to new doc format
 - doc: git-log: convert line range options to new doc format
 - doc: git-log convert rev-list-description to new doc format
 - doc: convert git-log to new documentation format

 Doc mark-up updates.

 Review?
 source: <[email-masked]>

* kj/stash-onbranch-submodule-fix (2025-06-10) 1 commit
  (merged to 'next' on 2025-06-18 at 1ac7a03f69)
 + stash: fix incorrect branch name in stash message

 "git stash" recorded a wrong branch name when submodules are
 present in the current checkout, which has been corrected.

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

* ag/imap-send-resurrection (2025-06-09) 10 commits
 - imap-send: fix minor mistakes in the logs
 - imap-send: display the destination mailbox when sending a message
 - imap-send: display port alongwith host when git credential is invoked
 - imap-send: add ability to list the available folders
 - imap-send: enable specifying the folder using the command line
 - imap-send: add PLAIN authentication method to OpenSSL
 - imap-send: add support for OAuth2.0 authentication
 - imap-send: gracefully fail if CRAM-MD5 authentication is requested without OpenSSL
 - imap-send: fix memory leak in case auth_cram_md5 fails
 - imap-send: fix bug causing cfg->folder being set to NULL

 "git imap-send" has been broken for a long time, which has been
 resurrected and then taught to talk OAuth2.0 etc.

 Expecting review responses
 cf. <[email-masked]>
 source: <[email-masked]>

* pw/subtree-gpg-sign (2025-06-04) 2 commits
  (merged to 'next' on 2025-06-18 at d3c6435b4f)
 + contrib/subtree: add -S/--gpg-sign
 + contrib/subtree: parse using --stuck-long

 "git subtree" (in contrib/) learns to grok GPG signing its commits.

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

* sk/reftable-clarify-tests (2025-06-05) 10 commits
 - t/unit-tests: finalize migration of reftable-related tests
 - t/unit-tests: convert reftable stack test to use clar
 - t/unit-tests: convert reftable record test to use clar
 - t/unit-tests: convert reftable readwrite test to use clar
 - t/unit-tests: convert reftable table test to use clar
 - t/unit-tests: convert reftable pq test to use clar
 - t/unit-tests: convert reftable merged test to use clar
 - t/unit-tests: convert reftable block test to use clar
 - t/unit-tests: convert reftable basics test to use clar test framework
 - t/unit-tests: implement clar specific reftable test helper functions

 The reftable unit tests are now ported to the "clar" unit testing
 framework.

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

* ag/send-email-edit-threading-fix (2025-06-04) 2 commits
  (merged to 'next' on 2025-06-18 at dfe9cb890c)
 + send-email: show the new message id assigned by outlook in the logs
 + send-email: fix bug resulting in broken threads if a message is edited

 "git send-email" incremented its internal message counter when a
 message was edited, which made logic that treats the first message
 specially misbehave, which has been corrected.

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

* ly/load-bitmap-leakfix (2025-06-02) 3 commits
 - pack-bitmap: add load corrupt bitmap test
 - pack-bitmap: reword comments in test_bitmap_commits()
 - pack-bitmap: fix memory leak if load_bitmap() failed

 Leakfix with a new and a bit invasive test.

 Comments?
 source: <[email-masked]>

* ps/maintenance-ref-lock (2025-06-03) 12 commits
  (merged to 'next' on 2025-06-18 at 724574661a)
 + builtin/maintenance: fix locking race when handling "gc" task
 + builtin/gc: avoid global state in `gc_before_repack()`
 + usage: allow dying without writing an error message
 + builtin/maintenance: fix locking race with refs and reflogs tasks
 + builtin/maintenance: split into foreground and background tasks
 + builtin/maintenance: fix typedef for function pointers
 + builtin/maintenance: extract function to run tasks
 + builtin/maintenance: stop modifying global array of tasks
 + builtin/maintenance: mark "--task=" and "--schedule=" as incompatible
 + builtin/maintenance: centralize configuration of explicit tasks
 + builtin/gc: drop redundant local variable
 + builtin/gc: use designated field initializers for maintenance tasks

 "git maintenance" lacked the care "git gc" had to avoid holding
 onto the repository lock for too long during packing refs, which
 has been remedied.

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

* tb/prepare-midx-pack-cleanup (2025-05-28) 5 commits
 - midx: return a `packed_git` pointer from `prepare_midx_pack()`
 - midx-write.c: extract inner loop from fill_packs_from_midx()
 - midx-write.c: guard against incremental MIDXs in want_included_pack()
 - midx: access pack names through `nth_midxed_pack_name()`
 - Merge branch 'ps/midx-negative-packfile-cache' into tb/prepare-midx-pack-cleanup

 Improvement on Multi-pack-index API.

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

* pw/stash-p-pathspec-fixes (2025-06-07) 2 commits
  (merged to 'next' on 2025-06-18 at 10cfc8865f)
 + stash: allow "git stash [<options>] --patch <pathspec>" to assume push
 + stash: allow "git stash -p <pathspec>" to assume push again

 "git stash -p <pathspec>" improvements.

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

* kn/fetch-push-bulk-ref-update (2025-05-19) 4 commits
 - receive-pack: use batched reference updates
 - send-pack: fix memory leak around duplicate refs
 - fetch: use batched reference updates
 - refs: add function to translate errors to strings
 (this branch is used by kn/fetch-push-bulk-ref-update-fixup.)

 "git push" and "git fetch" are taught to update refs in batches to
 gain performance.

 Tentatively kicked out of 'next' to give its fix-up topic a chance to reboot.
 source: <20250519-501-[email-masked]>

* kn/fetch-push-bulk-ref-update-fixup (2025-06-13) 3 commits
 - receive-pack: handle reference deletions separately
 - refs/files: skip updates with errors in batched updates
 - Merge branch 'kn/fetch-push-bulk-ref-update' into kn/fetch-push-bulk-ref-update-fixup
 (this branch uses kn/fetch-push-bulk-ref-update.)

 Additional fixes to the base topic.

 Comments?
 source: <20250613-6769-address-test-failures-in-the-n[email-masked]>

* kj/renamed-submodule (2025-06-07) 2 commits
 - submodule: skip redundant active entries when pattern covers path
 - submodule: prevent overwriting .gitmodules entry on path reuse

 The case where a new submodule takes a path where used to be a
 completely different subproject is now dealt a bit better than
 before.

 Comments?
 source: <[email-masked]>

* bc/stash-export-import (2025-06-11) 4 commits
 - builtin/stash: provide a way to import stashes from a ref
 - builtin/stash: provide a way to export stashes to a ref
 - builtin/stash: factor out revision parsing into a function
 - object-name: make get_oid quietly return an error

 An interchange format for stash entries is defined, and subcommand
 of "git stash" to import/export has been added.

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

* lm/add-p-context (2025-05-10) 4 commits
 - add-patch: add diff.context command line overrides
 - add-patch: respect diff.context configuration
 - test: refactor to use "test_config"
 - test: refactor to use "test_grep"

 "git add/etc -p" now honors diff.context configuration variable,
 and learns to honor -U<n> option.

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

* ps/contrib-sweep (2025-05-16) 12 commits
 - Revert "contrib: remove "thunderbird-patch-inline""
 - contrib: remove some scripts in "stats" directory
 - contrib: remove "git-new-workdir"
 - contrib: remove "emacs" directory
 - contrib: remove "git-resurrect.sh"
 - contrib: remove "persistent-https" remote helper
 - contrib: remove "mw-to-git"
 - contrib: remove "hooks" directory
 - contrib: remove "thunderbird-patch-inline"
 - contrib: remove remote-helper stubs
 - contrib: remove "examples" directory
 - contrib: remove "remotes2config.sh"

 Remove bunch of stuff from contrib/ hierarchy.

 I've reverted the thunderbird thing for now.
 source: <[email-masked]>

* ps/object-store (2025-06-04) 17 commits
 - odb: rename `read_object_with_reference()`
 - odb: rename `pretend_object_file()`
 - odb: rename `has_object()`
 - odb: rename `repo_read_object_file()`
 - odb: rename `oid_object_info()`
 - odb: trivial refactorings to get rid of `the_repository`
 - odb: get rid of `the_repository` when handling submodule sources
 - odb: get rid of `the_repository` when handling the primary source
 - odb: get rid of `the_repository` in `for_each()` functions
 - odb: get rid of `the_repository` when handling alternates
 - odb: get rid of `the_repository` in `odb_mkstemp()`
 - odb: get rid of `the_repository` in `assert_oid_type()`
 - odb: get rid of `the_repository` in `find_odb()`
 - odb: introduce parent pointers
 - object-store: rename files to "odb.{c,h}"
 - object-store: rename `object_directory` to `odb_source`
 - object-store: rename `raw_object_store` to `object_database`

 Code clean-up around object access API.

 Comments?
 source: <[email-masked]>

* cc/promisor-remote-capability (2025-06-11) 5 commits
 - promisor-remote: use string constants for 'name' and 'url' too
 - promisor-remote: allow a client to check fields
 - promisor-remote: refactor how we parse advertised fields
 - promisor-remote: allow a server to advertise more fields
 - promisor-remote: refactor to get rid of 'struct strvec'

 The "promisor-remote" capability mechanism has been updated to
 allow the "partialCloneFilter" settings and the "token" value to be
 communicated from the server side.

 Comments?
 source: <[email-masked]>

* jc/you-still-use-whatchanged (2025-05-12) 6 commits
  (merged to 'next' on 2025-06-18 at b28af0a02c)
 + whatschanged: list it in BreakingChanges document
 + whatchanged: remove when built with WITH_BREAKING_CHANGES
 + whatchanged: require --i-still-use-this
 + tests: prepare for a world without whatchanged
 + doc: prepare for a world without whatchanged
 + you-still-use-that??: help deprecating commands for removal

 "git whatchanged" that is longer to type than "git log --raw"
 which is its modern rough equivalent has outlived its usefulness
 more than 10 years ago.  Plan to deprecate and remove it.

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

* sj/string-list-typefix (2025-05-18) 8 commits
 - u-string-list: move "remove duplicates" test to "u-string-list.c"
 - u-string-list: move "filter string" test to "u-string-list.c"
 - u-string-list: move "test_split_in_place" to "u-string-list.c"
 - u-string-list: move "test_split" into "u-string-list.c"
 - string-list: enable sign compare warnings check
 - string-list: return index directly when inserting an existing element
 - string-list: remove unused "insert_at" parameter from add_entry
 - string-list: fix sign compare warnings for loop iterator

 Code and test clean-up around string-list API.

 Comments?
 source: <aCoDB9P5XV1lHMil@ArchLinux>

* tb/midx-avoid-cruft-packs (2025-05-28) 9 commits
 - repack: exclude cruft pack(s) from the MIDX where possible
 - pack-objects: introduce '--stdin-packs=follow'
 - pack-objects: swap 'show_{object,commit}_pack_hint'
 - pack-objects: fix typo in 'show_object_pack_hint()'
 - pack-objects: perform name-hash traversal for unpacked objects
 - pack-objects: declare 'rev_info' for '--stdin-packs' earlier
 - pack-objects: factor out handling '--stdin-packs'
 - pack-objects: limit scope in 'add_object_entry_from_pack()'
 - pack-objects: use standard option incompatibility functions

 "pack-objects" has been taught to avoid pointing into objects in
 cruft packs from midx.

 Ready?
 source: <[email-masked]>

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

* cc/fast-import-export-signature-names (2025-04-24) 1 commit
 . fast-(import|export): improve on the signature algorithm name

 Clean up the way how signature on commit objects are exported to
 and imported from fast-import stream.

 Has been expecting a reroll for too long.
 cf. <[email-masked]>
 cf. https://github.com/git/git/actions/runs/14671270673/job/41178138711
 source: <[email-masked]>