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/ -------------------------------------------------- [New Topics] * bc/use-sha256-by-default-in-3.0 (2025-06-19) 10 commits - Enable SHA-256 by default in breaking changes mode - t5300: choose the built-in hash outside of a repo - t4042: choose the built-in hash outside of a repo - t1007: choose the built-in hash outside of a repo - t: default to compile-time default hash if not set - setup: use the default algorithm to initialize repo format - Use original hash for legacy formats - builtin: use default hash when outside a repository - hash: add a constant for the original hash algorithm - hash: add a constant for the default hash algorithm Prepare to flip the default hash function to SHA-256. Needs review. source: <20250620011943.586596-1-sandals@xxxxxxxxxxxxxxxxxxxx> * jc/cocci-avoid-regexp-constraint (2025-06-18) 1 commit - cocci: matching (multiple) identifiers Avoid regexp_constraint and instead use comparison_constraint when listing functions to exclude from application of coccinelle rules, as spatch can be built with different regexp engine X-<. Will merge to 'next'. source: <xmqqbjqlexzd.fsf@gitster.g> * jc/cocci-dtype (2025-06-18) 1 commit - cocci: do not directly access the .d_type member in struct dirent Catch direct access to .d_type member of struct dirent, as some non-POSIX compliant systems we support lack it, and rewrite to use DTYPE() macro, which is not quite the right thing to do. Will discard. source: <xmqq4iwcgbzb.fsf@gitster.g> * jc/coccicheck-fails-make-when-it-fails (2025-06-19) 1 commit - coccicheck: fail "make" when it fails "make coccicheck" succeeds even when spatch made suggestions, which has been updated to fail in such a case. Needs review. source: <xmqqwm97bv7c.fsf@gitster.g> * jt/imap-send-message-fix (2025-06-20) 3 commits - imap-send: improve error messages with configuration hints - imap-send: fix confusing 'store' terminology in error message - Merge branch 'ag/imap-send-resurrection' into jt/imap-send-message-fix (this branch uses ag/imap-send-resurrection.) Update some error messages from "git imap-send". Will merge to 'next'? source: <20250620155614.901816-1-joerg@xxxxxxxxxxx> * lo/repo-info (2025-06-19) 7 commits - repo-info: add field layout.shallow - repo-info: add field layout.bare - repo-info: add the field references.format - repo-info: add the --allow-empty flag - repo-info: add plaintext as an output format - repo-info: add the --format flag - repo-info: declare the repo-info command A new subcommand "git repo-info" gives users a way to grab various repository characteristics. Needs review. source: <20250619225751.99699-1-lucasseikioshiro@xxxxxxxxx> -------------------------------------------------- [Cooking] * cc/fast-import-export-signature-names (2025-06-19) 1 commit - fast-(import|export): improve on commit signature output format Clean up the way how signature on commit objects are exported to and imported from fast-import stream. Needs review. source: <20250619133630.727274-1-christian.couder@xxxxxxxxx> * 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: <cover.1750157825.git.ayu.chandekar@xxxxxxxxx> * jk/submodule-remote-lookup-cleanup (2025-06-18) 7 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 remote . remote: remove branch->merge_name and fix branch_release() Updating submodules from the upstream did not work well when submodule's HEAD is detached, which has been improved. Kicked out of 'seen' as it seems to fail the test suite. cf. <xmqqecve0yvz.fsf@gitster.g> source: <20250618-jk-submodule-helper-use-url-v3-0-7c60f2679271@xxxxxxxxx> * 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: <20250616062233.1589172-1-502024330056@xxxxxxxxxxxxxxxx> * 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: <20250617002939.24478-1-rodmichelassi@xxxxxxxxx> * jc/diff-no-index-with-pathspec-fix (2025-06-18) 1 commit (merged to 'next' on 2025-06-20 at 936407d5ef) + 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 'master'. source: <xmqqh60ces03.fsf@gitster.g> * jg/mailinfo-leakfix (2025-06-13) 1 commit (merged to 'next' on 2025-06-20 at 3ef4f7f41c) + mailinfo.c: fix memory leak in function handle_content_type() Leakfix. Will merge to 'master'. source: <SA1PR22MB399911638F342E1AA20F014AE477A@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> * 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. <20250609221055.136074-1-oystwa@xxxxxxxxx> source: <20250609221055.136074-1-oystwa@xxxxxxxxx> * 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: <cover.1749557133.git.ayu.chandekar@xxxxxxxxx> * 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: <xmqqh60mger9.fsf@gitster.g> * 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: <20250612222537.2426059-1-gitster@xxxxxxxxx> * 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: <pull.1989.v3.git.git.1749515879546.gitgitgadget@xxxxxxxxx> * 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: <20250613115750.41205-1-siddharthasthana31@xxxxxxxxx> * 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: <xmqqv7p0bpdl.fsf_-_@gitster.g> * 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: <xmqqzfefodje.fsf@gitster.g> * 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: <20250611221444.1567638-1-sebastian@xxxxxxxxxxxxx> * 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: <pull.1933.git.1749373787.gitgitgadget@xxxxxxxxx> * 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: <20250611014204.24994-1-jayatheerthkulkarni2005@xxxxxxxxx> * ag/imap-send-resurrection (2025-06-19) 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 (this branch is used by jt/imap-send-message-fix.) "git imap-send" has been broken for a long time, which has been resurrected and then taught to talk OAuth2.0 etc. Ready? source: <PN3PR01MB9597F9CAD0DA83152E651194B87CA@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> * 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: <pull.1928.v2.git.1749046597.gitgitgadget@xxxxxxxxx> * 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. <xmqqikla86id.fsf@gitster.g> source: <20250605140644.239199-1-kuforiji98@xxxxxxxxx> * 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: <PN3PR01MB95979AA8114CA26405BE02CFB86CA@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> * 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: <pull.1962.v5.git.git.1748920444.gitgitgadget@xxxxxxxxx> * 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: <20250603-b4-pks-maintenance-ref-lock-race-v4-0-52f5cf7b7e99@xxxxxx> * 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. <20250530065034.GC1321283@xxxxxxxxxxxxxxxxxxxxxxx> source: <cover.1748473122.git.me@xxxxxxxxxxxx> * 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: <cover.1749289514.git.phillip.wood@xxxxxxxxxxxxx> * 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-update-git-fetch-1-to-use-partial-transactions-v3-0-6cdfd4f769b9@xxxxxxxxx> * kn/fetch-push-bulk-ref-update-fixup (2025-06-20) 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: <20250620-6769-address-test-failures-in-the-next-branch-caused-by-batched-reference-updates-v5-0-f35ee6b59a82@xxxxxxxxx> * 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: <20250608032705.11990-1-jayatheerthkulkarni2005@xxxxxxxxx> * 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: <20250612011221.4158484-1-sandals@xxxxxxxxxxxxxxxxxxxx> * 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=7Q@xxxxxxxxxxxxxx> source: <pull.1915.v2.git.1746884789.gitgitgadget@xxxxxxxxx> * 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: <20250512-pks-contrib-spring-cleanup-v3-0-32e151b0bfb0@xxxxxx> * 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: <20250605-pks-object-store-wo-the-repository-v5-0-779d1c28774b@xxxxxx> * 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: <20250611134506.2975856-1-christian.couder@xxxxxxxxx> * 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: <20250512190311.1451556-1-gitster@xxxxxxxxx> * 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-06-19) 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: <cover.1750375803.git.me@xxxxxxxxxxxx>