{"thread":{"id":"63903","subject":"What's cooking in git.git (Aug 2025, #01; Sun, 3)","startedAt":"2025-08-04T08:23:42Z","lastAt":"2025-08-06T18:34:06Z","messageCount":20,"participants":["Junio C Hamano","Patrick Steinhardt","Jeff King","D. Ben Knoble","Ben Knoble","Lucas Seiki Oshiro"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"523399","messageId":"xmqqms8fbilv.fsf@gitster.g","threadId":"63903","inReplyTo":null,"subject":"What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-04T08:23:40Z","receivedAt":"2025-08-04T08:23:42Z","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\nGit 2.51-rc0 preview release is planned to happen tomorrow, but no\npromises.\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* ag/imap-send-list-folders-doc (2025-07-22) 1 commit\n  (merged to 'next' on 2025-07-24 at d7db48890b)\n + docs: explain how to use `git imap-send --list` command to get a list of available folders\n\n Document recently added \"git imap-send --list\" with an example.\n source: <20250722114827.22493-1-gargaditya08@live.com>\n\n\n* cb/meson-avoid-broken-macos-pcre2 (2025-07-18) 1 commit\n  (merged to 'next' on 2025-07-24 at b8cea692a4)\n + meson: work around broken system PCRE2 dependency in macOS\n\n Build fix for macOS.\n source: <20250718170225.6063-1-carenas@gmail.com>\n\n\n* hl/test-helper-fd-close (2025-07-23) 4 commits\n  (merged to 'next' on 2025-07-28 at 1e63fd84fe)\n + test-delta: close output descriptor after use\n + test-delta: use strbufs to hold input files\n + test-delta: handle errors with die()\n + t/helper/test-truncate: close file descriptor after truncation\n\n A few file descriptors left unclosed upon program completion in a\n few test helper programs are now closed.\n source: <20250722174102.1876197-1-lhywkd22@gmail.com>\n source: <20250723235929.GB592873@coredump.intra.peff.net>\n\n\n* jc/ci-print-test-failures-fix (2025-07-16) 1 commit\n  (merged to 'next' on 2025-07-24 at a1924c981b)\n + ci: allow github-actions print test failures again\n\n CI fix.\n source: <xmqqa553alp1.fsf_-_@gitster.g>\n\n\n* jc/do-not-scan-argv-without-parsing (2025-07-21) 1 commit\n  (merged to 'next' on 2025-07-23 at 8e3db5dcca)\n + rev-list: update a NEEDSWORK comment\n\n Update a hard-to-read in-code NEEDSWORK comment.\n source: <xmqqecu9w4a5.fsf@gitster.g>\n\n\n* jc/document-test-balloons-in-flight (2025-07-23) 1 commit\n  (merged to 'next' on 2025-07-24 at c239410df9)\n + CodingGuidelines: document test balloons in flight\n\n To help our developers, document what C99 language features are\n being considered for adoption, in addition to what past experiments\n have already decided.\n source: <xmqqecu6n1pt.fsf@gitster.g>\n\n\n* jc/rev-list-info-cleanup (2025-07-18) 1 commit\n  (merged to 'next' on 2025-07-23 at 09282d051a)\n + rev-list: make \"struct rev_list_info\" static to the only user\n\n Move structure definition from unrelated header file to where it\n belongs.\n source: <xmqqa551127o.fsf@gitster.g>\n\n\n* jk/revision-no-early-output (2025-07-19) 1 commit\n  (merged to 'next' on 2025-07-23 at cfc20b3eb9)\n + revision: drop early output option\n\n Remove unsupported, unused, and unsupportable old option from \"git\n log\".\n source: <20250719070813.GA706382@coredump.intra.peff.net>\n\n\n* jk/unleak-reflog-expire-entry (2025-07-22) 1 commit\n  (merged to 'next' on 2025-07-23 at 1663299f09)\n + reflog: close leak of reflog expire entry\n\n Leakfix.\n source: <20250722-jk-fix-leak-reflog-expire-config-v4-1-b65a83551020@gmail.com>\n\n\n* kn/for-each-ref-skip (2025-07-24) 6 commits\n  (merged to 'next' on 2025-07-28 at c721b90bdc)\n + ref-cache: set prefix_state when seeking\n  (merged to 'next' on 2025-07-15 at 4ea3c74afd)\n + for-each-ref: introduce a '--start-after' option\n + ref-filter: remove unnecessary else clause\n + refs: selectively set prefix in the seek functions\n + ref-cache: remove unused function 'find_ref_entry()'\n + refs: expose `ref_iterator` via 'refs.h'\n (this branch is used by kn/for-each-ref-skip-updates.)\n\n \"git for-each-ref\" learns \"--start-after\" option to help\n applications that want to page its output.\n source: <20250715-306-git-for-each-ref-pagination-v5-0-852d5a2f56e1@gmail.com>\n\n\n* ly/pull-autostash (2025-07-20) 1 commit\n  (merged to 'next' on 2025-07-24 at dd85f09d69)\n + pull: add pull.autoStash config option\n\n \"git pull\" learned to pay attention to pull.autostash configuration\n variable, which overrides rebase/merge.autostash.\n source: <20250720124334.12045-1-yldhome2d2@gmail.com>\n\n\n* ow/rebase-verify-insn-fmt-before-initializing-state (2025-06-09) 1 commit\n  (merged to 'next' on 2025-07-28 at 561f172338)\n + rebase: write script before initializing state\n\n \"git rebase -i\" with bogus rebase.instructionFormat configuration\n failed to produce the todo file after recording the state files,\n leading to confused \"git status\"; this has been corrected.\n source: <20250609221055.136074-1-oystwa@gmail.com>\n\n\n* ps/object-store-midx (2025-07-15) 9 commits\n  (merged to 'next' on 2025-07-28 at a6727995ac)\n + midx: remove now-unused linked list of multi-pack indices\n + packfile: stop using linked MIDX list in `get_all_packs()`\n + packfile: stop using linked MIDX list in `find_pack_entry()`\n + packfile: refactor `get_multi_pack_index()` to work on sources\n + midx: stop using linked list when closing MIDX\n + packfile: refactor `prepare_packed_git_one()` to work on sources\n + midx: start tracking per object database source\n + Merge branch 'tb/midx-avoid-cruft-packs' into ps/object-store-midx\n + Merge branch 'ps/object-store' into ps/object-store-midx\n (this branch is used by ps/object-store-midx-dedup-info.)\n\n Redefine where the multi-pack-index sits in the object subsystem,\n which recently was restructured to allow multiple backends that\n support a single object source that belongs to one repository.  A\n midx does span mulitple \"object sources\".\n cf. <aIHoAiakZr5i2psM@pks.im>\n source: <20250715-b4-pks-midx-via-odb-alternate-v2-0-b0ca0b4b516e@pks.im>\n\n\n* sk/reftable-clarify-tests (2025-07-24) 10 commits\n  (merged to 'next' on 2025-07-24 at b3930223b7)\n + t/unit-tests: finalize migration of reftable-related tests\n + t/unit-tests: convert reftable stack test to use clar\n + t/unit-tests: convert reftable record test to use clar\n + t/unit-tests: convert reftable readwrite test to use clar\n + t/unit-tests: convert reftable table test to use clar\n + t/unit-tests: convert reftable pq test to use clar\n + t/unit-tests: convert reftable merged test to use clar\n + t/unit-tests: convert reftable block test to use clar\n + t/unit-tests: convert reftable basics test to use clar test framework\n + t/unit-tests: implement clar specific reftable test helper functions\n\n The reftable unit tests are now ported to the \"clar\" unit testing\n framework.\n cf. <aIJGNGxhkz9CESFu@pks.im>\n source: <20250724142837.67149-1-kuforiji98@gmail.com>\n\n--------------------------------------------------\n[New Topics]\n\n* jc/doc-release-vs-clear (2025-08-01) 1 commit\n  (merged to 'next' on 2025-08-01 at dd9490d97e)\n + CodingGuidelines: clarify that S_release() does not reinitialize\n\n Doc update.\n\n Will merge to 'master'.\n source: <xmqq7bznm0nk.fsf@gitster.g>\n\n\n* kh/doc-fast-import-historical (2025-08-01) 1 commit\n  (merged to 'next' on 2025-08-01 at 111a582ca4)\n + doc: fast-import: contextualize the hardware cost\n\n Doc update.\n\n Will merge to 'master'.\n source: <a9bc7547a27aab8bc2404caeb821b7f5c4c10d14.1754055658.git.code@khaugsbakk.name>\n\n\n* ms/meson-with-ancient-git-wo-ls-files-dedup (2025-08-01) 1 commit\n  (merged to 'next' on 2025-08-01 at f2b8c802ec)\n + meson: tolerate errors from git ls-files --deduplicate\n\n Build fix.\n\n Will merge to 'master'.\n source: <20250801162834.1923702-1-martin@martin.st>\n\n\n* pw/reftable-libgit2-cleanup (2025-08-01) 5 commits\n - reftable/stack: allow passing flags to `reftable_stack_add()`\n - reftable/stack: reorder code to avoid forward declarations\n - reftable/stack: fix compiler warning due to missing braces\n - reftable/writer: drop Git-specific `QSORT()` macro\n - reftable/writer: fix type used for number of records\n\n Code clean-ups.\n\n Comments?\n source: <20250801-pks-reftable-fixes-for-libgit2-v1-0-f446e1c33cb9@pks.im>\n\n\n* tc/diff-tree-max-depth (2025-07-29) 3 commits\n - diff: teach tree-diff a max-depth parameter\n - within_depth: fix return for empty path\n - combine-diff: zero memory used for callback filepairs\n\n \"git diff-tree\" learned \"--max-depth\" option.\n\n Comments?\n source: <20250729-toon-max-depth-v1-0-c177e39c40fb@iotcl.com>\n\n\n* dk/help-all (2025-08-03) 4 commits\n - builtin: also setup gently for --help-all\n - parse-options: refactor flags for usage_with_options_internal\n - t1517: fixup for ua/t1517-short-help-tests\n - Merge branch 'ua/t1517-short-help-tests' into dk/help-all\n (this branch uses ua/t1517-short-help-tests.)\n\n \"git cmd --help-all\" outside repository.\n\n Breaks t1517.296 under SANITIZE=leak?\n source: <20250803012613.54086-1-ben.knoble+github@gmail.com>\n\n\n* js/mingw-fixes (2025-08-03) 4 commits\n  (merged to 'next' on 2025-08-03 at a222fda8c6)\n + mingw: support Windows Server 2016 again\n + mingw_rename: support ReFS on Windows 2022\n + mingw: drop Windows 7-specific work-around\n + mingw_open_existing: handle directories better\n\n Windows fixes.\n\n Will merge to 'master'.\n source: <pull.1948.git.1754256318.gitgitgadget@gmail.com>\n\n\n* jt/archive-zip-deflate-fix (2025-08-02) 1 commit\n - archive: flush deflate stream until Z_STREAM_END\n\n The deflate codepath in \"git archive --format=zip\" had a\n longstanding bug coming from misuse of zlib API, which has been\n corrected.\n\n Will merge to 'next'.\n source: <20250802220803.95137-1-jltobler@gmail.com>\n\n\n* lc/rebase-trailer (2025-08-03) 2 commits\n - rebase: support --trailer\n - trailer: append trailers in-process and drop the fork to `interpret-trailers`\n\n source: <20250803150059.402017-1-me@linux.beauty>\n\n\n* ly/diff-name-only-with-diff-from-content (2025-08-03) 1 commit\n . diff: ensure consistent diff behavior with -I<regex> across output formats\n\n Various options to \"git diff\" that makes comparison ignore certain\n aspects of the differences (like \"space changes are ignored\",\n \"differences in lines that match these regular expressions are\n ignored\") did not work well with \"--name-only\" and friends.\n\n Breaks t3040 when merged to 'seen'.\n source: <20250803145155.57894-1-yldhome2d2@gmail.com>\n\n\n* rs/describe-with-prio-queue (2025-08-03) 2 commits\n - describe: use prio_queue_replace()\n - describe: use prio_queue\n\n \"git describe\" has been optimized by using better data structure.\n\n Will merge to 'next'?\n source: <36d5b59a-a99a-4a6f-b637-dfb0b760660f@web.de>\n\n--------------------------------------------------\n[Cooking]\n\n* ps/meson-clar-decls-fix (2025-07-29) 1 commit\n  (merged to 'next' on 2025-08-01 at 627c189731)\n + meson: ensure correct \"clar-decls.h\" header is used\n\n Build fix.\n\n Will merge to 'master'.\n source: <20250729-b4-pks-meson-unit-tests-stale-decls-v1-1-4a7770c84307@pks.im>\n\n\n* ps/object-store-midx-dedup-info (2025-07-29) 9 commits\n - midx: compute paths via their source\n - midx: stop duplicating info redundant with its owning source\n - midx: write multi-pack indices via their source\n - midx: load multi-pack indices via their source\n - midx: drop redundant `struct repository` parameter\n - odb: return newly created in-memory sources\n - odb: allow `odb_find_source()` to fail\n - odb: store locality in object database sources\n - Merge branch 'ps/object-store-midx' into ps/object-store-midx-dedup-info\n\n Further code clean-up for multi-pack-index code paths.\n\n Comments?\n source: <20250729-b4-pks-midx-deduplicate-source-info-v1-0-748db2eda3b5@pks.im>\n\n\n* ch/t7450-recursive-clone-test-fix (2025-07-30) 1 commit\n  (merged to 'next' on 2025-08-01 at 478a84a4a9)\n + t7450: inspect the correct path a broken code would write to\n\n Test fix.\n\n Will merge to 'master'.\n source: <pull.2022.v2.git.git.1753933780883.gitgitgadget@gmail.com>\n\n\n* jc/strbuf-split (2025-07-31) 13 commits\n - trace2: do not use strbuf_split*()\n - trace2: trim_trailing_newline followed by trim is a no-op\n - sub-process: do not use strbuf_split*()\n - environment: do not use strbuf_split*()\n - config: do not use strbuf_split()\n - notes: do not use strbuf_split*()\n - merge-tree: do not use strbuf_split*()\n - clean: do not use strbuf_split*() [part 2]\n - clean: do not pass the whole structure when it is not necessary\n - clean: do not use strbuf_split*() [part 1]\n - clean: do not pass strbuf by value\n - wt-status: avoid strbuf_split*()\n - Merge branch 'jc/string-list-split' into jc/strbuf-split\n (this branch uses jc/string-list-split.)\n\n Arrays of strbuf is often a wrong data structure to use, and\n strbuf_split*() family of functions that create them often have\n better alternatives.\n\n Update several code paths and replace strbuf_split*().\n\n Will merge to 'next'?\n source: <20250731225433.4028872-1-gitster@pobox.com>\n\n\n* jc/string-list-split (2025-08-01) 7 commits\n - string-list: split-then-remove-empty can be done while splitting\n - string-list: optionally omit empty string pieces in string_list_split*()\n - diff: simplify parsing of diff.colormovedws\n - string-list: optionally trim string pieces split by string_list_split*()\n - string-list: unify string_list_split* functions\n - string-list: align string_list_split() with its _in_place() counterpart\n - string-list: report programming error with BUG\n (this branch is used by jc/strbuf-split.)\n\n string_list_split*() family of functions have been extended to\n simplify common use cases.\n\n Will merge to 'next'?\n source: <20250801220423.1230969-1-gitster@pobox.com>\n\n\n* jc/test-hashmap-is-still-here (2025-07-30) 1 commit\n  (merged to 'next' on 2025-08-01 at 0d766613fc)\n + test-hashmap: document why it is no longer used but still there\n\n Comment fix.\n\n Will merge to 'master'.\n source: <xmqqwm7ptghz.fsf@gitster.g>\n\n\n* js/prompt-crlf-fix (2025-07-31) 1 commit\n  (merged to 'next' on 2025-08-01 at 365b52c100)\n + interactive: do strip trailing CRLF from input\n\n Interactive prompt code did not correctly strip CRLF from the end\n of line on Windows.\n\n Will merge to 'master'.\n source: <2295f183-038c-4751-b04d-0f1819b67b3a@kdbg.org>\n\n\n* am/xdiff-hash-tweak (2025-07-28) 3 commits\n - fixup! xdiff: optimize xdl_hash_record_verbatim\n - xdiff: optimize xdl_hash_record_verbatim\n - xdiff: refactor xdl_hash_record()\n\n Inspired by Ezekiel's recent effort to showcase Rust interface, the\n hash function implementation used to hash lines have been updated\n to the one used for ELF symbol lookup by Glibc.\n\n Comments?\n source: <20250728190520.10962-1-amonakov@ispras.ru>\n\n\n* cc/t9350-cleanup (2025-07-25) 1 commit\n  (merged to 'next' on 2025-07-29 at 3d39401b01)\n + t9350: redirect input to only fast-import\n\n Test clean-up.\n\n Will merge to 'master'.\n source: <20250725160536.2909011-1-christian.couder@gmail.com>\n\n\n* hy/blame-simplify-get-commit-info (2025-07-27) 1 commit\n  (merged to 'next' on 2025-07-29 at aa7b9a8ab6)\n + blame: remove parameter detailed in get_commit_info()\n\n Code simplification.\n\n Will merge to 'master'.\n source: <20250728035548.94277-1-hanyang.tony@bytedance.com>\n\n\n* kn/for-each-ref-skip-updates (2025-07-28) 5 commits\n  (merged to 'next' on 2025-07-29 at 6e97c528ef)\n + ref-filter: use REF_ITERATOR_SEEK_SET_PREFIX instead of '1'\n + t6302: add test combining '--start-after' with '--exclude'\n + for-each-ref: reword the documentation for '--start-after'\n + for-each-ref: fix documentation argument ordering\n + ref-cache: use 'size_t' instead of int for length\n\n Code clean-up.\n\n Will merge to 'master'.\n cf. <aIiAj8COJOAXv-xe@pks.im>\n source: <20250728-kn-small-cleanups-v2-0-d3021c8bf471@gmail.com>\n\n\n* ps/remote-rename-fix (2025-07-31) 7 commits\n - builtin/remote: only iterate through refs that are to be renamed\n - builtin/remote: rework how remote refs get renamed\n - builtin/remote: determine whether refs need renaming early on\n - builtin/remote: fix sign comparison warnings\n - refs: simplify logic when migrating reflog entries\n - refs: pass refname when invoking reflog entry callback\n - Merge branch 'ps/reflog-migrate-fixes' into ps/remote-rename-fix\n (this branch uses ps/reflog-migrate-fixes.)\n\n \"git remote rename origin upstream\" failed to move origin/HEAD to\n upstream/HEAD when origin/HEAD is unborn and performed other\n renames extremely inefficiently, which has been corrected.\n\n Will merge to 'next'?\n source: <20250731-pks-remote-rename-improvements-v2-0-dda6f083674d@pks.im>\n\n\n* rs/tighten-alias-help (2025-07-25) 1 commit\n  (merged to 'next' on 2025-08-01 at a0fb0696cd)\n + git: show alias info only with lone -h\n\n \"git -c alias.foo=bar foo -h baz\" reported \"'foo' is aliased to\n 'bar'\" and then went on to do \"git foo -h baz\", which was\n unexpected.  Tighten the rule so that alias expansion is reported\n only when \"-h\" is the sole option.\n\n Will merge to 'master'.\n source: <a35dc2bf-015c-472d-9528-6763f7aac180@web.de>\n\n\n* ag/send-email-imap-sent (2025-07-22) 1 commit\n - send-email: add ability to send a copy of sent emails to an IMAP folder\n\n \"git send-email\" learned to drive \"git imap-send\" to store already\n sent e-mails in an IMAP folder.\n\n A reroll (v4) exists.\n cf. <PN3PR01MB9597EC4C5DF97943587AEEB4B85FA@PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM>\n source: <da7cee769f25871ed3f934e3ec7f2cccf0a0420c.1753182534.git.gargaditya08@live.com>\n\n\n* en/ort-rename-fixes (2025-07-22) 6 commits\n - merge-ort: fix directory rename on top of source of other rename/delete\n - merge-ort: fix incorrect file handling\n - t6423: fix missed staging of file in testcases 12i,12j,12k\n - t6423: document two bugs with rename-to-self testcases\n - merge-ort: drop unnecessary temporary in check_for_directory_rename()\n - merge-ort: update comments to modern testfile location\n\n Various bugs about rename handling in \"ort\" merge strategy have\n been fixed.\n\n Expecting a reroll?\n cf. <aIx7SXfRabJWpa0D@pks.im>\n source: <pull.1943.git.1753197791.gitgitgadget@gmail.com>\n\n\n* jb/t7510-gpg-program-path (2025-07-24) 2 commits\n  (merged to 'next' on 2025-07-29 at f5dc13f52d)\n + t7510: use $PWD instead of $(pwd) inside PATH\n  (merged to 'next' on 2025-07-24 at eb8bc447f9)\n + t7510: add test cases for non-absolute gpg program\n\n A new test to ensure that a recent change will keep working.\n\n Will merge to 'master'.\n cf. <20250725043043.GA3002998@coredump.intra.peff.net>\n source: <20250722190922.51183-3-jonas.brandstoetter@gmx.at>\n source: <20250725051309.GA3003751@coredump.intra.peff.net>\n\n\n* jt/switch-restore-no-longer-experimental (2025-07-28) 1 commit\n  (merged to 'next' on 2025-07-29 at 3c2cf5ab46)\n + builtin: unmark git-switch and git-restore as experimental\n\n Declare that \"git switch\" and \"git restore\" are no longer\n experimental.\n\n Will merge to 'master'.\n source: <20250728194218.2379432-1-jltobler@gmail.com>\n\n\n* ps/reflog-migrate-fixes (2025-07-29) 9 commits\n - refs: fix invalid old object IDs when migrating reflogs\n - refs: stop unsetting REF_HAVE_OLD for log-only updates\n - refs/files: detect race when generating reflog entry for HEAD\n - refs: fix identity for migrated reflogs\n - ident: fix type of string length parameter\n - builtin/reflog: implement subcommand to write new entries\n - refs: export `ref_transaction_update_reflog()`\n - builtin/reflog: improve grouping of subcommands\n - Documentation/git-reflog: convert to use synopsis type\n (this branch is used by ps/remote-rename-fix.)\n\n \"git refs migrate\" to migrate the reflog entries from a refs\n backend to another had a handful of bugs squashed.\n\n Will merge to 'next'?\n source: <20250729-pks-reflog-append-v3-0-9614d310f073@pks.im>\n\n\n* ds/sparse-checkout-clean (2025-07-16) 9 commits\n - sparse-checkout: make 'clean' clear more files\n - t: expand tests around sparse merges and clean\n - sparse-index: point users to new 'clean' action\n - sparse-checkout: add --verbose option to 'clean'\n - dir: add generic \"walk all files\" helper\n - sparse-checkout: match some 'clean' behavior\n - sparse-checkout: add basics of 'clean' command\n - sparse-checkout: remove use of the_repository\n - Merge branch 'ac/deglobal-sparse-variables' into ds/sparse-checkout-clean\n (this branch uses ac/deglobal-sparse-variables.)\n\n \"git sparse-checkout\" subcommand learned a new \"clean\" action to\n prune otherwise unused working-tree files that are outside the\n areas of interest.\n\n Needs to wait for the base topic to solidify.\n source: <pull.1941.v2.git.1752716054.gitgitgadget@gmail.com>\n\n\n* ps/config-wo-the-repository (2025-07-23) 22 commits\n  (merged to 'next' on 2025-07-29 at 13da88e8fb)\n + config: fix sign comparison warnings\n + config: move Git config parsing into \"environment.c\"\n + config: remove unused `the_repository` wrappers\n + config: drop `git_config_set_multivar()` wrapper\n + config: drop `git_config_get_multivar_gently()` wrapper\n + config: drop `git_config_set_multivar_in_file_gently()` wrapper\n + config: drop `git_config_set_in_file_gently()` wrapper\n + config: drop `git_config_set()` wrapper\n + config: drop `git_config_set_gently()` wrapper\n + config: drop `git_config_set_in_file()` wrapper\n + config: drop `git_config_get_bool()` wrapper\n + config: drop `git_config_get_ulong()` wrapper\n + config: drop `git_config_get_int()` wrapper\n + config: drop `git_config_get_string()` wrapper\n + config: drop `git_config_get_string()` wrapper\n + config: drop `git_config_get_string_multi()` wrapper\n + config: drop `git_config_get_value()` wrapper\n + config: drop `git_config_get_value()` wrapper\n + config: drop `git_config_get()` wrapper\n + config: drop `git_config_clear()` wrapper\n + config: drop `git_config()` wrapper\n + Merge branch 'bc/use-sha256-by-default-in-3.0' into ps/config-wo-the-repository\n (this branch is used by pw/3.0-commentchar-auto-deprecation.)\n\n The config API had a set of convenience wrapper functions that\n implicitly use the_repository instance; they have been removed and\n inlined at the calling sites.\n\n Will merge to 'master'.\n source: <20250723-pks-config-wo-the-repository-v2-0-1502d60d3867@pks.im>\n\n\n* pw/3.0-commentchar-auto-deprecation (2025-07-31) 4 commits\n - commit: print advice when core.commentString=auto\n - config: warn on core.commentString=auto\n - breaking-changes: deprecate support for core.commentString=auto\n - Merge branch 'ps/config-wo-the-repository' into pw/3.0-commentchar-auto-deprecation\n (this branch uses ps/config-wo-the-repository.)\n\n Proposes to deprecate \"core.commentChar=auto\" that attempts to\n dynamically pick a suitable comment character, as it is too much\n trouble to support for little benefit.\n\n Comments?\n source: <cover.1753975294.git.phillip.wood@dunelm.org.uk>\n\n\n* ps/object-file-wo-the-repository (2025-07-16) 17 commits\n  (merged to 'next' on 2025-08-01 at 0c1253014e)\n + object-file: get rid of `the_repository` in index-related functions\n + object-file: get rid of `the_repository` in `force_object_loose()`\n + object-file: get rid of `the_repository` in `read_loose_object()`\n + object-file: get rid of `the_repository` in loose object iterators\n + object-file: remove declaration for `for_each_file_in_obj_subdir()`\n + object-file: inline `for_each_loose_file_in_objdir_buf()`\n + object-file: get rid of `the_repository` when writing objects\n + odb: introduce `odb_write_object()`\n + loose: write loose objects map via their source\n + object-file: get rid of `the_repository` in `finalize_object_file()`\n + object-file: get rid of `the_repository` in `loose_object_info()`\n + object-file: get rid of `the_repository` when freshening objects\n + object-file: inline `check_and_freshen()` functions\n + object-file: get rid of `the_repository` in `has_loose_object()`\n + object-file: stop using `the_hash_algo`\n + object-file: fix -Wsign-compare warnings\n + Merge branch 'ps/object-store' into ps/object-file-wo-the-repository\n\n Reduce implicit assumption and dependence on the_repository in the\n object-file subsystem.\n\n Will merge to 'master'.\n cf. <87ms8na1mc.fsf@iotcl.com>\n cf. <aIhm_nqiH8Sci12i@pks.im>\n source: <20250717-pks-object-file-wo-the-repository-v2-0-36d2cd6c700e@pks.im>\n\n\n* ua/t1517-short-help-tests (2025-08-02) 3 commits\n - t5304: move `prune -h` test from t1517\n - t5200: move `update-server-info -h` test from t1517\n - t/t1517: automate `git subcmd -h` tests outside a repository\n (this branch is used by dk/help-all.)\n\n Test shuffling.\n\n Needs the perl-prereq touch-up squashed in from dk/help-all topic.\n source: <20250803020744.1037392-1-usmanakinyemi202@gmail.com>\n\n\n* tc/last-modified (2025-07-30) 4 commits\n - last-modified: use Bloom filters when available\n - commit-graph: export prepare_commit_graph()\n - t/perf: add last-modified perf script\n - last-modified: new subcommand to show when files were last modified\n\n A new command \"git last-modified\" is proposed to show the closest\n ancestor commit that touched each path.\n\n Seems to break a CI job when merged to 'seen'.\n cf. <xmqqpldfoqvz.fsf@gitster.g>\n source: <20250716133206.1787549-1-toon@iotcl.com>\n\n\n* lo/repo-info (2025-08-01) 5 commits\n . repo: add the --format flag\n . repo: add the field layout.shallow\n . repo: add the field layout.bare\n . repo: add the field references.format\n . repo: declare the repo command\n\n A new subcommand \"git repo\" gives users a way to grab various\n repository characteristics.\n\n Breaks 0450 when merged to 'seen'.\n source: <20250801131111.8115-1-lucasseikioshiro@gmail.com>\n\n\n* ac/deglobal-sparse-variables (2025-07-18) 3 commits\n - environment: remove the global variable 'sparse_expect_files_outside_of_patterns'\n - environment: move access to \"core.sparsecheckoutcone\" into repo_settings\n - environment: move access to \"core.sparsecheckout\" into repo_settings\n (this branch is used by ds/sparse-checkout-clean.)\n\n Two global variables related to sparse checkout have been moved to\n the repository settings structure.\n\n Expecting a reroll.\n cf. <CAE7as+bnG6KgA8X_n36pqP15bmyM6re+xEb1MOXKvZSUdJ8Arg@mail.gmail.com>\n source: <cover.1752882401.git.ayu.chandekar@gmail.com>\n\n\n* tb/prepare-midx-pack-cleanup (2025-05-28) 5 commits\n - midx: return a `packed_git` pointer from `prepare_midx_pack()`\n - midx-write.c: extract inner loop from fill_packs_from_midx()\n - midx-write.c: guard against incremental MIDXs in want_included_pack()\n - midx: access pack names through `nth_midxed_pack_name()`\n - Merge branch 'ps/midx-negative-packfile-cache' into tb/prepare-midx-pack-cleanup\n\n Improvement on Multi-pack-index API.\n\n Expecting a reroll.\n cf. <20250530065034.GC1321283@coredump.intra.peff.net>\n source: <cover.1748473122.git.me@ttaylorr.com>\n\n\n* kj/renamed-submodule (2025-07-24) 4 commits\n  (merged to 'next' on 2025-08-03 at c341b36545)\n + fixup! submodule: skip redundant active entries when pattern covers path\n + fixup! submodule: prevent overwriting .gitmodules on path reuse\n + submodule: skip redundant active entries when pattern covers path\n + submodule: prevent overwriting .gitmodules on path reuse\n\n The case where a new submodule takes a path where used to be a\n completely different subproject is now dealt a bit better than\n before.\n\n Will merge to 'master'.\n source: <20250724152418.45226-1-jayatheerthkulkarni2005@gmail.com>\n\n\n* lm/add-p-context (2025-07-29) 4 commits\n  (merged to 'next' on 2025-07-29 at 393fa4b64b)\n + add-patch: add diff.context command line overrides\n + add-patch: respect diff.context configuration\n + t: use test_config in t4055\n + t: use test_grep in t3701 and t4055\n\n \"git add/etc -p\" now honors diff.context configuration variable,\n and learns to honor -U<n> option.\n\n Will merge to 'master'.\n source: <pull.1915.v5.git.1753772511.gitgitgadget@gmail.com>\n\n\n* cc/promisor-remote-capability (2025-07-31) 5 commits\n - promisor-remote: use string constants for 'name' and 'url' too\n - promisor-remote: allow a client to check fields\n - promisor-remote: refactor how we parse advertised fields\n - promisor-remote: allow a server to advertise more fields\n - promisor-remote: refactor to get rid of 'struct strvec'\n\n The \"promisor-remote\" capability mechanism has been updated to\n allow the \"partialCloneFilter\" settings and the \"token\" value to be\n communicated from the server side.\n\n Expecting a reroll.\n source: <20250731072401.3817074-1-christian.couder@gmail.com>\n\n--------------------------------------------------\n[Discarded]\n\n* pw/compound-literal-test-balloon (2025-07-14) 1 commit\n . strbuf: add compound literal test balloon\n\n Gauge if the world is ready for compound literal that can make the\n resulting code clearer in some places.\n\n Discarded; it turns out that we already have a test balloon on this.\n source: <7ac55a5096c261b706f47ca239c381f71db2b67a.1752499653.git.phillip.wood@dunelm.org.uk>\n\n\n* jc/tag-idempotent-no-op (2025-07-11) 1 commit\n . tag: allow idempotent \"git tag\" without \"--force\"\n\n \"git tag T O\" when the tag T is already pointing at the object O is\n a no-op; we used to but no longer error out such a request and\n require \"--force\" and instead turn it into a no-op.\n\n Will discard.\n cf. <dt5ruadvr7lmhsbypmb6yili5cookfx5btw4gzfeui7ehxxajv@ziael4udbbcy>\n source: <xmqqv7nyzgp7.fsf@gitster.g>\n"},{"id":"523431","messageId":"aJCBlnHp-db4Nd5w@pks.im","threadId":"63903","inReplyTo":"xmqqms8fbilv.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-08-04T09:47:02Z","receivedAt":"2025-08-04T09:47:08Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Mon, Aug 04, 2025 at 01:23:40AM -0700, Junio C Hamano wrote:\n> * ps/remote-rename-fix (2025-07-31) 7 commits\n>  - builtin/remote: only iterate through refs that are to be renamed\n>  - builtin/remote: rework how remote refs get renamed\n>  - builtin/remote: determine whether refs need renaming early on\n>  - builtin/remote: fix sign comparison warnings\n>  - refs: simplify logic when migrating reflog entries\n>  - refs: pass refname when invoking reflog entry callback\n>  - Merge branch 'ps/reflog-migrate-fixes' into ps/remote-rename-fix\n>  (this branch uses ps/reflog-migrate-fixes.)\n> \n>  \"git remote rename origin upstream\" failed to move origin/HEAD to\n>  upstream/HEAD when origin/HEAD is unborn and performed other\n>  renames extremely inefficiently, which has been corrected.\n> \n>  Will merge to 'next'?\n>  source: <20250731-pks-remote-rename-improvements-v2-0-dda6f083674d@pks.im>\n\nI've sent one more version of this patch series for a couple of final\nfinishing touches. If Peff is happy with that version I'm happy to see\nit merged.\n\n> * ps/reflog-migrate-fixes (2025-07-29) 9 commits\n>  - refs: fix invalid old object IDs when migrating reflogs\n>  - refs: stop unsetting REF_HAVE_OLD for log-only updates\n>  - refs/files: detect race when generating reflog entry for HEAD\n>  - refs: fix identity for migrated reflogs\n>  - ident: fix type of string length parameter\n>  - builtin/reflog: implement subcommand to write new entries\n>  - refs: export `ref_transaction_update_reflog()`\n>  - builtin/reflog: improve grouping of subcommands\n>  - Documentation/git-reflog: convert to use synopsis type\n>  (this branch is used by ps/remote-rename-fix.)\n> \n>  \"git refs migrate\" to migrate the reflog entries from a refs\n>  backend to another had a handful of bugs squashed.\n> \n>  Will merge to 'next'?\n>  source: <20250729-pks-reflog-append-v3-0-9614d310f073@pks.im>\n\nI'm happy with this version, so if the above goes in I think this one\nhere can also be merged.\n\nThanks!\n\nPatrick\n"},{"id":"523448","messageId":"xmqqqzxr88jg.fsf@gitster.g","threadId":"63903","inReplyTo":"aJCBlnHp-db4Nd5w@pks.im","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-04T14:29:23Z","receivedAt":"2025-08-04T14:29:26Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> On Mon, Aug 04, 2025 at 01:23:40AM -0700, Junio C Hamano wrote:\n>> * ps/remote-rename-fix (2025-07-31) 7 commits\n>>  - builtin/remote: only iterate through refs that are to be renamed\n>>  - builtin/remote: rework how remote refs get renamed\n>>  - builtin/remote: determine whether refs need renaming early on\n>>  - builtin/remote: fix sign comparison warnings\n>>  - refs: simplify logic when migrating reflog entries\n>>  - refs: pass refname when invoking reflog entry callback\n>>  - Merge branch 'ps/reflog-migrate-fixes' into ps/remote-rename-fix\n>>  (this branch uses ps/reflog-migrate-fixes.)\n>> \n>>  \"git remote rename origin upstream\" failed to move origin/HEAD to\n>>  upstream/HEAD when origin/HEAD is unborn and performed other\n>>  renames extremely inefficiently, which has been corrected.\n>> \n>>  Will merge to 'next'?\n>>  source: <20250731-pks-remote-rename-improvements-v2-0-dda6f083674d@pks.im>\n>\n> I've sent one more version of this patch series for a couple of final\n> finishing touches. If Peff is happy with that version I'm happy to see\n> it merged.\n\nHmph, you have?\n\n>\n>> * ps/reflog-migrate-fixes (2025-07-29) 9 commits\n>>  - refs: fix invalid old object IDs when migrating reflogs\n>>  - refs: stop unsetting REF_HAVE_OLD for log-only updates\n>>  - refs/files: detect race when generating reflog entry for HEAD\n>>  - refs: fix identity for migrated reflogs\n>>  - ident: fix type of string length parameter\n>>  - builtin/reflog: implement subcommand to write new entries\n>>  - refs: export `ref_transaction_update_reflog()`\n>>  - builtin/reflog: improve grouping of subcommands\n>>  - Documentation/git-reflog: convert to use synopsis type\n>>  (this branch is used by ps/remote-rename-fix.)\n>> \n>>  \"git refs migrate\" to migrate the reflog entries from a refs\n>>  backend to another had a handful of bugs squashed.\n>> \n>>  Will merge to 'next'?\n>>  source: <20250729-pks-reflog-append-v3-0-9614d310f073@pks.im>\n>\n> I'm happy with this version, so if the above goes in I think this one\n> here can also be merged.\n\nYou have an update for this one.  Perhaps your comments are swapped\nbetween these two topics?\n\n"},{"id":"523451","messageId":"aJDI16RBR9QKdtW9@pks.im","threadId":"63903","inReplyTo":"xmqqqzxr88jg.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-08-04T14:51:03Z","receivedAt":"2025-08-04T14:51:11Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Mon, Aug 04, 2025 at 07:29:23AM -0700, Junio C Hamano wrote:\n> Patrick Steinhardt <ps@pks.im> writes:\n> \n> > On Mon, Aug 04, 2025 at 01:23:40AM -0700, Junio C Hamano wrote:\n> >> * ps/remote-rename-fix (2025-07-31) 7 commits\n> >>  - builtin/remote: only iterate through refs that are to be renamed\n> >>  - builtin/remote: rework how remote refs get renamed\n> >>  - builtin/remote: determine whether refs need renaming early on\n> >>  - builtin/remote: fix sign comparison warnings\n> >>  - refs: simplify logic when migrating reflog entries\n> >>  - refs: pass refname when invoking reflog entry callback\n> >>  - Merge branch 'ps/reflog-migrate-fixes' into ps/remote-rename-fix\n> >>  (this branch uses ps/reflog-migrate-fixes.)\n> >> \n> >>  \"git remote rename origin upstream\" failed to move origin/HEAD to\n> >>  upstream/HEAD when origin/HEAD is unborn and performed other\n> >>  renames extremely inefficiently, which has been corrected.\n> >> \n> >>  Will merge to 'next'?\n> >>  source: <20250731-pks-remote-rename-improvements-v2-0-dda6f083674d@pks.im>\n> >\n> > I've sent one more version of this patch series for a couple of final\n> > finishing touches. If Peff is happy with that version I'm happy to see\n> > it merged.\n> \n> Hmph, you have?\n> \n> >\n> >> * ps/reflog-migrate-fixes (2025-07-29) 9 commits\n> >>  - refs: fix invalid old object IDs when migrating reflogs\n> >>  - refs: stop unsetting REF_HAVE_OLD for log-only updates\n> >>  - refs/files: detect race when generating reflog entry for HEAD\n> >>  - refs: fix identity for migrated reflogs\n> >>  - ident: fix type of string length parameter\n> >>  - builtin/reflog: implement subcommand to write new entries\n> >>  - refs: export `ref_transaction_update_reflog()`\n> >>  - builtin/reflog: improve grouping of subcommands\n> >>  - Documentation/git-reflog: convert to use synopsis type\n> >>  (this branch is used by ps/remote-rename-fix.)\n> >> \n> >>  \"git refs migrate\" to migrate the reflog entries from a refs\n> >>  backend to another had a handful of bugs squashed.\n> >> \n> >>  Will merge to 'next'?\n> >>  source: <20250729-pks-reflog-append-v3-0-9614d310f073@pks.im>\n> >\n> > I'm happy with this version, so if the above goes in I think this one\n> > here can also be merged.\n> \n> You have an update for this one.  Perhaps your comments are swapped\n> between these two topics?\n\nOh, indeed. Sorry for the confusion.\n\nPatrick\n"},{"id":"523455","messageId":"20250804154129.GC109984@coredump.intra.peff.net","threadId":"63903","inReplyTo":"aJDI16RBR9QKdtW9@pks.im","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2025-08-04T15:41:29Z","receivedAt":"2025-08-04T15:41:30Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Aug 04, 2025 at 04:51:03PM +0200, Patrick Steinhardt wrote:\n\n> > >> * ps/reflog-migrate-fixes (2025-07-29) 9 commits\n> > >>  - refs: fix invalid old object IDs when migrating reflogs\n> > >>  - refs: stop unsetting REF_HAVE_OLD for log-only updates\n> > >>  - refs/files: detect race when generating reflog entry for HEAD\n> > >>  - refs: fix identity for migrated reflogs\n> > >>  - ident: fix type of string length parameter\n> > >>  - builtin/reflog: implement subcommand to write new entries\n> > >>  - refs: export `ref_transaction_update_reflog()`\n> > >>  - builtin/reflog: improve grouping of subcommands\n> > >>  - Documentation/git-reflog: convert to use synopsis type\n> > >>  (this branch is used by ps/remote-rename-fix.)\n> > >> \n> > >>  \"git refs migrate\" to migrate the reflog entries from a refs\n> > >>  backend to another had a handful of bugs squashed.\n> > >> \n> > >>  Will merge to 'next'?\n> > >>  source: <20250729-pks-reflog-append-v3-0-9614d310f073@pks.im>\n> > >\n> > > I'm happy with this version, so if the above goes in I think this one\n> > > here can also be merged.\n> > \n> > You have an update for this one.  Perhaps your comments are swapped\n> > between these two topics?\n> \n> Oh, indeed. Sorry for the confusion.\n\nI just left a rather lengthy review of the split-HEAD patch in v4. I\nthink hit has a few bugs that we need to address.\n\nI'm not sure if the right answer is to just go back to the v3 version\nthat simply rejected the racy HEAD update (since that's more or less\nwhat happens now and nobody complains).\n\nIf we do want to stick with the \"silently skip the racy HEAD update\"\nstrategy from v4, I left some fixes there. But I'd worry more about\nmaintainability and regressions in the future. I'm not sure if my hacky\n\"pretend the HEAD is this for splitting\" patch is something we'd want to\ncarry or not. But if so, I think we could at least get a little coverage\nin the test suite.\n\n-Peff\n"},{"id":"523493","messageId":"xmqqectq4ne9.fsf@gitster.g","threadId":"63903","inReplyTo":"20250804154129.GC109984@coredump.intra.peff.net","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-05T00:34:22Z","receivedAt":"2025-08-05T00:34:25Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> I just left a rather lengthy review of the split-HEAD patch in v4. I\n> think hit has a few bugs that we need to address.\n>\n> I'm not sure if the right answer is to just go back to the v3 version\n> that simply rejected the racy HEAD update (since that's more or less\n> what happens now and nobody complains).\n>\n> If we do want to stick with the \"silently skip the racy HEAD update\"\n> strategy from v4, I left some fixes there. But I'd worry more about\n> maintainability and regressions in the future. I'm not sure if my hacky\n> \"pretend the HEAD is this for splitting\" patch is something we'd want to\n> carry or not. But if so, I think we could at least get a little coverage\n> in the test suite.\n\nBetween the \"honestry admit we failed and reject\" and \"silently\npretend nothing bad happened\", I'd have to say that the former may\nbe more preferrable, and I hope people would agree.\n"},{"id":"523494","messageId":"CALnO6CDm5n0oZsXzvKz89jVg7E_h=1gqPFs2x7-UojdcY_Di_w@mail.gmail.com","threadId":"63903","inReplyTo":"xmqqms8fbilv.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"D. Ben Knoble","fromEmail":"ben.knoble@gmail.com","sentAt":"2025-08-05T01:22:07Z","receivedAt":"2025-08-05T01:22:20Z","isPatch":false,"sender":{"key":"ben.knoble@gmail.com","avatar":"https://avatars.githubusercontent.com/u/22802209?v=4"},"body":"On Mon, Aug 4, 2025 at 4:23 AM Junio C Hamano <gitster@pobox.com> wrote:\n> * dk/help-all (2025-08-03) 4 commits\n>  - builtin: also setup gently for --help-all\n>  - parse-options: refactor flags for usage_with_options_internal\n>  - t1517: fixup for ua/t1517-short-help-tests\n>  - Merge branch 'ua/t1517-short-help-tests' into dk/help-all\n>  (this branch uses ua/t1517-short-help-tests.)\n>\n>  \"git cmd --help-all\" outside repository.\n>\n>  Breaks t1517.296 under SANITIZE=leak?\n>  source: <20250803012613.54086-1-ben.knoble+github@gmail.com>\n\nI don't see the link in the linux-leaks job of a recent CI run [1].\nWhen I build with\n\n    make SANITIZE=leak CC=gcc-14\n\n(since clang on my system doesn't support -fsantize=leak for\nx86_64-apple-darwin21.6.0) and then\n\n    (cd t && prove t1517*)\n\nthen I get\n\n    t1517-outside-repo.sh .. ok\n    All tests successful.\n    Files=1, Tests=392, 22 wallclock secs ( 0.10 usr  0.01 sys +  5.26\ncusr  4.40 csys =  9.77 CPU)\n    Result: PASS\n\nSo I don't think this topic is the problem. This is true whether I use\nmy copy of the topic or the one you publish (4c8db1e55c (builtin: also\nsetup gently for --help-all, 2025-08-03)).\n\n[1]: https://github.com/benknoble/git/actions/runs/16706744996/job/47285921358\n"},{"id":"523529","messageId":"xmqq4ium3w2x.fsf@gitster.g","threadId":"63903","inReplyTo":"CALnO6CDm5n0oZsXzvKz89jVg7E_h=1gqPFs2x7-UojdcY_Di_w@mail.gmail.com","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-05T10:24:22Z","receivedAt":"2025-08-05T10:24:25Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"D. Ben Knoble\" <ben.knoble@gmail.com> writes:\n\n> .... This is true whether I use\n> my copy of the topic or the one you publish (4c8db1e55c (builtin: also\n> setup gently for --help-all, 2025-08-03)).\n\nI think the breakage I saw was while testing the 'seen' branch as a\nwhole, so there may be some interactions with other topics.  IIRC,\nit was running \"git repo --help-all\" when I saw the complaints.\n"},{"id":"523536","messageId":"20250805125120.GA1291837@coredump.intra.peff.net","threadId":"63903","inReplyTo":"xmqqectq4ne9.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2025-08-05T12:51:20Z","receivedAt":"2025-08-05T12:51:30Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Aug 04, 2025 at 05:34:22PM -0700, Junio C Hamano wrote:\n\n> Jeff King <peff@peff.net> writes:\n> \n> > I just left a rather lengthy review of the split-HEAD patch in v4. I\n> > think hit has a few bugs that we need to address.\n> >\n> > I'm not sure if the right answer is to just go back to the v3 version\n> > that simply rejected the racy HEAD update (since that's more or less\n> > what happens now and nobody complains).\n> >\n> > If we do want to stick with the \"silently skip the racy HEAD update\"\n> > strategy from v4, I left some fixes there. But I'd worry more about\n> > maintainability and regressions in the future. I'm not sure if my hacky\n> > \"pretend the HEAD is this for splitting\" patch is something we'd want to\n> > carry or not. But if so, I think we could at least get a little coverage\n> > in the test suite.\n> \n> Between the \"honestry admit we failed and reject\" and \"silently\n> pretend nothing bad happened\", I'd have to say that the former may\n> be more preferrable, and I hope people would agree.\n\nI think I don't think it's pretending that nothing bad happened, though.\nThe user did not ask us to update HEAD, and we are able to fill their\noriginal request completely. So there really was nothing bad that\nhappened.\n\nTo me the options are \"try to do the best thing in a racy situation,\neven though it almost never happens and will be complex and somewhat\nuntested\" vs \"do the simple and stupid thing that does not happen enough\nfor anyone to care too much\".\n\n-Peff\n"},{"id":"523544","messageId":"aJIBlIDto33lJEuK@pks.im","threadId":"63903","inReplyTo":"xmqqectq4ne9.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-08-05T13:05:24Z","receivedAt":"2025-08-05T13:05:31Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Mon, Aug 04, 2025 at 05:34:22PM -0700, Junio C Hamano wrote:\n> Jeff King <peff@peff.net> writes:\n> \n> > I just left a rather lengthy review of the split-HEAD patch in v4. I\n> > think hit has a few bugs that we need to address.\n> >\n> > I'm not sure if the right answer is to just go back to the v3 version\n> > that simply rejected the racy HEAD update (since that's more or less\n> > what happens now and nobody complains).\n> >\n> > If we do want to stick with the \"silently skip the racy HEAD update\"\n> > strategy from v4, I left some fixes there. But I'd worry more about\n> > maintainability and regressions in the future. I'm not sure if my hacky\n> > \"pretend the HEAD is this for splitting\" patch is something we'd want to\n> > carry or not. But if so, I think we could at least get a little coverage\n> > in the test suite.\n> \n> Between the \"honestry admit we failed and reject\" and \"silently\n> pretend nothing bad happened\", I'd have to say that the former may\n> be more preferrable, and I hope people would agree.\n\nI am a bit torn overall. We _are_ talking about a race, even though it\nis an implicit race because the user didn't explicitly ask for the ref\nto be updated. So aborting the transaction is reasonable from my\nperspective. But as Peff noted the user didn't ask for it explicitly, so\nit may be surprising if we abort due to a concurrent update of HEAD.\n\nUltimately I'd claim that no end user will ever see this happen in\npractice. You'd have to change HEAD at the same point in time as you\nwrite a new commit directly to the branch that it's pointing to. That\nis, git-commit(1) wouldn't even be able to trigger this case as that\ncommand commits to HEAD, not to its target. And just to confirm my\nclaim: setting a breakpoint in `split_head_update()` and then executing\n\"git commit\" doesn't trigger that function.\n\nSo with that knowledge I'd rather do the safe thing and abort the\ntransaction. It requires less hard-to-test logic and feels safer\noverall.\n\nIf we agree on that I can send a final reroll that reverts back to the\nlogic we had in v3, which did abort the transaction.\n\nPatrick\n"},{"id":"523549","messageId":"20250805134454.GA1340331@coredump.intra.peff.net","threadId":"63903","inReplyTo":"aJIBlIDto33lJEuK@pks.im","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2025-08-05T13:44:54Z","receivedAt":"2025-08-05T13:44:55Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Aug 05, 2025 at 03:05:24PM +0200, Patrick Steinhardt wrote:\n\n> I am a bit torn overall. We _are_ talking about a race, even though it\n> is an implicit race because the user didn't explicitly ask for the ref\n> to be updated. So aborting the transaction is reasonable from my\n> perspective. But as Peff noted the user didn't ask for it explicitly, so\n> it may be surprising if we abort due to a concurrent update of HEAD.\n> \n> Ultimately I'd claim that no end user will ever see this happen in\n> practice. You'd have to change HEAD at the same point in time as you\n> write a new commit directly to the branch that it's pointing to. That\n> is, git-commit(1) wouldn't even be able to trigger this case as that\n> command commits to HEAD, not to its target. And just to confirm my\n> claim: setting a breakpoint in `split_head_update()` and then executing\n> \"git commit\" doesn't trigger that function.\n\nYes, I think it's pretty unlikely on the client, where almost all of\nyour ref updates are either via HEAD (because you're committing), or to\nremote tracking branches via fetch (and we never point HEAD there).\n\nThe more likely case is a server where one user is pushing and another\nupdates HEAD (to set the default branch for clones, etc). But those\nsorts of updates to HEAD are going to be rather rare there, as well.\n\nSo I agree it's not that likely to come up much in practice.\n\n> So with that knowledge I'd rather do the safe thing and abort the\n> transaction. It requires less hard-to-test logic and feels safer\n> overall.\n\nI'm OK with that.\n\n> If we agree on that I can send a final reroll that reverts back to the\n> logic we had in v3, which did abort the transaction.\n\nYep, sounds good.\n\n-Peff\n"},{"id":"523568","messageId":"CALnO6CBLF2Zxhy=mvz61U7M3X3UNA-V8R4tkzOvVjKWpEwi8Mg@mail.gmail.com","threadId":"63903","inReplyTo":"xmqq4ium3w2x.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"D. Ben Knoble","fromEmail":"ben.knoble@gmail.com","sentAt":"2025-08-05T16:23:15Z","receivedAt":"2025-08-05T16:23:28Z","isPatch":false,"sender":{"key":"ben.knoble@gmail.com","avatar":"https://avatars.githubusercontent.com/u/22802209?v=4"},"body":"On Tue, Aug 5, 2025 at 6:24 AM Junio C Hamano <gitster@pobox.com> wrote:\n>\n> \"D. Ben Knoble\" <ben.knoble@gmail.com> writes:\n>\n> > .... This is true whether I use\n> > my copy of the topic or the one you publish (4c8db1e55c (builtin: also\n> > setup gently for --help-all, 2025-08-03)).\n>\n> I think the breakage I saw was while testing the 'seen' branch as a\n> whole, so there may be some interactions with other topics.  IIRC,\n> it was running \"git repo --help-all\" when I saw the complaints.\n\nHm. Will try again with the whole seen branch, but after merging\nlo/repo-info locally then\n\n    make -j $(nproc) SANITIZE=leak CC=gcc-14\n    (cd t && prove t1517*)\n\nstill didn't fail.\n\n-- \nD. Ben Knoble\n"},{"id":"523569","messageId":"CALnO6CASXHv_wwmAfn9tZ4D1qdJBgVKfLEQ9+LTEF9FJPiS0qQ@mail.gmail.com","threadId":"63903","inReplyTo":"CALnO6CBLF2Zxhy=mvz61U7M3X3UNA-V8R4tkzOvVjKWpEwi8Mg@mail.gmail.com","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"D. Ben Knoble","fromEmail":"ben.knoble@gmail.com","sentAt":"2025-08-05T16:30:04Z","receivedAt":"2025-08-05T16:30:17Z","isPatch":false,"sender":{"key":"ben.knoble@gmail.com","avatar":"https://avatars.githubusercontent.com/u/22802209?v=4"},"body":"On Tue, Aug 5, 2025 at 12:23 PM D. Ben Knoble <ben.knoble@gmail.com> wrote:\n>\n> On Tue, Aug 5, 2025 at 6:24 AM Junio C Hamano <gitster@pobox.com> wrote:\n> >\n> > \"D. Ben Knoble\" <ben.knoble@gmail.com> writes:\n> >\n> > > .... This is true whether I use\n> > > my copy of the topic or the one you publish (4c8db1e55c (builtin: also\n> > > setup gently for --help-all, 2025-08-03)).\n> >\n> > I think the breakage I saw was while testing the 'seen' branch as a\n> > whole, so there may be some interactions with other topics.  IIRC,\n> > it was running \"git repo --help-all\" when I saw the complaints.\n>\n> Hm. Will try again with the whole seen branch, but after merging\n> lo/repo-info locally then\n>\n>     make -j $(nproc) SANITIZE=leak CC=gcc-14\n>     (cd t && prove t1517*)\n>\n> still didn't fail.\n\nWith apologies for the mail noise, but I can't seem to reproduce any\nfailures here on 371c45b569 (Merge branch 'dk/help-all' into seen,\n2025-08-04), which is the latest seen I can find.\n"},{"id":"523574","messageId":"xmqqzfcdzof5.fsf@gitster.g","threadId":"63903","inReplyTo":"20250805125120.GA1291837@coredump.intra.peff.net","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-05T17:08:46Z","receivedAt":"2025-08-05T17:08:48Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> I think I don't think it's pretending that nothing bad happened, though.\n> The user did not ask us to update HEAD, and we are able to fill their\n> original request completely. So there really was nothing bad that\n> happened.\n>\n> To me the options are \"try to do the best thing in a racy situation,\n> even though it almost never happens and will be complex and somewhat\n> untested\" vs \"do the simple and stupid thing that does not happen enough\n> for anyone to care too much\".\n\nOK.  I still prefer the latter ;-)\n\nThanks.\n"},{"id":"523575","messageId":"xmqqv7n1zoc6.fsf@gitster.g","threadId":"63903","inReplyTo":"aJIBlIDto33lJEuK@pks.im","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-05T17:10:33Z","receivedAt":"2025-08-05T17:10:36Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> So with that knowledge I'd rather do the safe thing and abort the\n> transaction. It requires less hard-to-test logic and feels safer\n> overall.\n>\n> If we agree on that I can send a final reroll that reverts back to the\n> logic we had in v3, which did abort the transaction.\n\nI guess both you and Peff also prefer code that is more maintainable\nand easier to reason about, and I am with you two, so let's go back\nto the approach of v3.\n\nThanks.\n\n\n"},{"id":"523584","messageId":"20250805184827.GB1345110@coredump.intra.peff.net","threadId":"63903","inReplyTo":"xmqqzfcdzof5.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2025-08-05T18:48:27Z","receivedAt":"2025-08-05T18:48:28Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Aug 05, 2025 at 10:08:46AM -0700, Junio C Hamano wrote:\n\n> Jeff King <peff@peff.net> writes:\n> \n> > I think I don't think it's pretending that nothing bad happened, though.\n> > The user did not ask us to update HEAD, and we are able to fill their\n> > original request completely. So there really was nothing bad that\n> > happened.\n> >\n> > To me the options are \"try to do the best thing in a racy situation,\n> > even though it almost never happens and will be complex and somewhat\n> > untested\" vs \"do the simple and stupid thing that does not happen enough\n> > for anyone to care too much\".\n> \n> OK.  I still prefer the latter ;-)\n\nYeah, sorry if I was not clear. I was just quibbling about the framing\nof the discussion, but I think we all ended up in the same place. ;)\n\n-Peff\n"},{"id":"523587","messageId":"xmqqectpziz9.fsf@gitster.g","threadId":"63903","inReplyTo":"CALnO6CASXHv_wwmAfn9tZ4D1qdJBgVKfLEQ9+LTEF9FJPiS0qQ@mail.gmail.com","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-05T19:06:18Z","receivedAt":"2025-08-05T19:06:21Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"D. Ben Knoble\" <ben.knoble@gmail.com> writes:\n\n> With apologies for the mail noise, but I can't seem to reproduce any\n> failures here on 371c45b569 (Merge branch 'dk/help-all' into seen,\n> 2025-08-04), which is the latest seen I can find.\n\nWhen I report a public CI failure, I'd try to give an exact URL, but\notherwise the failure would have been seen in my local environment,\nand because I tend to refrain from pushing out a know-to-be-broken\ntree, it is unsurprising if 371c45b569 did not fail.\n\nThat commit does not have lo/repo-info, I suspect.  I didn't know\nexactly which topic was causing, but the error was observed when\n\"repo --help-all\" was given, so perhaps some interactions between\nthese two topics.\n\nThanks.\n"},{"id":"523595","messageId":"7923AA49-A1E9-4E56-9397-0443481B97B8@gmail.com","threadId":"63903","inReplyTo":"xmqqectpziz9.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Ben Knoble","fromEmail":"ben.knoble@gmail.com","sentAt":"2025-08-05T19:18:43Z","receivedAt":"2025-08-05T19:18:55Z","isPatch":false,"sender":{"key":"ben.knoble@gmail.com","avatar":"https://avatars.githubusercontent.com/u/22802209?v=4"},"body":"\n> Le 5 août 2025 à 15:06, Junio C Hamano <gitster@pobox.com> a écrit :\n> \n> ﻿\"D. Ben Knoble\" <ben.knoble@gmail.com> writes:\n> \n>> With apologies for the mail noise, but I can't seem to reproduce any\n>> failures here on 371c45b569 (Merge branch 'dk/help-all' into seen,\n>> 2025-08-04), which is the latest seen I can find.\n> \n> When I report a public CI failure, I'd try to give an exact URL, but\n> otherwise the failure would have been seen in my local environment,\n> and because I tend to refrain from pushing out a know-to-be-broken\n> tree, it is unsurprising if 371c45b569 did not fail.\n> \n> That commit does not have lo/repo-info, I suspect.  I didn't know\n> exactly which topic was causing, but the error was observed when\n> \"repo --help-all\" was given, so perhaps some interactions between\n> these two topics.\n\nI did also try a merge between 371c… and lo/repo-info with similar success. :/\n\nIf you happen to find such a faulty tree again, would you consider publishing a broken branch I can fetch?"},{"id":"523666","messageId":"DB375D08-5178-4A7C-9538-DE4A7CDD1346@gmail.com","threadId":"63903","inReplyTo":"xmqqectpziz9.fsf@gitster.g","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Lucas Seiki Oshiro","fromEmail":"lucasseikioshiro@gmail.com","sentAt":"2025-08-06T17:28:14Z","receivedAt":"2025-08-06T17:28:29Z","isPatch":false,"sender":{"key":"lucasseikioshiro@gmail.com","avatar":"https://avatars.githubusercontent.com/u/12701580?v=4"},"body":"\n> \n> When I report a public CI failure, I'd try to give an exact URL, but\n> otherwise the failure would have been seen in my local environment,\n> and because I tend to refrain from pushing out a know-to-be-broken\n> tree, it is unsurprising if 371c45b569 did not fail.\n> \n> That commit does not have lo/repo-info, I suspect.  I didn't know\n> exactly which topic was causing\n\nYeah, I forgot to check the CI before I sent the last version. My bad,\nI'm sorry for this. I'll be more careful next time.\n\n> but the error was observed when\n> \"repo --help-all\" was given, so perhaps some interactions between\n> these two topics.\n\nHowever, after merging my local repo-info-v7 onto 371c45b569 in my local\nenvironment, I can execute `git repo --help-all` without any errors. I\nalso pushed this merge to GitHub [1], the only fails were directly related\nto my branch (some tests that I wrote and some leaks).\n\n[1] https://github.com/lucasoshiro/git/actions/runs/16759427895/job/47450548740\n\n"},{"id":"523669","messageId":"xmqqectouwo4.fsf@gitster.g","threadId":"63903","inReplyTo":"DB375D08-5178-4A7C-9538-DE4A7CDD1346@gmail.com","subject":"Re: What's cooking in git.git (Aug 2025, #01; Sun, 3)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-06T18:34:03Z","receivedAt":"2025-08-06T18:34:06Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Lucas Seiki Oshiro <lucasseikioshiro@gmail.com> writes:\n\n>> \n>> When I report a public CI failure, I'd try to give an exact URL, but\n>> otherwise the failure would have been seen in my local environment,\n>> and because I tend to refrain from pushing out a know-to-be-broken\n>> tree, it is unsurprising if 371c45b569 did not fail.\n>> \n>> That commit does not have lo/repo-info, I suspect.  I didn't know\n>> exactly which topic was causing\n>\n> Yeah, I forgot to check the CI before I sent the last version. My bad,\n> I'm sorry for this. I'll be more careful next time.\n>\n>> but the error was observed when\n>> \"repo --help-all\" was given, so perhaps some interactions between\n>> these two topics.\n>\n> However, after merging my local repo-info-v7 onto 371c45b569 in my local\n> environment, I can execute `git repo --help-all` without any errors.\n\nThe breakage reported was about some leaks, and not about \"does the\nend-user observe any error when the command runs?\".\n\n> I\n> also pushed this merge to GitHub [1], the only fails were directly related\n> to my branch (some tests that I wrote and some leaks).\n\nAnd it is not surprising, when these two were merged to 'seen',\nleaks in your topic were triggering failures.\n\n\n\n"}]}