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'] * as/typofix-in-env-h-header (2025-04-18) 1 commit (merged to 'next' on 2025-04-23 at a9954f6cec) + environment: fix typo: 'setup_git_directory_gently' Typofix. source: <20250418185855.52950-1-abhijeet.nkt@xxxxxxxxxx> * az/tighten-string-array-constness (2025-04-21) 1 commit (merged to 'next' on 2025-04-23 at 5a2b439731) + global: mark usage strings and string tables const Code clean-up. source: <daj53eijkqzsjy5cvuxchea4qm3pbiu673ehetihfffyvwzhgs@xxxxxxxxxxxxxxxxxxxxxxxx> * jh/gc-launchctl-schedule-fix (2025-04-23) 1 commit (merged to 'next' on 2025-04-23 at ab4f2e0c26) + maintenance: fix launchctl calendar intervals Fix for scheduled maintenance tasks on platforms using launchctl. source: <20250421054633.231069-2-joshiheinrichs@xxxxxxxxx> * jk/p5332-testfix (2025-04-22) 1 commit (merged to 'next' on 2025-04-24 at eafff4d7b7) + p5332: drop "+" from --stdin-packs input A test fix. source: <20250422111632.GA1855088@xxxxxxxxxxxxxxxxxxxxxxx> * js/git-perf-env-override (2025-04-20) 1 commit (merged to 'next' on 2025-04-22 at 77ea361791) + perf: do allow `GIT_PERF_*` to be overridden again Developer support fix.. source: <pull.1900.git.1743764167548.gitgitgadget@xxxxxxxxx> * lo/remove-log-reencode-from-rev-info (2025-04-22) 1 commit (merged to 'next' on 2025-04-24 at 1c6c33ab1f) + revision: remove log_reencode field from rev_info Code clean-up. source: <20250422213133.18685-1-lucasseikioshiro@xxxxxxxxx> * ps/ci-resurrect-p4-on-github (2025-04-22) 1 commit (merged to 'next' on 2025-04-24 at 8594d07a3e) + ci: fix p4d executable not being found on GitHub Actions CI fix. source: <aActb3dB-r3s69h6@xxxxxx> * ps/fewer-perl (2025-04-16) 5 commits (merged to 'next' on 2025-04-23 at 275d267126) + Documentation: stop depending on Perl to generate command list + Documentation: stop depending on Perl to massage user manual + request-pull: stop depending on Perl + filter-branch: stop depending on Perl + Merge branch 'ps/test-wo-perl-prereq' into ps/fewer-perl Reduce requirement for Perl in our documentation build and a few scripts. source: <20250416-b4-pks-drop-perl-v2-0-bdd0492e9498@xxxxxx> * ps/install-bash-completion (2025-04-22) 1 commit (merged to 'next' on 2025-04-24 at 1171444ac4) + contrib/completion: install Bash completion Build update to install bash (but not zsh) completion script. source: <20250422-b4-pks-meson-install-completions-v2-1-ab29d399bc6c@xxxxxx> * ps/reftable-api-revamp (2025-04-07) 17 commits (merged to 'next' on 2025-04-23 at 1a5f00290a) + reftable/table: move printing logic into test helper + reftable/constants: make block types part of the public interface + reftable/table: introduce iterator for table blocks + reftable/table: add `reftable_table` to the public interface + reftable/block: expose a generic iterator over reftable records + reftable/block: make block iterators reseekable + reftable/block: store block pointer in the block iterator + reftable/block: create public interface for reading blocks + git-zlib: use `struct z_stream_s` instead of typedef + reftable/block: rename `block_reader` to `reftable_block` + reftable/block: rename `block` to `block_data` + reftable/table: move reading block into block reader + reftable/block: simplify how we track restart points + reftable/blocksource: consolidate code into a single file + reftable/reader: rename data structure to "table" + reftable: fix formatting of the license header + Merge branch 'ps/reftable-sans-compat-util' into ps/reftable-api-revamp Overhaul of the reftable API. cf. <3okrcl7bdpy75hzyzpmrp7fluan4n3zvsroioq64id4a2kt3o4@fc6fetilb6y2> source: <20250407-pks-reftable-polishing-v2-0-316c4ff10571@xxxxxx> * ua/call-repo-config-with-possibly-null-repository (2025-04-20) 2 commits (merged to 'next' on 2025-04-22 at 1f30a19c02) + builtin/difftool: remove unnecessary if statement + builtin/add: remove unnecessary if statement Since a call to repo_config() can be called with repo set to NULL these days, a command that is marked as RUN_SETUP in the builtin command table does not have to check repo with NULL before making the call. source: <20250420025501.183290-1-usmanakinyemi202@xxxxxxxxx> -------------------------------------------------- [New Topics] * cc/promisor-remote-capability (2025-04-29) 3 commits - promisor-remote: allow a client to check fields - promisor-remote: allow a server to advertise more fields - promisor-remote: refactor to get rid of 'struct strvec' Expecting a reroll. cf. <CAP8UFD2LzijGsU3-aO-JBPtEfT+UtR_X_mqcdVigoOfdVAg1uA@xxxxxxxxxxxxxx> source: <20250429145243.992252-1-christian.couder@xxxxxxxxx> * en/hashmap-clear-fix (2025-04-29) 1 commit (merged to 'next' on 2025-04-30 at b0cdbeb28e) + hashmap: ensure hashmaps are reusable after hashmap_clear() hashmap API clean-up to ensure hashmap_clear() leaves a cleared map in a reusable state. Will merge to 'master'. source: <pull.1911.git.1745941663160.gitgitgadget@xxxxxxxxx> * js/diff-codeql-false-positive-workaround (2025-04-29) 1 commit (merged to 'next' on 2025-05-01 at a840276032) + diff: check range before dereferencing an array element Work around false positive given by CodeQL. Will merge to 'master'. source: <pull.1887.v3.git.1745926679028.gitgitgadget@xxxxxxxxx> * ng/xdiff-truly-minimal (2025-04-29) 1 commit - xdiff: disable cleanup_records heuristic with --minimal "git diff --minimal" used to give non-minimal output when its optimization kicked in, which has been disabled. Will merge to 'next'. source: <20250429140949.2634935-1-n.glodny@xxxxxxxxxxxxx> * ds/scalar-no-maintenance (2025-04-30) 2 commits - scalar clone: add --no-maintenance option - scalar register: add --no-maintenance option Two "scalar" subcommands that adds a repository that hasn't been under "scalar"'s control are taught an option not to enable the scheduled maintenance on it. Expecting a reroll. cf. <b9a4dbf2-0064-4933-985f-b34dcb133030@xxxxxxxxx> source: <pull.1913.git.1746008680.gitgitgadget@xxxxxxxxx> * ps/mv-contradiction-fix (2025-04-30) 2 commits (merged to 'next' on 2025-05-01 at 5c27b05f45) + builtin/mv: convert assert(3p) into `BUG()` + builtin/mv: bail out when trying to move child and its parent "git mv a a/b dst" would ask to move the directory 'a' itself, as well as its contents, in a single destination directory, which is a contradicting request that is impossible to satisfy. This case is now detected and the command errors out. Will merge to 'master'. source: <20250430-pks-mv-parent-child-conflict-v1-0-11a87c55ffb9@xxxxxx> * cf/wrapper-netbsd-errno-eftype (2025-05-02) 1 commit - wrapper: NetBSD gives EFTYPE where POSIX uses ELOOP source: <20250502233403.289761-1-collin.funk1@xxxxxxxxx> * en/get-tree-entry-doc (2025-05-02) 1 commit - tree-walk.h: fix incorrect API comment source: <pull.1912.v2.git.1746213551473.gitgitgadget@xxxxxxxxx> * jc/doc-synopsis-option-markup (2025-05-02) 3 commits - git-daemon doc: update mark-up of synopsis option descriptions - git-{var,write-tree} docs: update mark-up of synopsis option descriptions - git-verify-* doc: update mark-up of synopsis option descriptions Doc mark-up fixes. Comments? source: <20250503011537.3035416-1-gitster@xxxxxxxxx> * jc/you-still-use-whatchanged (2025-05-02) 6 commits - 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. Comments? source: <20250503005814.3030099-1-gitster@xxxxxxxxx> -------------------------------------------------- [Cooking] * jc/ci-skip-unavailable-external-software (2025-04-25) 2 commits - ci: download JGit from maven, not eclipse.org - ci: update the message for unavailble third-party software Further refinement on CI messages when an optional external software is unavailable (e.g. due to third-party service outage). Will merge to 'next'. source: <20250425153827.147585-1-gitster@xxxxxxxxx> * js/ci-win-meson-timeout-workaround (2025-04-25) 1 commit - ci(win+Meson): build in Release mode, avoiding t7001-mv hangs win+Meson CI pipeline, unlike other pipelines for Windows, used to build artifacts in develper mode, which has been changed to build them in release mode for consistency. Expecting a reroll, stating an updated rationale for the change. cf. <xmqqjz6zuf80.fsf@gitster.g> source: <pull.1908.git.1745593515875.gitgitgadget@xxxxxxxxx> * ps/maintenance-missing-tasks (2025-05-02) 7 commits - builtin/maintenance: introduce "rerere-gc" task - builtin/gc: move rerere garbage collection into separate function - builtin/maintenance: introduce "worktree-prune" task - worktree: expose function to retrieve worktree names - builtin/gc: move pruning of worktrees into a separate function - builtin/gc: remove global variables where it trivial to do - builtin/gc: fix indentation of `cmd_gc()` parameters Make repository clean-up tasks "gc" can do available to "git maintenance" front-end. Will merge to 'next'? source: <20250502-pks-maintenance-missing-tasks-v3-0-13e130d36640@xxxxxx> * ag/send-email-outlook (2025-04-29) 2 commits - send-email: add --[no-]outlook-id-fix option - send-email: retrieve Message-ID from outlook SMTP server Update send-email to work better with Outlook's smtp server. Will merge to 'next'. source: <PN3PR01MB95973F4B26A8CE2BF17A3AB1B8842@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> source: <PN3PR01MB9597DA8661D1AFDF4C927A11B8812@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> * ds/fix-thin-fix (2025-04-28) 3 commits - index-pack: allow revisiting REF_DELTA chains - t5309: create failing test for 'git index-pack' - test-tool: add pack-deltas helper "git index-pack --fix-thin" used to abort to prevent a cycle in delta chains from forming in a corner case even when there is no such cycle. Will merge to 'next'. source: <pull.1906.v2.git.1745871885.gitgitgadget@xxxxxxxxx> * ps/object-store-cleanup (2025-04-29) 8 commits - object-store: drop `repo_has_object_file()` - treewide: convert users of `repo_has_object_file()` to `has_object()` - object-store: allow fetching objects via `has_object()` - object-store: move function declarations to their respective subsystems - object-store: move and rename `odb_pack_keep()` - object-store: drop `loose_object_path()` - object-store: move `struct packed_git` into "packfile.h" - Merge branch 'ps/object-file-cleanup' into ps/object-store-cleanup Further code clean-up in the object-store layer. Will merge to 'next'. source: <20250429-pks-object-store-cleanups-v3-0-42902bad09a1@xxxxxx> * 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. Expecting a reroll. cf. <aAq1nvcPRlIPal5l@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> cf. https://github.com/git/git/actions/runs/14671270673/job/41178138711 source: <20250424203904.909777-1-christian.couder@xxxxxxxxx> * dd/meson-perl-custom-path (2025-04-24) 1 commit - meson: allow customize perl installation path Meson-based build framework update. Looking good. Expecting a minor reroll. cf. <aA8vSPKdznjzBf6W@xxxxxx> source: <80a2a6ce7c6b05323cf931cdc20d4decb6270002.1745507677.git.congdanhqx@xxxxxxxxx> * ps/meson-bin-sh (2025-04-25) 2 commits - meson: prefer shell at "/bin/sh" - meson: report detected runtime executable paths Meson-based build framework update. Will merge to 'next'? source: <20250425-pks-meson-posix-shell-v3-0-01607a2e9334@xxxxxx> * es/meson-cleanup (2025-04-25) 6 commits (merged to 'next' on 2025-04-28 at 0cc8ee98dc) + meson: only check for missing networking syms on non-Windows; add compat impls + meson: fix typo in function check that prevented checking for hstrerror + meson: add a couple missing networking dependencies + meson: do a full usage-based compile check for sysinfo + meson: check for getpagesize before using it + meson: simplify and parameterize various standard function checks Code clean-up for meson-based build infrastructure. Will merge to 'master'. source: <20250425053345.17288-1-eschwartz@xxxxxxxxxx> * js/windows-arm64 (2025-04-23) 6 commits (merged to 'next' on 2025-04-28 at c3d4cea333) + max_tree_depth: lower it for clangarm64 on Windows + mingw(arm64): do move the `/etc/git*` location + msvc: do handle builds on Windows/ARM64 + mingw: do not use nedmalloc on Windows/ARM64 + config.mak.uname: add support for clangarm64 + bswap.h: add support for built-in bswap functions Update to arm64 Windows port. Will merge to 'master'. source: <pull.1904.v2.git.1745395308.gitgitgadget@xxxxxxxxx> * sj/string-list-typefix (2025-04-22) 5 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: fix sign compare warnings Code and test clean-up around string-list API. Expecting a reroll. cf. <aA8vSPKdznjzBf6W@xxxxxx> source: <aAetW0dan8S3Fljq@ArchLinux> * tb/midx-avoid-cruft-packs (2025-04-15) 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. Comments? source: <cover.1744757204.git.me@xxxxxxxxxxxx> * tb/pack-bitmap-lookup-tables (2025-04-17) 4 commits - t/perf/lib-bitmap.sh: avoid test_perf during setup - t/perf: avoid testing bitmaps without lookup table - p5312: removed duplicate performance test script - pack-bitmap: write lookup table extension by default Enable lookup tables extension in pack bitmap (and midx bitmap) by default. Comments? source: <cover.1744924321.git.me@xxxxxxxxxxxx> * ps/meson-build-perf-bench (2025-04-28) 5 commits (merged to 'next' on 2025-04-28 at f563542bfd) + meson: wire up benchmarking options + meson: wire up benchmarks + t/perf: fix benchmarks with out-of-tree builds + t/perf: use configured PERL_PATH + t/perf: fix benchmarks with alternate repo formats The build procedure based on Meson learned to drive the benchmarking tests. Will merge to 'master'. source: <20250428-pks-meson-benchmarks-v5-0-5010dd014d1d@xxxxxx> * kn/meson-hdr-check (2025-04-23) 7 commits (merged to 'next' on 2025-04-29 at c925448238) + makefile/meson: add 'check-headers' as alias for 'hdr-check' + meson: add support for 'hdr-check' + meson: rename 'third_party_sources' to 'third_party_excludes' + meson: move headers definition from 'contrib/coccinelle' + coccinelle: meson: rename variables to be more specific + ci/github: install git before checking out the repository + Merge branch 'es/meson-build-skip-coccinelle' into kn/meson-hdr-check Add an equivalent to "make hdr-check" target to meson based builds. Will merge to 'master'. source: <20250423-505-wire-up-sparse-via-meson-v5-0-d1e2be4b2078@xxxxxxxxx> * pb/status-rebase-fixes (2025-03-28) 4 commits - wt-status: suggest 'git rebase --continue' to conclude 'merge' instruction - wt-status: also abbreviate 'merge' and 'fixup -C' lines during rebase - SQUASH??? - <CAPig+cS92W_gYuNsaTvQxiP3xBK7Wpg0__uVkgAU1x0OFJUZgQ@xxxxxxxxxxxxxx> - rebase -r: do create merge commit after empty resolution A few fixes around "git status" while "git rebase" is running, plus a corner case bug fix for "git rebase -r". Expecting a (small and hopefully final) clarifying reroll. cf. <c2f93d99-2f4d-ee6d-7087-42320c6df0f2@xxxxxx> cf. <e9700234-324d-dc63-d91e-9b8f36fabc79@xxxxxxxxx> source: <pull.1897.git.1743181401.gitgitgadget@xxxxxxxxx> * md/userdiff-bash-shell-function (2025-04-01) 1 commit - userdiff: extend Bash pattern to cover more shell function forms The userdiff pattern for shell scripts has been updated to cope with more bash-isms. Comments? source: <20250330134018.9662-2-dhar61595@xxxxxxxxx> * sc/bundle-uri-use-all-refs-in-bundle (2025-04-25) 2 commits - bundle-uri: add test for bundle-uri clones with tags - bundle-uri: copy all bundle references ino the refs/bundle space Bundle-URI feature did not use refs recorded in the bundle other than normal branches as anchoring points to optimize the follow-up fetch during "git clone"; now it is told to utilize all. Ready? source: <pull.1897.v4.git.git.1745587067.gitgitgadget@xxxxxxxxx> * ds/path-walk-2 (2025-03-25) 13 commits - 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. Will merge to 'next'? cf. <aBVLC57bMJKjygyi@nand.local> source: <pull.1819.v2.git.1742829769.gitgitgadget@xxxxxxxxx> * ib/diff-S-G-with-longhand (2025-02-12) 10 commits - diff: docs: Use --patch-{grep,modifies} over -G/-S - diff: --pickaxe-{all,regex} help: Add --patch-{grep,modifies} - diff: test: Use --patch-{grep,modifies} over -G/-S - completion: Support --patch-{grep,modifies} - diff: --patch-{grep,modifies} arg names for -G and -S - docs: gitdiffcore: -G and -S: Use regex/string placeholders - diff: short help: Add -G and --pickaxe-grep - diff: short help: Correct -S description - diff: -G description: Correct copy/paste error - t/t4209-log-pickaxe: Naming typo: -G takes a regex The commands in the "diff" family learned longhands for "-S" and "-G" options. Expecting a reroll. source: <20250212032657.1807939-1-illia.bobyr@xxxxxxxxx> * ej/cat-file-remote-object-info (2025-02-24) 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. Expecting a reroll. cf. <CAN2LT1Cc-UaUpabqcGascicR3nk6ZdFythamKje33Orhy5WoNA@xxxxxxxxxxxxxx> source: <20250221190451.12536-1-eric.peijian@xxxxxxxxx>