{"thread":{"id":"64699","subject":"What's cooking in git.git (Dec 2025, #09)","startedAt":"2025-12-30T13:47:48Z","lastAt":"2025-12-30T14:43:41Z","messageCount":3,"participants":["Junio C Hamano","Kristoffer Haugsbakk","K Jayatheerth"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"532829","messageId":"xmqqa4z0f5dq.fsf@gitster.g","threadId":"64699","inReplyTo":null,"subject":"What's cooking in git.git (Dec 2025, #09)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-12-30T13:47:45Z","receivedAt":"2025-12-30T13:47:48Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking in my tree.  Commits\nprefixed with '+' are in 'next' (being in 'next' is a sign that a\ntopic is stable enough to be used and are candidate to be in a\nfuture release).  Commits prefixed with '-' are only in 'seen', and\naren't considered \"accepted\" at all and may be annotated with an URL\nto a message that raises issues but they are no means exhaustive.  A\ntopic without enough support may be discarded after a long period of\nno activity (of course they can be resubmit when new interests\narise).\n\nCopies of the source code to Git live in many repositories, and the\nfollowing is a list of the ones I push into or their mirrors.  Some\nrepositories have only a subset of branches.\n\nWith maint, master, next, seen, todo:\n\n\tgit://git.kernel.org/pub/scm/git/git.git/\n\tgit://repo.or.cz/alt-git.git/\n\thttps://kernel.googlesource.com/pub/scm/git/git/\n\thttps://github.com/git/git/\n\thttps://gitlab.com/git-scm/git/\n\nWith all the integration branches and topics broken out:\n\n\thttps://github.com/gitster/git/\n\nEven though the preformatted documentation in HTML and man format\nare not sources, they are published in these repositories for\nconvenience (replace \"htmldocs\" with \"manpages\" for the manual\npages):\n\n\tgit://git.kernel.org/pub/scm/git/git-htmldocs.git/\n\thttps://github.com/gitster/git-htmldocs.git/\n\nRelease tarballs are available at:\n\n\thttps://www.kernel.org/pub/software/scm/git/\n\n--------------------------------------------------\n[Graduated to 'master']\n\n* dk/ci-rust-fix (2025-12-18) 2 commits\n  (merged to 'next' on 2025-12-22 at 5f7e5b040b)\n + rust: build correctly without GNU sed\n + Merge branch 'ps/ci-rust' into dk/ci-rust-fix\n\n Build fix.\n source: <a33f4e5118938300bcd5b2991feeee855a1c8f86.1766100330.git.ben.knoble+github@gmail.com>\n\n\n* gf/clear-path-cache-cleanup (2025-12-18) 1 commit\n  (merged to 'next' on 2025-12-22 at 748d7c2c93)\n + repository: remove duplicate free of cache->squash_msg\n\n Code clean-up.\n source: <pull.2132.v2.git.git.1766072952115.gitgitgadget@gmail.com>\n\n\n* gf/maintenance-is-needed-fix (2025-12-18) 1 commit\n  (merged to 'next' on 2025-12-22 at a84d7e8a32)\n + refs: dereference the value of the required pointer\n\n Brown-paper-bag fix to a recently graduated\n 'kn/maintenance-is-needed' topic.\n source: <pull.2130.git.git.1766074249443.gitgitgadget@gmail.com>\n\n\n* jc/object-read-stream-fix (2025-12-17) 2 commits\n  (merged to 'next' on 2025-12-23 at b26856ce64)\n + odb: do not use \"blank\" substitute for NULL\n + Merge branch 'ps/object-read-stream' into jc/object-read-stream-fix\n (this branch is used by ps/read-object-info-improvements.)\n\n Fix a performance regression in recently graduated topic.\n source: <xmqqpl8cxy0j.fsf@gitster.g>\n\n\n* jk/test-curl-updates (2025-12-18) 2 commits\n  (merged to 'next' on 2025-12-23 at ef92594ee8)\n + t5563: add missing end-of-line in HTTP header\n + t5551: handle trailing slashes in expected cookies output\n\n Update HTTP tests to adjust for changes in curl 8.18.0\n source: <20251218121120.GA3252258@coredump.intra.peff.net>\n\n\n* js/test-func-comment-fix (2025-12-18) 1 commit\n  (merged to 'next' on 2025-12-22 at 5eadd4ae77)\n + test_detect_ref_format: fix comment\n\n Comment fix.\n source: <pull.2019.git.1766071259531.gitgitgadget@gmail.com>\n\n\n* js/test-symlink-windows (2025-12-17) 10 commits\n  (merged to 'next' on 2025-12-22 at 3eaa789d0d)\n + t7800: work around the MSYS path conversion on Windows\n + t6423: introduce Windows-specific handling for symlinking to /dev/null\n + t1305: skip symlink tests that do not apply to Windows\n + t1006: accommodate for symlink support in MSYS2\n + t0600: fix incomplete prerequisite for a test case\n + t0301: another fix for Windows compatibility\n + t0001: handle `diff --no-index` gracefully\n + mingw: special-case `open(symlink, O_CREAT | O_EXCL)`\n + apply: symbolic links lack a \"trustable executable bit\"\n + t9700: accommodate for Windows paths\n (this branch is used by js/prep-symlink-windows and js/symlink-windows.)\n\n Prepare test suite for Git for Windows that supports symbolic\n links.\n source: <pull.2009.v4.git.1765981126.gitgitgadget@gmail.com>\n\n\n* jt/doc-rev-list-filter-provided-objects (2025-12-15) 1 commit\n  (merged to 'next' on 2025-12-22 at 31970a567d)\n + docs: clarify git-rev-list(1) --filter behavior\n\n Document \"rev-list --filter-provided-objects\" better.\n source: <20251215200512.2694155-1-jltobler@gmail.com>\n\n\n* jt/repo-struct-more-objinfo (2025-12-17) 7 commits\n  (merged to 'next' on 2025-12-22 at d04904c31c)\n + builtin/repo: add object disk size info to structure table\n + builtin/repo: add disk size info to keyvalue stucture output\n + builtin/repo: add inflated object info to structure table\n + builtin/repo: add inflated object info to keyvalue structure output\n + builtin/repo: humanise count values in structure output\n + strbuf: split out logic to humanise byte values\n + builtin/repo: group per-type object values into struct\n\n More object database related information are shown in \"git repo\n structure\" output.\n source: <20251217175404.37963-1-jltobler@gmail.com>\n\n\n* mh/doc-core-attributesfile (2025-12-17) 1 commit\n  (merged to 'next' on 2025-12-22 at 5d68c3ef97)\n + docs: note the type of core.attributesfile\n\n Doc update.\n source: <20251217195917.25710-1-matthewhughes934@gmail.com>\n\n\n* ps/repack-avoid-noop-midx-rewrite (2025-12-10) 3 commits\n  (merged to 'next' on 2025-12-22 at 0d3b9de55c)\n + midx-write: skip rewriting MIDX with `--stdin-packs` unless needed\n + midx-write: extract function to test whether MIDX needs updating\n + midx: fix `BUG()` when getting preferred pack without a reverse index\n\n Even when there is no changes in the packfile and no need to\n recompute bitmaps, \"git repack\" recomputed and updated the MIDX\n file, which has been corrected.\n source: <20251210-pks-skip-noop-rewrite-v2-0-f813a9e44f28@pks.im>\n\n--------------------------------------------------\n[New Topics]\n\n* dd/t5403-modernise (2025-12-29) 1 commit\n - t5403: use test_path_is_file instead of test -f\n\n Test micro-clean-up.\n\n Will merge to 'next'.\n source: <20251229185737.2328-1-deveshigurgaon@gmail.com>\n\n\n* ds/diff-lazy-fetch-with-name-only-fix (2025-12-29) 1 commit\n - diff: avoid segfault with freed entries\n\n Running \"git diff\" with \"--name-only\" and other options that allows\n us not to look at the blob contents, while objects that are lazily\n fetched from a promisor remote, caused use-after-free, which has\n been corrected.\n\n Will merge to 'next'.\n source: <pull.2027.git.1767044697712.gitgitgadget@gmail.com>\n\n\n* en/fsck-snapshot-ref-state (2025-12-29) 1 commit\n - fsck: snapshot default refs before object walk\n\n \"git fsck\" used inconsistent set of refs to show a confused\n warning, which has been corrected.\n\n Will merge to 'next'?\n source: <pull.2026.git.1767035549378.gitgitgadget@gmail.com>\n\n\n* en/ort-recursive-d-f-conflict-fix (2025-12-29) 1 commit\n - merge-ort: fix corner case recursive submodule/directory conflict handling\n\n The ort merge machinery was hit an assertion failure in a history\n with criss-cross merges renamed a directory and a non-directory,\n which has been corrected.\n\n Will merge to 'next'.\n source: <pull.2023.git.1767033783800.gitgitgadget@gmail.com>\n\n\n* rs/tag-wo-the-repository (2025-12-28) 4 commits\n - tag: stop using the_repository\n - tag: support arbitrary repositories in parse_tag()\n - tag: support arbitrary repositories in gpg_verify_tag()\n - tag: use algo of repo parameter in parse_tag_buffer()\n\n Code clean-up.\n\n Will merge to 'next'.\n source: <20251228181051.68724-1-l.s.r@web.de>\n\n--------------------------------------------------\n[Cooking]\n\n* kh/replay-invalid-onto-advance (2025-12-22) 2 commits\n - t3650: add more regression tests for failure conditions\n - replay: die descriptively when invalid commit-ish\n\n Test coverage of \"git replay\" has been improved.\n\n Expecting a rework on the bottom patch.\n source: <CV_replay_die_descr.13f@msgid.xyz>\n\n\n* bc/checkout-error-message-fix (2025-12-24) 1 commit\n  (merged to 'next' on 2025-12-28 at d807c22e01)\n + checkout: quote invalid treeish in error message\n\n Message fix.\n\n Will merge to 'master'.\n source: <20251224203253.881129-1-sandals@crustytoothpaste.net>\n\n\n* cc/lop-filter-auto (2025-12-23) 9 commits\n - fetch-pack: wire up and enable auto filter logic\n - promisor-remote: keep advertised filter in memory\n - list-objects-filter-options: implement auto filter resolution\n - list-objects-filter-options: support 'auto' mode for --filter\n - doc: fetch: document `--filter=<filter-spec>` option\n - fetch: make filter_options local to cmd_fetch()\n - clone: make filter_options local to cmd_clone()\n - promisor-remote: allow a client to store fields\n - promisor-remote: refactor initialising field lists\n\n \"auto filter\" logic for large-object promisor remote.\n\n Comments?\n source: <20251223111113.47473-1-christian.couder@gmail.com>\n\n\n* rs/commit-stack (2025-12-24) 14 commits\n - commit-reach: use commit_stack\n - commit-graph: use commit_stack\n - commit: add commit_stack_grow()\n - shallow: use commit_stack\n - pack-bitmap-write: use commit_stack\n - commit: add commit_stack_init()\n - test-reach: use commit_stack\n - remote: use commit_stack for src_commits\n - remote: use commit_stack for sent_tips\n - remote: use commit_stack for local_commits\n - name-rev: use commit_stack\n - midx: use commit_stack\n - log: use commit_stack\n - revision: export commit_stack\n\n Code clean-up, unifying various hand-rolled \"list of commit\n objects\" and use the commit_stack API.\n\n Will merge to 'next'?\n source: <20251224170327.68049-1-l.s.r@web.de>\n\n\n* rs/parse-config-expiry-simplify (2025-12-27) 1 commit\n  (merged to 'next' on 2025-12-30 at 138de1df67)\n + config: use git_parse_int() in git_config_get_expiry_in_days()\n\n Code clean-up.\n\n Will merge to 'master'.\n source: <1bd3c7f3-fcf6-4d8e-aa38-c15e3d51ce4c@web.de>\n\n\n* rs/show-branch-prio-queue (2025-12-25) 1 commit\n  (merged to 'next' on 2025-12-28 at 99d21acd7b)\n + show-branch: use prio_queue\n\n Code clean-up.\n\n Will merge to 'master'.\n source: <70ed751e-fc3c-4cb4-a4fd-26094a9f622e@web.de>\n\n\n* tt/receive-pack-oo-namespace-symref-fix (2025-12-27) 1 commit\n - receive-pack: fix crash on out-of-namespace symref\n\n \"git receive-pack\", when namespace is involved, segfaulted when a\n symbolic ref cross the namespace boundary.\n\n Comments?\n source: <pull.2144.git.git.1766850014289.gitgitgadget@gmail.com>\n\n\n* sb/bundle-uri-without-uri (2025-12-19) 1 commit\n - bundle-uri: validate that bundle entries have a uri\n\n Diagnose invalid bundle-URI that lack the URI entry, instead of\n crashing.\n\n Will merge to 'next'?\n source: <pull.2134.v2.git.git.1766160106521.gitgitgadget@gmail.com>\n\n\n* sb/doc-worktree-prune-expire-improvement (2025-12-19) 2 commits\n - worktree: use 'prune' instead of 'expire' in help text\n - worktree: clarify --expire applies to missing worktrees\n\n The help text and the documentation for the \"--expire\" option of\n \"git worktree [list|prune]\" have been improved.\n\n Expecting a reroll.\n source: <pull.2135.v2.git.git.1766168169.gitgitgadget@gmail.com>\n\n\n* ja/doc-synopsis-style-more (2025-12-20) 5 commits\n - doc: convert git-remote to synopsis style\n - doc: convert git stage to use synopsis block\n - doc: convert git-status tables to AsciiDoc format\n - doc: convert git-status to synopsis style\n - doc: fix t0450-txt-doc-vs-help to select only first synopsis block\n\n More doc style updates.\n\n Will merge to 'next'?\n source: <pull.2020.git.1766258187.gitgitgadget@gmail.com>\n\n\n* js/symlink-windows (2025-12-17) 19 commits\n - mingw: special-case index entries for symlinks with buggy size\n - mingw: emulate `stat()` a little more faithfully\n - mingw: try to create symlinks without elevated permissions\n - mingw: add support for symlinks to directories\n - mingw: implement basic `symlink()` functionality (file symlinks only)\n - mingw: implement `readlink()`\n - mingw: allow `mingw_chdir()` to change to symlink-resolved directories\n - mingw: support renaming symlinks\n - mingw: handle symlinks to directories in `mingw_unlink()`\n - mingw: add symlink-specific error codes\n - mingw: change default of `core.symlinks` to false\n - mingw: factor out the retry logic\n - mingw: compute the correct size for symlinks in `mingw_lstat()`\n - mingw: teach dirent about symlinks\n - mingw: let `mingw_lstat()` error early upon problems with reparse points\n - mingw: drop the separate `do_lstat()` function\n - mingw: implement `stat()` with symlink support\n - mingw: don't call `GetFileAttributes()` twice in `mingw_lstat()`\n - Merge branch 'js/prep-symlink-windows' into js/symlink-windows\n (this branch uses js/prep-symlink-windows.)\n\n Upstream symbolic link support on Windows from Git-for-Windows.\n\n Expecting review responses.\n cf. <19030791-dafa-4a63-985b-9cdf423bfd1b@kdbg.org>\n source: <pull.2018.git.1765980535.gitgitgadget@gmail.com>\n\n\n* pc/lockfile-pid (2025-12-17) 1 commit\n - lockfile: add PID file for debugging stale locks\n\n Allow recording process ID of the process that holds the lock next\n to a lockfile for diagnosis.\n source: <pull.2011.v2.git.1765997966593.gitgitgadget@gmail.com>\n\n\n* js/neuter-sideband (2025-12-17) 4 commits\n - sideband: add options to allow more control sequences to be passed through\n - sideband: do allow ANSI color sequences by default\n - sideband: introduce an \"escape hatch\" to allow control characters\n - sideband: mask control characters\n\n Invalidate control characters in sideband messages, to avoid\n terminal state getting messed up.\n\n Comments?\n cf. <aS-D5lD2Kk6BHNIl@fruit.crustytoothpaste.net>\n source: <pull.1853.v2.git.1765981422.gitgitgadget@gmail.com>\n\n\n* ps/read-object-info-improvements (2025-12-18) 8 commits\n - packfile: drop repository parameter from `packed_object_info()`\n - packfile: skip unpacking object header for disk size requests\n - packfile: disentangle return value of `packed_object_info()`\n - packfile: always populate pack-specific info when reading object info\n - packfile: extend `is_delta` field to allow for \"unknown\" state\n - packfile: always declare object info to be OI_PACKED\n - object-file: always set OI_LOOSE when reading object info\n - Merge branch 'jc/object-read-stream-fix' into ps/read-object-info-improvements\n\n The object-info API has been cleaned up.\n\n Comments?\n source: <20251218-b4-pks-odb-read-object-info-improvements-v2-0-62e3e49072bc@pks.im>\n\n\n* tb/macos-iconv-workarounds (2025-12-15) 6 commits\n . config.mak.uname: activate ICONV_RESTART_RESET if needed\n . Makefile: make all darwin into config.mak.uname\n . utf8.c: prepare workaround for iconv under macOS 14/15\n . Merge branch 'rs/macos-iconv-workaround' into tb/macos-iconv-workarounds\n . config.mak.uname: use iconv from Homebrew on macOS\n . Makefile: add NO_HOMEBREW\n\n The iconv library on macOS fails to correctly handle stateful\n ISO/IEC 2022 encoded strings.  Work it around instead of replacing\n it wholesale from homebrew.\n\n RFC.\n needs to be debased from older rs/macos-iconv-workaround topic.\n source: <20251215204524.1946518-1-tboegi@web.de>\n\n\n* js/prep-symlink-windows (2025-12-16) 6 commits\n - trim_last_path_component(): avoid hard-coding the directory separator\n - strbuf_readlink(): support link targets that exceed PATH_MAX\n - strbuf_readlink(): avoid calling `readlink()` twice in corner-cases\n - init: do parse _all_ core.* settings early\n - mingw: do resolve symlinks in `getcwd()`\n - Merge branch 'js/test-symlink-windows' into js/prep-symlink-windows\n (this branch is used by js/symlink-windows.)\n\n Further preparation to upstream symbolic link support on Windows.\n\n Expecting review responses.\n cf. <xmqqcy3wh8d1.fsf@gitster.g>\n source: <pull.2017.git.1765899229.gitgitgadget@gmail.com>\n\n\n* ap/http-probe-rpc-use-auth (2025-11-12) 1 commit\n - remote-curl: Use auth for probe_rpc() requests too\n\n source: <20251112223722.376330-1-aplattner@nvidia.com>\n\n\n* ps/packfile-store-in-odb-source (2025-12-17) 12 commits\n - packfile: move MIDX into packfile store\n - packfile: refactor `find_pack_entry()` to work on the packfile store\n - packfile: inline `find_kept_pack_entry()`\n - packfile: only prepare owning store in `packfile_store_prepare()`\n - packfile: only prepare owning store in `packfile_store_get_packs()`\n - packfile: move packfile store into object source\n - packfile: refactor misleading code when unusing pack windows\n - packfile: refactor kept-pack cache to work with packfile stores\n - packfile: pass source to `prepare_pack()`\n - packfile: create store via its owning source\n - Merge branch 'ps/odb-misc-fixes' into ps/packfile-store-in-odb-source\n - Merge branch 'ps/object-read-stream' into ps/packfile-store-in-odb-source\n (this branch uses ps/odb-misc-fixes.)\n\n The packfile_store data structure is moved from object store to odb\n source.\n\n Comments?\n source: <20251218-b4-pks-pack-store-via-source-v2-0-62849007ce21@pks.im>\n\n\n* rs/macos-iconv-workaround (2025-12-24) 2 commits\n  (merged to 'next' on 2025-12-28 at 94ed776719)\n + macOS: use iconv from Homebrew if needed and present\n + macOS: make Homebrew use configurable\n\n Workaround the \"iconv\" shipped as part of macOS, which is broken\n handling stateful ISO/IEC 2022 encoded strings.\n\n Will merge to 'master'.\n source: <ce030c90-f635-42b5-82e1-814cd4c29505@web.de>\n\n\n* lo/repo-info-keys (2025-12-09) 3 commits\n - repo: add new flag --keys to git-repo-info\n - repo: add a default output format to enum output_format\n - Merge branch 'lo/repo-struct-z' into lo/repo-info-keys\n\n \"git repo info\" learns \"--keys\" action to list known keys.\n\n Comments?\n source: <20251209194616.61620-1-lucasseikioshiro@gmail.com>\n\n\n* sb/doc-update-ref-markup-fix (2025-12-08) 1 commit\n - doc: fix `update-ref` `symref-create` formatting\n\n Doc mark-up fix.\n\n Will merget to 'next'.\n source: <pull.2123.git.git.1765261419802.gitgitgadget@gmail.com>\n\n\n* ps/odb-misc-fixes (2025-12-10) 3 commits\n - odb: properly close sources before freeing them\n - builtin/gc: fix condition for whether to write commit graphs\n - Merge branch 'ps/object-source-management' into ps/odb-misc-fixes\n (this branch is used by ps/packfile-store-in-odb-source.)\n\n Miscellaneous fixes on object database layer.\n\n Comments?\n source: <20251211-odb-related-fixes-v2-0-bdf875ce51fc@pks.im>\n\n\n* ps/clar-integers (2025-12-06) 3 commits\n - gitattributes: disable blank-at-eof errors for clar test expectations\n - t/unit-tests: demonstrate use of integer comparison assertions\n - t/unit-tests: update clar to 39f11fe\n\n Import newer version of \"clar\", unit testing framework.\n\n Comments?\n source: <20251206-b4-pks-clar-update-v2-0-9a14b10c1a36@pks.im>\n\n\n* tb/incremental-midx-part-3.2 (2025-12-06) 17 commits\n - midx: enable reachability bitmaps during MIDX compaction\n - midx: implement MIDX compaction\n - t/helper/test-read-midx.c: plug memory leak when selecting layer\n - midx-write.c: factor fanout layering from `compute_sorted_entries()`\n - midx-write.c: enumerate `pack_int_id` values directly\n - midx-write.c: extract `fill_pack_from_midx()`\n - midx-write.c: introduce `midx_pack_perm()` helper\n - git-compat-util.h: introduce `u32_add()`\n - midx: do not require packs to be sorted in lexicographic order\n - midx-write.c: introduce `struct write_midx_opts`\n - midx-write.c: don't use `pack_perm` when assigning `bitmap_pos`\n - t/t5319-multi-pack-index.sh: fix copy-and-paste error in t5319.39\n - git-multi-pack-index(1): align SYNOPSIS with 'git multi-pack-index -h'\n - git-multi-pack-index(1): remove non-existent incompatibility\n - builtin/multi-pack-index.c: make '--progress' a common option\n - midx: split `get_midx_checksum()` by adding `get_midx_hash()`\n - midx: mark `get_midx_checksum()` arguments as const\n\n Further work on incremental repacking using MIDX/bitmap\n\n Expecting a reroll.\n cf. <aTd+fxpflcLuJXDn@nand.local>\n source: <cover.1765053054.git.me@ttaylorr.com>\n\n\n* yc/histogram-hunk-shift-fix (2025-12-06) 1 commit\n - xdiff: re-diff shifted change groups when using histogram algorithm\n\n The final clean-up phase of the diff output could turn the result of\n histogram diff algorithm suboptimal, which has been corrected.\n\n Comments?\n source: <pull.2120.git.git.1765054287938.gitgitgadget@gmail.com>\n\n\n* jk/parse-int (2025-11-30) 5 commits\n - fsck: use parse_unsigned_from_buf() for parsing timestamp\n - cache-tree: use parse_int_from_buf()\n - parse: add functions for parsing from non-string buffers\n - parse: prefer bool to int for boolean returns\n - Merge branch 'jk/asan-bonanza' into jk/parse-int\n\n Introduce a more robust way to parse a decimal integer stored in a\n piece of memory that is not necessarily terminated with NUL (which\n Asan strict-string-check complains even when use of strtol() is\n safe due to varified existence of whitespace after the digits).\n\n Expecting a reroll.\n cf. <aTFvKOHlm4zfT9dU@pks.im>\n cf. <4d83375b-76e2-4420-80dd-6a04d3201532@gmail.com>\n source: <20251130131351.GA198697@coredump.intra.peff.net>\n\n\n* tc/last-modified-options-cleanup (2025-11-26) 4 commits\n - fixup! last-modified: document option --max-depth\n - last-modified: document how depth is handled better\n - last-modified: document option --max-depth\n - last-modified: handle and document NUL termination\n\n The \"-z\" and \"--max-depth\" documentation (and implementation of\n \"-z\") in the \"git last-modified\" command have been updated.\n\n Expecting a reroll.\n source: <20251126-toon-last-modified-zzzz-v1-0-608350df0caa@iotcl.com>\n\n\n* pw/replay-drop-empty (2025-12-18) 2 commits\n - replay: drop commits that become empty\n - Merge branch 'ps/history' into pw/replay-drop-empty\n (this branch uses ps/history.)\n\n \"git replay\" is taught to drop commits that become empty (not the\n ones that are empty in the original).\n\n On hold, until the base topic gains consensus and stabilizes.\n source: <375adc4e941f3bb22a2b12ee26a083951ed724dd.1766076625.git.phillip.wood@dunelm.org.uk>\n\n\n* sp/shallow-time-boundary (2025-11-23) 1 commit\n - shallow: set borders which are all reachable after clone shallow since\n\n The set of shallow boundary \"git clone --shallow-since\" leaves\n contained commits that are not on the boundary, which has been\n corrected.\n\n Comments?\n source: <pull.2107.v2.git.git.1763926552033.gitgitgadget@gmail.com>\n\n\n* kn/ref-location (2025-12-01) 2 commits\n - refs: add GIT_REF_URI to specify reference backend and directory\n - refs: support obtaining ref_store for given dir\n\n A mechanism to specify what reference backend to use and store\n references in which directory is introduced, which would likely to\n be useful during ref migration.\n\n Comments?\n source: <20251201-kn-alternate-ref-dir-v3-0-c11b946bc2fa@gmail.com>\n\n\n* dw/config-global-list (2025-10-09) 4 commits\n - config: keep bailing on unreadable global files\n - config: read global scope via config_sequence\n - config: test home and xdg files in `list --global`\n - cleanup_path: force forward slashes on Windows\n\n \"git config --list --global\", unlike \"git config --list\", did not\n consult both of the two possible per-user sources of the\n configuration files, i.e. $HOME/.gitconfig and the XDG one, which\n has been corrected.\n\n Expecting a reroll.\n cf. <20251122020047.GB3947@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net>\n source: <pull.1938.git.1760058849.gitgitgadget@gmail.com>\n\n\n* lc/rebase-trailer (2025-11-05) 4 commits\n - rebase: support --trailer\n - trailer: append trailers in-process and drop the fork to `interpret-trailers`\n - trailer: move process_trailers to trailer.h\n - interpret-trailers: factor out buffer-based processing to process_trailers()\n\n Refactor code paths to run \"interpret-trailers\" from \"git\n commit/tag\" and use it in \"git rebase\".\n\n Expecting a reroll.\n cf. <19a8fe42354.3909481a3912041.7970296104893780556@linux.beauty>\n source: <20251105142944.73061-1-me@linux.beauty>\n\n\n* jc/exclude-with-gitignore (2025-11-04) 1 commit\n - dir.c: do not be fooled by :(exclude) pathspec elements\n\n \"git add ':(exclude)foo.o'\" is clearly a request not to add 'foo.o',\n but the command complained about listing an ignored path foo.o on\n the command line, which has been corrected.\n\n Comments?\n source: <xmqqtsz9o3cn.fsf@gitster.g>\n\n\n* bc/sha1-256-interop-02 (2025-11-17) 15 commits\n - object-file-convert: always make sure object ID algo is valid\n - rust: add a small wrapper around the hashfile code\n - rust: add a new binary object map format\n - rust: add functionality to hash an object\n - rust: add a build.rs script for tests\n - hash: expose hash context functions to Rust\n - write-or-die: add an fsync component for the object map\n - csum-file: define hashwrite's count as a uint32_t\n - rust: add additional helpers for ObjectID\n - hash: add a function to look up hash algo structs\n - rust: add a hash algorithm abstraction\n - rust: add a ObjectID struct\n - hash: use uint32_t for object_id algorithm\n - conversion: don't crash when no destination algo\n - repository: require Rust support for interoperability\n\n The code to maintain mapping between object names in multiple hash\n functions is being added, written in Rust.\n source: <20251117221621.2863243-1-sandals@crustytoothpaste.net>\n\n\n* ar/run-command-hook (2025-12-26) 11 commits\n  (merged to 'next' on 2025-12-28 at 048cdffe21)\n + receive-pack: convert receive hooks to hook API\n + receive-pack: convert update hooks to new API\n + hooks: allow callers to capture output\n + run-command: allow capturing of collated output\n + hook: allow overriding the ungroup option\n + reference-transaction: use hook API instead of run-command\n + transport: convert pre-push to hook API\n + hook: convert 'post-rewrite' hook in sequencer.c to hook API\n + hook: provide stdin via callback\n + run-command: add stdin callback for parallelization\n + run-command: add first helper for pp child states\n\n Use hook API to replace ad-hoc invocation of hook scripts with the\n run_command() API.\n\n Will merge to 'master'.\n source: <20251226122334.16687-1-adrian.ratiu@collabora.com>\n\n\n* je/doc-reset (2025-12-18) 4 commits\n - doc: git-reset: clarify `git reset <pathspec>`\n - doc: git-reset: clarify `git reset [mode]`\n - doc: git-reset: clarify intro\n - doc: git-reset: reorder the forms\n\n Documentation updates.\n\n Will merge to 'next'?\n source: <cover.1766103827.git.ben.knoble+github@gmail.com>\n\n\n* ps/history (2025-12-03) 13 commits\n - builtin/history: implement \"split\" subcommand\n - cache-tree: allow writing in-memory index as tree\n - add-patch: allow disabling editing of hunks\n - add-patch: add support for in-memory index patching\n - add-patch: remove dependency on \"add-interactive\" subsystem\n - add-patch: split out `struct interactive_options`\n - add-patch: split out header from \"add-interactive.h\"\n - builtin/history: implement \"reword\" subcommand\n - builtin: add new \"history\" command\n - replay: stop using `the_repository`\n - replay: extract logic to pick commits\n - wt-status: provide function to expose status for trees\n - Merge branch 'pw/replay-exclude-gpgsig-fix' into ps/history\n (this branch is used by pw/replay-drop-empty.)\n\n \"git history\" history rewriting UI.\n\n What's the status of this topic?\n source: <20251203-b4-pks-history-builtin-v7-0-9e9f849bfd0e@pks.im>\n\n\n* ms/doc-worktree-side-by-side (2025-10-10) 2 commits\n - doc: git-worktree: Add side by side branch checkout example\n - doc: git-worktree: Link to examples\n\n Document \"git worktree add\" and use of out-of-tree worktrees with\n examples.\n\n Expecting a reroll.\n cf. <CAPig+cSNesf0UwS4=Bxe-Qn+G9y3YYPyOK+7y3q8QJk+o7jaVg@mail.gmail.com>\n source: <a203b35538847f3c9358a5ae26fb4ebea5734cfc.1759420102.git.msuchanek@suse.de>\n\n\n* ar/submodule-gitdir-tweak (2025-12-20) 11 commits\n - submodule: detect conflicts with existing gitdir configs\n - submodule: hash the submodule name for the gitdir path\n - submodule: fix case-folding gitdir filesystem collisions\n - submodule--helper: fix filesystem collisions by encoding gitdir paths\n - builtin/credential-store: move is_rfc3986_unreserved to url.[ch]\n - submodule--helper: add gitdir migration command\n - submodule: allow runtime enabling extensions.submodulePathConfig\n - submodule: introduce extensions.submodulePathConfig\n - builtin/submodule--helper: add gitdir command\n - submodule: always validate gitdirs inside submodule_name_to_gitdir\n - submodule--helper: use submodule_name_to_gitdir in add_submodule\n\n Avoid local submodule repository directory paths overlapping with\n each other by encoding submodule names before using them as path\n components.\n\n Comments?\n source: <20251220101528.1227487-1-adrian.ratiu@collabora.com>\n\n--------------------------------------------------\n[Discarded]\n\n* wm/complete-git-short-opts (2025-11-26) 1 commit\n - completion: complete \"git -<TAB>\" with short options\n\n The command line completion script (in contrib/) learned to\n complete \"git -<TAB>\" to give single-letter options like \"-C\".\n\n Will discard.  We do not complete single-letter options themselves.\n cf. <xmqqo6onjfwl.fsf@gitster.g>\n source: <pull.2100.v2.git.git.1764174391776.gitgitgadget@gmail.com>\n"},{"id":"532832","messageId":"460f1f96-4236-4d19-bdfa-6c86bad811c5@app.fastmail.com","threadId":"64699","inReplyTo":"xmqqa4z0f5dq.fsf@gitster.g","subject":"Re: What's cooking in git.git (Dec 2025, #09)","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2025-12-30T14:33:19Z","receivedAt":"2025-12-30T14:33:41Z","isPatch":false,"sender":{"key":"kristofferhaugsbakk@fastmail.com","avatar":null},"body":"On Tue, Dec 30, 2025, at 14:47, Junio C Hamano wrote:\n> * kh/replay-invalid-onto-advance (2025-12-22) 2 commits\n>  - t3650: add more regression tests for failure conditions\n>  - replay: die descriptively when invalid commit-ish\n>\n>  Test coverage of \"git replay\" has been improved.\n\nThe main change is a better error message when you give a bad argument\nto `--onto`.  The improved test coverage is secondary but related since\nthe coverage for simple die conditions (like bad `--onto` argument) is\npoor. (Like the mistake that you pointed out;[1] I was about to make the\nerror message for `--advance` slightly worse. But the test for “argument\nto --advance must be a reference” will make it harder for me to make\nthat mistake in the future.)\n\nThe second version is coming now.\n\n🔗 1: https://lore.kernel.org/git/xmqqpl85pb7k.fsf@gitster.g/\n\n>\n>  Expecting a rework on the bottom patch.\n>  source: <CV_replay_die_descr.13f@msgid.xyz>\n"},{"id":"532835","messageId":"20251230144329.14869-1-jayatheerthkulkarni2005@gmail.com","threadId":"64699","inReplyTo":"xmqqa4z0f5dq.fsf@gitster.g","subject":"Re: What's cooking in git.git (Dec 2025, #09)","fromName":"K Jayatheerth","fromEmail":"jayatheerthkulkarni2005@gmail.com","sentAt":"2025-12-30T14:43:29Z","receivedAt":"2025-12-30T14:43:41Z","isPatch":false,"sender":{"key":"jayatheerthkulkarni2005@gmail.com","avatar":"https://avatars.githubusercontent.com/u/148841023?v=4"},"body":"The following patch [1] was about to be queued,\nI might have missed if something had changed\n\nbut I thought an email would be appropriate here.\n\n1-https://lore.kernel.org/git/xmqqldiplvyd.fsf@gitster.g/T/#mc3a7dc4cbe02d23e52bf938c800f579b49174a0b\n\nThank you\n\n- Jayatheerth\n"}]}