{"thread":{"id":"63028","subject":"What's cooking in git.git (Feb 2025, #09; Fri, 28)","startedAt":"2025-03-01T00:45:34Z","lastAt":"2025-03-30T00:56:48Z","messageCount":18,"participants":["Junio C Hamano","shejialuo","Patrick Steinhardt","Johannes Schindelin","Karthik Nayak"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"513316","messageId":"xmqq7c591sus.fsf@gitster.g","threadId":"63028","inReplyTo":null,"subject":"What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-03-01T00:45:31Z","receivedAt":"2025-03-01T00:45:34Z","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* bc/http-push-auth-netrc-fix (2025-02-24) 1 commit\n  (merged to 'next' on 2025-02-26 at c2b83ec2e7)\n + http: allow using netrc for WebDAV-based HTTP protocol\n\n The netrc support (via the cURL library) for the HTTP transport has\n been re-enabled.\n source: <20250223015331.588161-2-sandals@crustytoothpaste.net>\n\n\n* ek/mingw-rename-symlink (2025-02-21) 1 commit\n  (merged to 'next' on 2025-02-24 at 8a9f3a5cdc)\n + compat/mingw: rename the symlink, not the target\n\n Symlink renaming fix.\n source: <pull.1864.git.1740139296483.gitgitgadget@gmail.com>\n\n\n* jc/3.0-branches-remotes-update (2025-02-25) 1 commit\n  (merged to 'next' on 2025-02-26 at 76db3e05d5)\n + BreakingChanges: clarify branches/ and remotes/\n\n Removal of \".git/branches\" and \".git/remotes\" support in the\n BreakingChanges document has been further clarified.\n source: <xmqqcyf5io61.fsf@gitster.g>\n\n\n* jk/check-mailmap-wo-name-fix (2025-02-21) 1 commit\n  (merged to 'next' on 2025-02-25 at d6d4e05ad1)\n + mailmap: fix check-mailmap with full mailmap line\n\n \"git check-mailmap\" segfault fix.\n source: <20250221-jk-fix-sendemail-mailinfo-v2-1-9aca7dc05dbb@gmail.com>\n\n\n* kn/ref-migrate-skip-reflog (2025-02-21) 1 commit\n  (merged to 'next' on 2025-02-25 at c402e09d08)\n + builtin/refs: add '--no-reflog' flag to drop reflogs\n\n \"git refs migrate\" can optionally be told not to migrate the reflog.\n source: <20250221100423.91075-1-karthik.188@gmail.com>\n\n\n* pw/rebase-i-ff-empty-commit (2025-02-11) 1 commit\n  (merged to 'next' on 2025-02-25 at 63db268d47)\n + rebase -i: reword empty commit after fast-forward\n\n \"git rebase -i\" failed to allow rewording an empty commit that has\n been fast-forwarded.\n source: <pull.1860.v2.git.1739289549299.gitgitgadget@gmail.com>\n\n\n* rs/clear-commit-marks-optim (2025-02-24) 1 commit\n  (merged to 'next' on 2025-02-26 at 1773f2a2ff)\n + commit: avoid parent list buildup in clear_commit_marks_many()\n\n A micro-optimization.\n source: <2bd2d71f-0ee6-405f-bec8-368406ca53c8@web.de>\n\n\n* ua/os-version-capability (2025-02-19) 6 commits\n  (merged to 'next' on 2025-02-24 at 89ad48db14)\n + agent: advertise OS name via agent capability\n + t5701: add setup test to remove side-effect dependency\n + version: extend get_uname_info() to hide system details\n + version: refactor get_uname_info()\n + version: refactor redact_non_printables()\n + version: replace manual ASCII checks with isprint() for clarity\n\n The value of \"uname -s\" is by default sent over the wire as a part\n of the \"version\" capability.\n source: <20250215155130.1756934-1-usmanakinyemi202@gmail.com>\n\n--------------------------------------------------\n[New Topics]\n\n* lo/doc-merge-submodule-update (2025-02-25) 1 commit\n  (merged to 'next' on 2025-02-27 at 8086c4ca60)\n + merge-strategies.adoc: detail submodule merge\n\n What happens to submodules during merge has been documented in a\n bit more detail.\n\n Will merge to 'master'.\n source: <20250225161800.8268-1-lucasseikioshiro@gmail.com>\n\n\n* ps/maintenance-reflog-expire (2025-02-26) 6 commits\n - builtin/maintenance: introduce \"reflog-expire\" task\n - builtin/gc: split out function to expire reflog entries\n - builtin/reflog: make functions regarding `reflog_expire_options` public\n - builtin/reflog: stop storing per-reflog expiry dates globally\n - builtin/reflog: stop storing default reflog expiry dates globally\n - reflog: rename `cmd_reflog_expire_cb` to `reflog_expire_options`\n\n \"git maintenance\" learns a new task to expire reflog entries.\n\n Needs (real) review.\n source: <20250226-pks-maintenance-reflog-expire-v1-0-a1204a814952@pks.im>\n\n\n* ps/refname-avail-check-optim (2025-02-28) 16 commits\n - refs: reuse iterators when determining refname availability\n - refs/iterator: implement seeking for files iterators\n - refs/iterator: implement seeking for packed-ref iterators\n - refs/iterator: implement seeking for ref-cache iterators\n - refs/iterator: implement seeking for reftable iterators\n - refs/iterator: implement seeking for merged iterators\n - refs/iterator: provide infrastructure to re-seek iterators\n - refs/iterator: separate lifecycle from iteration\n - refs: stop re-verifying common prefixes for availability\n - refs/files: batch refname availability checks for initial transactions\n - refs/files: batch refname availability checks for normal transactions\n - refs/reftable: batch refname availability checks\n - refs: introduce function to batch refname availability checks\n - builtin/update-ref: skip ambiguity checks when parsing object IDs\n - object-name: allow skipping ambiguity checks in `get_oid()` family\n - object-name: introduce `repo_get_oid_with_flags()`\n\n The code paths to check whether a refname X is available (by seeing\n if another ref X/Y exists, etc.) have been optimized.\n\n Needs review.\n source: <20250228-pks-update-ref-optimization-v4-0-6425c04268b5@pks.im>\n\n\n* ps/build-meson-fixes (2025-02-27) 1 commit\n  (merged to 'next' on 2025-02-28 at 7e8431ab25)\n + gitlab-ci: fix \"msvc-meson\" test job succeeding despite test failures\n\n CI fix.\n\n Will merge to 'master'.\n source: <20250227-b4-pks-gitlab-ci-fix-msvc-meson-tests-v1-1-0420abde3807@pks.im>\n\n\n* tb/multi-cruft-paxk-refresh-fix (2025-02-27) 2 commits\n - builtin/pack-objects.c: freshen objects from existing cruft packs\n - builtin/repack.c: simplify cruft pack aggregation\n\n Certain \"cruft\" objects would have never been refreshed when there\n are multiple cruft packs in the repository, which has been\n corrected.\n\n Expecting a (hopefully minor and final) reroll.\n cf. <Z8Dvr3F1t7JKuNQf@nand.local>\n source: <cover.1740680964.git.me@ttaylorr.com>\n\n--------------------------------------------------\n[Cooking]\n\n* jk/zlib-inflate-fixes (2025-02-25) 10 commits\n - unpack_loose_rest(): rewrite return handling for clarity\n - unpack_loose_rest(): simplify error handling\n - unpack_loose_rest(): never clean up zstream\n - unpack_loose_rest(): avoid numeric comparison of zlib status\n - unpack_loose_header(): avoid numeric comparison of zlib status\n - git_inflate(): skip zlib_post_call() sanity check on Z_NEED_DICT\n - unpack_loose_header(): fix infinite loop on broken zlib input\n - unpack_loose_header(): report headers without NUL as \"bad\"\n - unpack_loose_header(): simplify next_out assignment\n - loose_object_info(): BUG() on inflating content with unknown type\n\n Fix our use of zlib corner cases.\n\n Will merge to 'next'?\n source: <20250225062518.GA1293854@coredump.intra.peff.net>\n\n\n* cc/signed-fast-export-import (2025-02-24) 6 commits\n - fast-export, fast-import: add support for signed-commits\n - fast-export: do not modify memory from get_commit_buffer\n - git-fast-export.txt: clarify why 'verbatim' may not be a good idea\n - fast-export: rename --signed-tags='warn' to 'warn-verbatim'\n - fast-export: fix missing whitespace after switch\n - git-fast-import.adoc: add missing LF in the BNF\n\n \"git fast-export | git fast-import\" learns to deal with commit and\n tag objects with embedded signatures a bit better.\n\n Needs review.\n source: <20250224142744.279643-1-christian.couder@gmail.com>\n\n\n* dk/test-aggregate-results-paste-fix (2025-02-24) 1 commit\n  (merged to 'next' on 2025-02-27 at cf8ba1cde5)\n + t/aggregate-results: fix paste(1) invocation\n\n The use of \"paste\" command for aggregating the test results have\n been corrected.\n\n Will merge to 'master'.\n source: <20250224192724.7625-1-ben.knoble+github@gmail.com>\n\n\n* sk/unit-test-oid (2025-02-25) 4 commits\n - t/unit-tests: convert oidtree test to use clar test framework\n - t/unit-tests: convert oidmap test to use clar test framework\n - t/unit-tests: convert oid-array test to use clar test framework\n - t/unit-tests: implement clar specific oid helper functions\n\n Convert a few unit tests to the clar framework.\n\n Comments?\n source: <20250225101044.84210-1-kuforiji98@gmail.com>\n\n\n* ps/meson-contrib-bits (2025-02-20) 10 commits\n  (merged to 'next' on 2025-02-27 at ef18273a2d)\n + ci: exercise credential helpers\n + ci: fix propagating UTF-8 test locale in musl-based Meson job\n + meson: wire up static analysis via Coccinelle\n + meson: wire up git-contacts(1)\n + meson: wire up credential helpers\n + contrib/credential: fix compilation of \"osxkeychain\" helper\n + contrib/credential: fix compiling \"libsecret\" helper\n + contrib/credential: fix compilation of wincred helper with MSVC\n + contrib/credential: fix \"netrc\" tests with out-of-tree builds\n + GIT-BUILD-OPTIONS: propagate project's source directory\n\n Update meson-based build procedure to cover contrib/ and other\n places as well.\n\n Will merge to 'master'.\n source: <20250218-b4-pks-meson-contrib-v1-0-c3edd292beb8@pks.im>\n\n\n* ms/merge-recursive-string-list-micro-optimization (2025-02-13) 1 commit\n  (merged to 'next' on 2025-02-27 at 839741ad40)\n + merge-recursive: optimize time complexity for process_renames\n\n Rename processing in the recursive merge backend has seen a micro\n optimization.\n\n Will merge to 'master'.\n source: <20250214044129.15282-1-meetsoni3017@gmail.com>\n\n\n* pb/doc-follow-remote-head (2025-02-14) 2 commits\n - config/remote.txt: improve wording for 'remote.<name>.followRemoteHEAD'\n - config/remote.txt: reunite 'severOption' description paragraphs\n\n source: <pull.1894.git.git.1739554578.gitgitgadget@gmail.com>\n\n\n* jt/diff-pairs (2025-02-26) 3 commits\n - builtin/diff-pairs: allow explicit diff queue flush\n - builtin: introduce diff-pairs command\n - diff: return diff_filepair from diff queue helpers\n\n A post-processing filter for \"diff --raw\" output has been\n introduced.\n\n Comments?\n source: <20250225233925.1345086-1-jltobler@gmail.com>\n\n\n* ps/path-sans-the-repository (2025-02-28) 16 commits\n  (merged to 'next' on 2025-02-28 at 41875498b7)\n + path: adjust last remaining users of `the_repository`\n + environment: move access to \"core.sharedRepository\" into repo settings\n + environment: move access to \"core.hooksPath\" into repo settings\n + repo-settings: introduce function to clear struct\n + path: drop `git_path()` in favor of `repo_git_path()`\n + rerere: let `rerere_path()` write paths into a caller-provided buffer\n + path: drop `git_common_path()` in favor of `repo_common_path()`\n + worktree: return allocated string from `get_worktree_git_dir()`\n + path: drop `git_path_buf()` in favor of `repo_git_path_replace()`\n + path: drop `git_pathdup()` in favor of `repo_git_path()`\n + path: drop unused `strbuf_git_path()` function\n + path: refactor `repo_submodule_path()` family of functions\n + submodule: refactor `submodule_to_gitdir()` to accept a repo\n + path: refactor `repo_worktree_path()` family of functions\n + path: refactor `repo_git_path()` family of functions\n + path: refactor `repo_common_path()` family of functions\n\n The path.[ch] API takes an explicit repository parameter passed\n throughout the callchain, instead of relying on the_repository\n singleton instance.\n\n Will merge to 'master'.\n source: <20250207-b4-pks-path-drop-the-repository-v2-0-13cad3c11b8a@pks.im>\n\n\n* ib/diff-S-G-with-longhand (2025-02-12) 10 commits\n - diff: docs: Use --patch-{grep,modifies} over -G/-S\n - diff: --pickaxe-{all,regex} help: Add --patch-{grep,modifies}\n - diff: test: Use --patch-{grep,modifies} over -G/-S\n - completion: Support --patch-{grep,modifies}\n - diff: --patch-{grep,modifies} arg names for -G and -S\n - docs: gitdiffcore: -G and -S: Use regex/string placeholders\n - diff: short help: Add -G and --pickaxe-grep\n - diff: short help: Correct -S description\n - diff: -G description: Correct copy/paste error\n - t/t4209-log-pickaxe: Naming typo: -G takes a regex\n\n The commands in the \"diff\" family learned longhands for \"-S\" and\n \"-G\" options.\n\n The core part looked mostly good.\n source: <20250212032657.1807939-1-illia.bobyr@gmail.com>\n\n\n* ps/reftable-windows-unlink-fix (2025-02-18) 2 commits\n - reftable: ignore file-in-use errors when unlink(3p) fails on Windows\n - Merge branch 'ps/reftable-sans-compat-util' into ps/reftable-windows-unlink-fix\n (this branch uses ps/reftable-sans-compat-util.)\n\n Portability fix.\n\n Waiting for the base topic to settle.\n source: <20250206-b4-pks-reftable-win32-in-use-errors-v2-1-56985a4f6186@pks.im>\n\n\n* ps/build-meson-fixes-0130 (2025-02-26) 14 commits\n  (merged to 'next' on 2025-02-27 at 55aaa8c63e)\n + gitlab-ci: restrict maximum number of link jobs on Windows\n + meson: consistently use custom program paths to resolve programs\n + meson: fix overwritten `git` variable\n + meson: prevent finding sed(1) in a loop\n + meson: improve handling of `sane_tool_path` option\n + meson: improve PATH handling\n + meson: drop separate version library\n + meson: stop linking libcurl into all executables\n + meson: introduce `libgit_curl` dependency\n + meson: simplify use of the common-main library\n + meson: inline the static 'git' library\n + meson: fix OpenSSL fallback when not explicitly required\n + meson: fix exec path with enabled runtime prefix\n + Merge branch 'ps/build-meson-fixes' into ps/build-meson-fixes-0130\n\n Assorted fixes and improvements to the build procedure based on\n meson.\n\n Will merge to 'master'.\n source: <20250226-b4-pks-meson-improvements-v3-0-60c77cf673ae@pks.im>\n\n\n* ps/reftable-sans-compat-util (2025-02-18) 18 commits\n - Makefile: skip reftable library for Coccinelle\n - reftable: decouple from Git codebase by pulling in \"compat/posix.h\"\n - git-compat-util.h: split out POSIX-emulating bits\n - compat/mingw: split out POSIX-related bits\n - reftable/basics: introduce `REFTABLE_UNUSED` annotation\n - reftable/basics: stop using `SWAP()` macro\n - reftable/stack: stop using `sleep_millisec()`\n - reftable/system: introduce `reftable_rand()`\n - reftable/reader: stop using `ARRAY_SIZE()` macro\n - reftable/basics: provide wrappers for big endian conversion\n - reftable/basics: stop using `st_mult()` in array allocators\n - reftable: stop using `BUG()` in trivial cases\n - reftable/record: don't `BUG()` in `reftable_record_cmp()`\n - reftable/record: stop using `BUG()` in `reftable_record_init()`\n - reftable/record: stop using `COPY_ARRAY()`\n - reftable/blocksource: stop using `xmmap()`\n - reftable/stack: stop using `write_in_full()`\n - reftable/stack: stop using `read_in_full()`\n (this branch is used by ps/reftable-windows-unlink-fix.)\n\n Make the code in reftable library less reliant on the service\n routines it used to borrow from Git proper, to make it easier to\n use by external users of the library.\n\n Waiting for Acks, especially for Windows bits?\n source: <20250218-pks-reftable-drop-git-compat-util-v6-0-8c1f39fb4c02@pks.im>\n\n\n* sj/ref-consistency-checks-more (2025-02-27) 9 commits\n - builtin/fsck: add `git refs verify` child process\n - packed-backend: check whether the \"packed-refs\" is sorted\n - packed-backend: add \"packed-refs\" entry consistency check\n - packed-backend: check whether the refname contains NUL characters\n - packed-backend: add \"packed-refs\" header consistency check\n - packed-backend: check if header starts with \"# pack-refs with: \"\n - packed-backend: check whether the \"packed-refs\" is regular file\n - builtin/refs: get worktrees without reading head information\n - t0602: use subshell to ensure working directory unchanged\n\n \"git fsck\" becomes more careful when checking the refs.\n\n Comments?\n source: <Z8CMx7O19PMs9sVY@ArchLinux>\n\n\n* jc/doc-attr-tree (2024-12-14) 1 commit\n - doc: give attr.tree a bit more visibility\n\n Make sure that \"git --attr-source=X\", GIT_ATTR_SOURCE, and\n attr.tree configuration variables appear at the same places in the\n documentation.\n\n On hold.\n cf. <20241216111112.GA2201417@coredump.intra.peff.net>\n source: <xmqq5xnladwi.fsf@gitster.g>\n\n\n* cc/lop-remote (2025-02-18) 3 commits\n - doc: add technical design doc for large object promisors\n - promisor-remote: check advertised name or URL\n - Add 'promisor-remote' capability to protocol v2\n\n Large-object promisor protocol extension.\n\n Comments?\n source: <20250218113204.2847463-1-christian.couder@gmail.com>\n\n\n* tb/incremental-midx-part-2 (2024-11-20) 15 commits\n - midx: implement writing incremental MIDX bitmaps\n - pack-bitmap.c: use `ewah_or_iterator` for type bitmap iterators\n - pack-bitmap.c: keep track of each layer's type bitmaps\n - ewah: implement `struct ewah_or_iterator`\n - pack-bitmap.c: apply pseudo-merge commits with incremental MIDXs\n - pack-bitmap.c: compute disk-usage with incremental MIDXs\n - pack-bitmap.c: teach `rev-list --test-bitmap` about incremental MIDXs\n - pack-bitmap.c: support bitmap pack-reuse with incremental MIDXs\n - pack-bitmap.c: teach `show_objects_for_type()` about incremental MIDXs\n - pack-bitmap.c: teach `bitmap_for_commit()` about incremental MIDXs\n - pack-bitmap.c: open and store incremental bitmap layers\n - pack-revindex: prepare for incremental MIDX bitmaps\n - Documentation: describe incremental MIDX bitmaps\n - Merge branch 'tb/pseudo-merge-bitmap-fixes' into tb/incremental-midx-part-2\n - Merge branch 'tb/incremental-midx-part-1' into tb/incremental-midx-part-2\n\n Incrementally updating multi-pack index files.\n\n Needs review.\n source: <cover.1732054032.git.me@ttaylorr.com>\n\n\n* ej/cat-file-remote-object-info (2025-02-24) 8 commits\n - cat-file: add remote-object-info to batch-command\n - transport: add client support for object-info\n - serve: advertise object-info feature\n - fetch-pack: move fetch initialization\n - fetch-pack: refactor packet writing\n - t1006: split test utility functions into new \"lib-cat-file.sh\"\n - cat-file: add declaration of variable i inside its for loop\n - git-compat-util: add strtoul_ul() with error handling\n\n \"git cat-file --batch\" and friends can optionally ask a remote\n server about objects it does not have.\n source: <20250221190451.12536-1-eric.peijian@gmail.com>\n"},{"id":"513406","messageId":"Z8XJnJEHZd1dFE96@ArchLinux","threadId":"63028","inReplyTo":"xmqq7c591sus.fsf@gitster.g","subject":"Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"shejialuo","fromEmail":"shejialuo@gmail.com","sentAt":"2025-03-03T15:24:12Z","receivedAt":"2025-03-03T15:24:13Z","isPatch":false,"sender":{"key":"shejialuo@gmail.com","avatar":"https://avatars.githubusercontent.com/u/56911263?v=4"},"body":"On Fri, Feb 28, 2025 at 04:45:31PM -0800, Junio C Hamano wrote:\n\n> * sj/ref-consistency-checks-more (2025-02-27) 9 commits\n>  - builtin/fsck: add `git refs verify` child process\n>  - packed-backend: check whether the \"packed-refs\" is sorted\n>  - packed-backend: add \"packed-refs\" entry consistency check\n>  - packed-backend: check whether the refname contains NUL characters\n>  - packed-backend: add \"packed-refs\" header consistency check\n>  - packed-backend: check if header starts with \"# pack-refs with: \"\n>  - packed-backend: check whether the \"packed-refs\" is regular file\n>  - builtin/refs: get worktrees without reading head information\n>  - t0602: use subshell to ensure working directory unchanged\n> \n>  \"git fsck\" becomes more careful when checking the refs.\n> \n>  Comments?\n>  source: <Z8CMx7O19PMs9sVY@ArchLinux>\n> \n> \n\nI think I have addressed the comments from you, Patrick and Karthik.\nCould we make the patch into \"next\"?\n\nThanks,\nJialuo\n"},{"id":"513416","messageId":"xmqqldtmvyfa.fsf@gitster.g","threadId":"63028","inReplyTo":"Z8XJnJEHZd1dFE96@ArchLinux","subject":"Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-03-03T17:03:53Z","receivedAt":"2025-03-03T17:03:56Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"shejialuo <shejialuo@gmail.com> writes:\n\n> On Fri, Feb 28, 2025 at 04:45:31PM -0800, Junio C Hamano wrote:\n>\n>> * sj/ref-consistency-checks-more (2025-02-27) 9 commits\n>>  - builtin/fsck: add `git refs verify` child process\n>>  - packed-backend: check whether the \"packed-refs\" is sorted\n>>  - packed-backend: add \"packed-refs\" entry consistency check\n>>  - packed-backend: check whether the refname contains NUL characters\n>>  - packed-backend: add \"packed-refs\" header consistency check\n>>  - packed-backend: check if header starts with \"# pack-refs with: \"\n>>  - packed-backend: check whether the \"packed-refs\" is regular file\n>>  - builtin/refs: get worktrees without reading head information\n>>  - t0602: use subshell to ensure working directory unchanged\n>> \n>>  \"git fsck\" becomes more careful when checking the refs.\n>> \n>>  Comments?\n>>  source: <Z8CMx7O19PMs9sVY@ArchLinux>\n>\n> I think I have addressed the comments from you, Patrick and Karthik.\n> Could we make the patch into \"next\"?\n\nMine was merely a small kibitzing on the logic flow structure, and I\ndidn't really looked at the larger picture beyond that part of the\ncode I looked at.  Let's hear from Patrick and Karthik (cc'ed) if\nthey find the result of the updates satisfactory.\n\nThanks.\n"},{"id":"513489","messageId":"Z8adWTssWtaNTfx4@pks.im","threadId":"63028","inReplyTo":"xmqqldtmvyfa.fsf@gitster.g","subject":"Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-03-04T06:27:37Z","receivedAt":"2025-03-04T06:27:46Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Mon, Mar 03, 2025 at 09:03:53AM -0800, Junio C Hamano wrote:\n> shejialuo <shejialuo@gmail.com> writes:\n> \n> > On Fri, Feb 28, 2025 at 04:45:31PM -0800, Junio C Hamano wrote:\n> >\n> >> * sj/ref-consistency-checks-more (2025-02-27) 9 commits\n> >>  - builtin/fsck: add `git refs verify` child process\n> >>  - packed-backend: check whether the \"packed-refs\" is sorted\n> >>  - packed-backend: add \"packed-refs\" entry consistency check\n> >>  - packed-backend: check whether the refname contains NUL characters\n> >>  - packed-backend: add \"packed-refs\" header consistency check\n> >>  - packed-backend: check if header starts with \"# pack-refs with: \"\n> >>  - packed-backend: check whether the \"packed-refs\" is regular file\n> >>  - builtin/refs: get worktrees without reading head information\n> >>  - t0602: use subshell to ensure working directory unchanged\n> >> \n> >>  \"git fsck\" becomes more careful when checking the refs.\n> >> \n> >>  Comments?\n> >>  source: <Z8CMx7O19PMs9sVY@ArchLinux>\n> >\n> > I think I have addressed the comments from you, Patrick and Karthik.\n> > Could we make the patch into \"next\"?\n> \n> Mine was merely a small kibitzing on the logic flow structure, and I\n> didn't really looked at the larger picture beyond that part of the\n> code I looked at.  Let's hear from Patrick and Karthik (cc'ed) if\n> they find the result of the updates satisfactory.\n\nYes, I'm happy with the current state of this patch series. I'm a tiny\nbit worried about the new call to `git refs verify` in git-fsck(1) being\nadded this late into the release cycle as we're now exercising a bunch\nof new code with only a few weeks of testing. My basic assumption is\nthat mostly noone uses `git refs verify` explicitly right now, so all of\nthe code we have introduced there over the last couple of releases did\nnot yet receive much testing at all.\n\nSo while I think that executing the command in git-fsck(1) is a good\nthing overall, I would feel a bit more comfortable if that last commit\nof the series landed in the next release cycle. But maybe I'm just being\noverly cautious?\n\nPatrick\n"},{"id":"513490","messageId":"Z8aeLc-xelujEjTE@pks.im","threadId":"63028","inReplyTo":"xmqq7c591sus.fsf@gitster.g","subject":"Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-03-04T06:31:09Z","receivedAt":"2025-03-04T06:31:13Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Fri, Feb 28, 2025 at 04:45:31PM -0800, Junio C Hamano wrote:\n> * ps/reftable-sans-compat-util (2025-02-18) 18 commits\n>  - Makefile: skip reftable library for Coccinelle\n>  - reftable: decouple from Git codebase by pulling in \"compat/posix.h\"\n>  - git-compat-util.h: split out POSIX-emulating bits\n>  - compat/mingw: split out POSIX-related bits\n>  - reftable/basics: introduce `REFTABLE_UNUSED` annotation\n>  - reftable/basics: stop using `SWAP()` macro\n>  - reftable/stack: stop using `sleep_millisec()`\n>  - reftable/system: introduce `reftable_rand()`\n>  - reftable/reader: stop using `ARRAY_SIZE()` macro\n>  - reftable/basics: provide wrappers for big endian conversion\n>  - reftable/basics: stop using `st_mult()` in array allocators\n>  - reftable: stop using `BUG()` in trivial cases\n>  - reftable/record: don't `BUG()` in `reftable_record_cmp()`\n>  - reftable/record: stop using `BUG()` in `reftable_record_init()`\n>  - reftable/record: stop using `COPY_ARRAY()`\n>  - reftable/blocksource: stop using `xmmap()`\n>  - reftable/stack: stop using `write_in_full()`\n>  - reftable/stack: stop using `read_in_full()`\n>  (this branch is used by ps/reftable-windows-unlink-fix.)\n> \n>  Make the code in reftable library less reliant on the service\n>  routines it used to borrow from Git proper, to make it easier to\n>  use by external users of the library.\n> \n>  Waiting for Acks, especially for Windows bits?\n>  source: <20250218-pks-reftable-drop-git-compat-util-v6-0-8c1f39fb4c02@pks.im>\n\nJohannes, did the new version of this patch series make your life any\neasier? As far as I can see the conflicts in your \"shears/seen\" branch\nseem to have been fixed, and the failing pipeline seems to be due to\nother issues. If so, we would be able to move ahead with this patch\nseries and the dependent fix for Windows below.\n\n> * ps/reftable-windows-unlink-fix (2025-02-18) 2 commits\n>  - reftable: ignore file-in-use errors when unlink(3p) fails on Windows\n>  - Merge branch 'ps/reftable-sans-compat-util' into ps/reftable-windows-unlink-fix\n>  (this branch uses ps/reftable-sans-compat-util.)\n\nThanks!\n\nPatrick\n"},{"id":"513495","messageId":"0c808b85-d97c-ecd3-0b1d-fba546a1124b@gmx.de","threadId":"63028","inReplyTo":"Z8aeLc-xelujEjTE@pks.im","subject":"ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2025-03-04T07:02:04Z","receivedAt":"2025-03-04T07:02:09Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Patrick,\n\nOn Tue, 4 Mar 2025, Patrick Steinhardt wrote:\n\n> On Fri, Feb 28, 2025 at 04:45:31PM -0800, Junio C Hamano wrote:\n> > * ps/reftable-sans-compat-util (2025-02-18) 18 commits\n> >  - Makefile: skip reftable library for Coccinelle\n> >  - reftable: decouple from Git codebase by pulling in \"compat/posix.h\"\n> >  - git-compat-util.h: split out POSIX-emulating bits\n> >  - compat/mingw: split out POSIX-related bits\n> >  - reftable/basics: introduce `REFTABLE_UNUSED` annotation\n> >  - reftable/basics: stop using `SWAP()` macro\n> >  - reftable/stack: stop using `sleep_millisec()`\n> >  - reftable/system: introduce `reftable_rand()`\n> >  - reftable/reader: stop using `ARRAY_SIZE()` macro\n> >  - reftable/basics: provide wrappers for big endian conversion\n> >  - reftable/basics: stop using `st_mult()` in array allocators\n> >  - reftable: stop using `BUG()` in trivial cases\n> >  - reftable/record: don't `BUG()` in `reftable_record_cmp()`\n> >  - reftable/record: stop using `BUG()` in `reftable_record_init()`\n> >  - reftable/record: stop using `COPY_ARRAY()`\n> >  - reftable/blocksource: stop using `xmmap()`\n> >  - reftable/stack: stop using `write_in_full()`\n> >  - reftable/stack: stop using `read_in_full()`\n> >  (this branch is used by ps/reftable-windows-unlink-fix.)\n> >\n> >  Make the code in reftable library less reliant on the service\n> >  routines it used to borrow from Git proper, to make it easier to\n> >  use by external users of the library.\n> >\n> >  Waiting for Acks, especially for Windows bits?\n> >  source: <20250218-pks-reftable-drop-git-compat-util-v6-0-8c1f39fb4c02@pks.im>\n>\n> Johannes, did the new version of this patch series make your life any\n> easier? As far as I can see the conflicts in your \"shears/seen\" branch\n> seem to have been fixed, and the failing pipeline seems to be due to\n> other issues. If so, we would be able to move ahead with this patch\n> series and the dependent fix for Windows below.\n\nHonestly, I cannot say whether it made my life any easier. As you can see\nfrom\nhttps://github.com/git-for-windows/git/actions/workflows/main.yml?query=branch%3Ashears%2Fseen,\nthe `shears/seen` branch failed to update automatically since I updated it\nmanually last Thursday. According to\nhttps://github.com/git/git/activity?ref=seen, there have been 5 updates\nthat were hence missed.\n\nI'll try to update the `shears/seen` branch now, but I'll time-box it to\nhalf an hour because I really planned on taking care of other issues.\n\nCiao,\nJohannes\n"},{"id":"513503","messageId":"9cc294f6-03de-d88f-9734-510a23fc8991@gmx.de","threadId":"63028","inReplyTo":"0c808b85-d97c-ecd3-0b1d-fba546a1124b@gmx.de","subject":"Re: ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2025-03-04T07:40:13Z","receivedAt":"2025-03-04T07:40:18Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Patrick,\n\nOn Tue, 4 Mar 2025, Johannes Schindelin wrote:\n\n> On Tue, 4 Mar 2025, Patrick Steinhardt wrote:\n>\n> > On Fri, Feb 28, 2025 at 04:45:31PM -0800, Junio C Hamano wrote:\n> > > * ps/reftable-sans-compat-util (2025-02-18) 18 commits\n> > >  - Makefile: skip reftable library for Coccinelle\n> > >  - reftable: decouple from Git codebase by pulling in \"compat/posix.h\"\n> > >  - git-compat-util.h: split out POSIX-emulating bits\n> > >  - compat/mingw: split out POSIX-related bits\n> > >  - reftable/basics: introduce `REFTABLE_UNUSED` annotation\n> > >  - reftable/basics: stop using `SWAP()` macro\n> > >  - reftable/stack: stop using `sleep_millisec()`\n> > >  - reftable/system: introduce `reftable_rand()`\n> > >  - reftable/reader: stop using `ARRAY_SIZE()` macro\n> > >  - reftable/basics: provide wrappers for big endian conversion\n> > >  - reftable/basics: stop using `st_mult()` in array allocators\n> > >  - reftable: stop using `BUG()` in trivial cases\n> > >  - reftable/record: don't `BUG()` in `reftable_record_cmp()`\n> > >  - reftable/record: stop using `BUG()` in `reftable_record_init()`\n> > >  - reftable/record: stop using `COPY_ARRAY()`\n> > >  - reftable/blocksource: stop using `xmmap()`\n> > >  - reftable/stack: stop using `write_in_full()`\n> > >  - reftable/stack: stop using `read_in_full()`\n> > >  (this branch is used by ps/reftable-windows-unlink-fix.)\n> > >\n> > >  Make the code in reftable library less reliant on the service\n> > >  routines it used to borrow from Git proper, to make it easier to\n> > >  use by external users of the library.\n> > >\n> > >  Waiting for Acks, especially for Windows bits?\n> > >  source: <20250218-pks-reftable-drop-git-compat-util-v6-0-8c1f39fb4c02@pks.im>\n> >\n> > Johannes, did the new version of this patch series make your life any\n> > easier? As far as I can see the conflicts in your \"shears/seen\" branch\n> > seem to have been fixed, and the failing pipeline seems to be due to\n> > other issues. If so, we would be able to move ahead with this patch\n> > series and the dependent fix for Windows below.\n>\n> Honestly, I cannot say whether it made my life any easier. As you can see\n> from\n> https://github.com/git-for-windows/git/actions/workflows/main.yml?query=branch%3Ashears%2Fseen,\n> the `shears/seen` branch failed to update automatically since I updated it\n> manually last Thursday. According to\n> https://github.com/git/git/activity?ref=seen, there have been 5 updates\n> that were hence missed.\n>\n> I'll try to update the `shears/seen` branch now, but I'll time-box it to\n> half an hour because I really planned on taking care of other issues.\n\nIt seems that there are the usual CMake-related breakages (not related to\nps/reftable-sans-compat-util, but to the introduction of the\n`CLAR_TEST_OBJS` or at least the `lib-oid` addition to that). I hope that\nthe tip commit of `shears/seen` that I just pushed addresses that, but I\nran out of time to monitor this.\n\nAnd there are some pretty bad `exit code 127` problems in the unit tests\non Windows, see e.g.\nhttps://github.com/git-for-windows/git/actions/runs/13648196783/job/38151312208#step:5:213\n(but again, I ran out of the allotted time).\n\nCiao,\nJohannes\n"},{"id":"513514","messageId":"Z8bL0HUuQqj7LlTp@pks.im","threadId":"63028","inReplyTo":"9cc294f6-03de-d88f-9734-510a23fc8991@gmx.de","subject":"Re: ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-03-04T09:46:17Z","receivedAt":"2025-03-04T09:46:26Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Tue, Mar 04, 2025 at 08:40:13AM +0100, Johannes Schindelin wrote:\n> On Tue, 4 Mar 2025, Johannes Schindelin wrote:\n> > On Tue, 4 Mar 2025, Patrick Steinhardt wrote:\n> > > Johannes, did the new version of this patch series make your life any\n> > > easier? As far as I can see the conflicts in your \"shears/seen\" branch\n> > > seem to have been fixed, and the failing pipeline seems to be due to\n> > > other issues. If so, we would be able to move ahead with this patch\n> > > series and the dependent fix for Windows below.\n> >\n> > Honestly, I cannot say whether it made my life any easier. As you can see\n> > from\n> > https://github.com/git-for-windows/git/actions/workflows/main.yml?query=branch%3Ashears%2Fseen,\n> > the `shears/seen` branch failed to update automatically since I updated it\n> > manually last Thursday. According to\n> > https://github.com/git/git/activity?ref=seen, there have been 5 updates\n> > that were hence missed.\n> >\n> > I'll try to update the `shears/seen` branch now, but I'll time-box it to\n> > half an hour because I really planned on taking care of other issues.\n> \n> It seems that there are the usual CMake-related breakages (not related to\n> ps/reftable-sans-compat-util, but to the introduction of the\n> `CLAR_TEST_OBJS` or at least the `lib-oid` addition to that). I hope that\n> the tip commit of `shears/seen` that I just pushed addresses that, but I\n> ran out of time to monitor this.\n> \n> And there are some pretty bad `exit code 127` problems in the unit tests\n> on Windows, see e.g.\n> https://github.com/git-for-windows/git/actions/runs/13648196783/job/38151312208#step:5:213\n> (but again, I ran out of the allotted time).\n\nInteresting. All of the errors relate to reftable stuff. Curiously,\nthose errors only seem to happen in the MinGW build, but not with the\nMeson-based MSVC build. I can reproduce the issue in MinGW indeed, so\nI'll investigate. Thanks for the hint!\n\nPatrick\n"},{"id":"513516","messageId":"Z8bQsflIqzZd3AMs@pks.im","threadId":"63028","inReplyTo":"Z8bL0HUuQqj7LlTp@pks.im","subject":"Re: ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-03-04T10:06:41Z","receivedAt":"2025-03-04T10:06:45Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Tue, Mar 04, 2025 at 10:46:17AM +0100, Patrick Steinhardt wrote:\n> On Tue, Mar 04, 2025 at 08:40:13AM +0100, Johannes Schindelin wrote:\n> > On Tue, 4 Mar 2025, Johannes Schindelin wrote:\n> > > On Tue, 4 Mar 2025, Patrick Steinhardt wrote:\n> > > > Johannes, did the new version of this patch series make your life any\n> > > > easier? As far as I can see the conflicts in your \"shears/seen\" branch\n> > > > seem to have been fixed, and the failing pipeline seems to be due to\n> > > > other issues. If so, we would be able to move ahead with this patch\n> > > > series and the dependent fix for Windows below.\n> > >\n> > > Honestly, I cannot say whether it made my life any easier. As you can see\n> > > from\n> > > https://github.com/git-for-windows/git/actions/workflows/main.yml?query=branch%3Ashears%2Fseen,\n> > > the `shears/seen` branch failed to update automatically since I updated it\n> > > manually last Thursday. According to\n> > > https://github.com/git/git/activity?ref=seen, there have been 5 updates\n> > > that were hence missed.\n> > >\n> > > I'll try to update the `shears/seen` branch now, but I'll time-box it to\n> > > half an hour because I really planned on taking care of other issues.\n> > \n> > It seems that there are the usual CMake-related breakages (not related to\n> > ps/reftable-sans-compat-util, but to the introduction of the\n> > `CLAR_TEST_OBJS` or at least the `lib-oid` addition to that). I hope that\n> > the tip commit of `shears/seen` that I just pushed addresses that, but I\n> > ran out of time to monitor this.\n> > \n> > And there are some pretty bad `exit code 127` problems in the unit tests\n> > on Windows, see e.g.\n> > https://github.com/git-for-windows/git/actions/runs/13648196783/job/38151312208#step:5:213\n> > (but again, I ran out of the allotted time).\n> \n> Interesting. All of the errors relate to reftable stuff. Curiously,\n> those errors only seem to happen in the MinGW build, but not with the\n> Meson-based MSVC build. I can reproduce the issue in MinGW indeed, so\n> I'll investigate. Thanks for the hint!\n\nOkay, I found the issue: it's mismatching allocators. Git for Windows\nhas support for the custom mimalloc allocator, and it's getting roped in\nby default in MinGW builds. And because the allocator is declared in\n\"git-compat-util.h\", the reftable library uses allocators from mscrt.dll,\nwhereas the rest of the Git code base uses allocators from mimalloc.\nThis causes us to sometimes free memory with a different allocator than\nwe have allocated it with, and that causes a SIGTRAP.\n\nBelow patch addresses the issue.\n\nPatrick\n\ndiff --git a/compat/posix.h b/compat/posix.h\nindex b484029f751..5ad3539d55b 100644\n--- a/compat/posix.h\n+++ b/compat/posix.h\n@@ -176,6 +176,16 @@ typedef unsigned long uintptr_t;\n #define _ALL_SOURCE 1\n #endif\n \n+#ifdef USE_MIMALLOC\n+#include \"mimalloc.h\"\n+#define malloc mi_malloc\n+#define calloc mi_calloc\n+#define realloc mi_realloc\n+#define free mi_free\n+#define strdup mi_strdup\n+#define strndup mi_strndup\n+#endif\n+\n #ifdef MKDIR_WO_TRAILING_SLASH\n #define mkdir(a,b) compat_mkdir_wo_trailing_slash((a),(b))\n int compat_mkdir_wo_trailing_slash(const char*, mode_t);\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex 8d2acf86670..a102a365592 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -226,16 +226,6 @@ static inline const char *precompose_string_if_needed(const char *in)\n # include <sys/sysinfo.h>\n #endif\n \n-#ifdef USE_MIMALLOC\n-#include \"mimalloc.h\"\n-#define malloc mi_malloc\n-#define calloc mi_calloc\n-#define realloc mi_realloc\n-#define free mi_free\n-#define strdup mi_strdup\n-#define strndup mi_strndup\n-#endif\n-\n #ifndef PATH_SEP\n #define PATH_SEP ':'\n #endif\n"},{"id":"513531","messageId":"Z8bxSEJgaz_aZAfW@ArchLinux","threadId":"63028","inReplyTo":"Z8adWTssWtaNTfx4@pks.im","subject":"Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"shejialuo","fromEmail":"shejialuo@gmail.com","sentAt":"2025-03-04T12:25:44Z","receivedAt":"2025-03-04T12:25:45Z","isPatch":false,"sender":{"key":"shejialuo@gmail.com","avatar":"https://avatars.githubusercontent.com/u/56911263?v=4"},"body":"On Tue, Mar 04, 2025 at 07:27:37AM +0100, Patrick Steinhardt wrote:\n> On Mon, Mar 03, 2025 at 09:03:53AM -0800, Junio C Hamano wrote:\n> > shejialuo <shejialuo@gmail.com> writes:\n> > \n> > > On Fri, Feb 28, 2025 at 04:45:31PM -0800, Junio C Hamano wrote:\n> > >\n> > >> * sj/ref-consistency-checks-more (2025-02-27) 9 commits\n> > >>  - builtin/fsck: add `git refs verify` child process\n> > >>  - packed-backend: check whether the \"packed-refs\" is sorted\n> > >>  - packed-backend: add \"packed-refs\" entry consistency check\n> > >>  - packed-backend: check whether the refname contains NUL characters\n> > >>  - packed-backend: add \"packed-refs\" header consistency check\n> > >>  - packed-backend: check if header starts with \"# pack-refs with: \"\n> > >>  - packed-backend: check whether the \"packed-refs\" is regular file\n> > >>  - builtin/refs: get worktrees without reading head information\n> > >>  - t0602: use subshell to ensure working directory unchanged\n> > >> \n> > >>  \"git fsck\" becomes more careful when checking the refs.\n> > >> \n> > >>  Comments?\n> > >>  source: <Z8CMx7O19PMs9sVY@ArchLinux>\n> > >\n> > > I think I have addressed the comments from you, Patrick and Karthik.\n> > > Could we make the patch into \"next\"?\n> > \n> > Mine was merely a small kibitzing on the logic flow structure, and I\n> > didn't really looked at the larger picture beyond that part of the\n> > code I looked at.  Let's hear from Patrick and Karthik (cc'ed) if\n> > they find the result of the updates satisfactory.\n> \n> Yes, I'm happy with the current state of this patch series. I'm a tiny\n> bit worried about the new call to `git refs verify` in git-fsck(1) being\n> added this late into the release cycle as we're now exercising a bunch\n> of new code with only a few weeks of testing. My basic assumption is\n> that mostly noone uses `git refs verify` explicitly right now, so all of\n> the code we have introduced there over the last couple of releases did\n> not yet receive much testing at all.\n> \n\nYes, I also think that there are few people who know the `git refs\nverify` and execute this command. That's the reason why I want to\nintegrate `git refs verify` in git-fsck(1) thus we could get feedback\nand improve the code.\n\nHowever, as you have said, we are also taking the risk.\n\n> So while I think that executing the command in git-fsck(1) is a good\n> thing overall, I would feel a bit more comfortable if that last commit\n> of the series landed in the next release cycle. But maybe I'm just being\n> overly cautious?\n> \n\nYes, by dropping the last commit, the risk would be reduced. Actually, I\ndon't mind which way we choose. But I somehow think that we should\nexecute the command in git-fsck(1), we need to get the feedback from the\nusers. From my point, I want to know how do the users react to the new\naded checks. Because we have tightened more rules, some may be good and\nsome may not be reasonable. And we could improve this in the next\nrelease.\n\nHowever, as I have said, both way works fine for me. So, I am open.\n\nThanks,\nJialuo\n\n> Patrick\n"},{"id":"513534","messageId":"xmqqbjugu82n.fsf@gitster.g","threadId":"63028","inReplyTo":"Z8adWTssWtaNTfx4@pks.im","subject":"Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-03-04T15:30:40Z","receivedAt":"2025-03-04T15:30:43Z","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 while I think that executing the command in git-fsck(1) is a good\n> thing overall, I would feel a bit more comfortable if that last commit\n> of the series landed in the next release cycle. But maybe I'm just being\n> overly cautious?\n\nAnything not in 'next' by -rc1 needs strong justification to further\nadvance during the cycle, so by default it would stay and cook in\n'next' before the release.  I have a handful of topics in mind that\nI do want to see merged before -rc2 but this was not one of them.\n\nThanks.\n"},{"id":"513745","messageId":"CAOLa=ZSe01-ziQi5SB+aZX8rtA7ZtzgapW7nH7+afO2yKPDaaQ@mail.gmail.com","threadId":"63028","inReplyTo":"xmqqldtmvyfa.fsf@gitster.g","subject":"Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Karthik Nayak","fromEmail":"karthik.188@gmail.com","sentAt":"2025-03-07T10:48:55Z","receivedAt":"2025-03-07T10:48:57Z","isPatch":false,"sender":{"key":"karthik.188@gmail.com","avatar":"https://avatars.githubusercontent.com/u/1786334?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> shejialuo <shejialuo@gmail.com> writes:\n>\n>> On Fri, Feb 28, 2025 at 04:45:31PM -0800, Junio C Hamano wrote:\n>>\n>>> * sj/ref-consistency-checks-more (2025-02-27) 9 commits\n>>>  - builtin/fsck: add `git refs verify` child process\n>>>  - packed-backend: check whether the \"packed-refs\" is sorted\n>>>  - packed-backend: add \"packed-refs\" entry consistency check\n>>>  - packed-backend: check whether the refname contains NUL characters\n>>>  - packed-backend: add \"packed-refs\" header consistency check\n>>>  - packed-backend: check if header starts with \"# pack-refs with: \"\n>>>  - packed-backend: check whether the \"packed-refs\" is regular file\n>>>  - builtin/refs: get worktrees without reading head information\n>>>  - t0602: use subshell to ensure working directory unchanged\n>>>\n>>>  \"git fsck\" becomes more careful when checking the refs.\n>>>\n>>>  Comments?\n>>>  source: <Z8CMx7O19PMs9sVY@ArchLinux>\n>>\n>> I think I have addressed the comments from you, Patrick and Karthik.\n>> Could we make the patch into \"next\"?\n>\n> Mine was merely a small kibitzing on the logic flow structure, and I\n> didn't really looked at the larger picture beyond that part of the\n> code I looked at.  Let's hear from Patrick and Karthik (cc'ed) if\n> they find the result of the updates satisfactory.\n>\n\nSorry I missed this email. I did review an earlier version of the series\nand it did look good to me, haven't reviewed the latest version (but\nthat's not a blocker from my side).\n\n> Thanks.\n"},{"id":"515098","messageId":"9cd879ed-5366-a7bf-f440-e35222a733d2@gmx.de","threadId":"63028","inReplyTo":"Z8bQsflIqzZd3AMs@pks.im","subject":"Re: ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2025-03-26T16:57:19Z","receivedAt":"2025-03-26T16:57:24Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Patrick,\n\nOn Tue, 4 Mar 2025, Patrick Steinhardt wrote:\n\n> On Tue, Mar 04, 2025 at 10:46:17AM +0100, Patrick Steinhardt wrote:\n> > On Tue, Mar 04, 2025 at 08:40:13AM +0100, Johannes Schindelin wrote:\n> > > On Tue, 4 Mar 2025, Johannes Schindelin wrote:\n> > > > On Tue, 4 Mar 2025, Patrick Steinhardt wrote:\n> > > > > Johannes, did the new version of this patch series make your life any\n> > > > > easier? As far as I can see the conflicts in your \"shears/seen\" branch\n> > > > > seem to have been fixed, and the failing pipeline seems to be due to\n> > > > > other issues. If so, we would be able to move ahead with this patch\n> > > > > series and the dependent fix for Windows below.\n> > > >\n> > > > Honestly, I cannot say whether it made my life any easier. As you can see\n> > > > from\n> > > > https://github.com/git-for-windows/git/actions/workflows/main.yml?query=branch%3Ashears%2Fseen,\n> > > > the `shears/seen` branch failed to update automatically since I updated it\n> > > > manually last Thursday. According to\n> > > > https://github.com/git/git/activity?ref=seen, there have been 5 updates\n> > > > that were hence missed.\n> > > >\n> > > > I'll try to update the `shears/seen` branch now, but I'll time-box it to\n> > > > half an hour because I really planned on taking care of other issues.\n> > >\n> > > It seems that there are the usual CMake-related breakages (not related to\n> > > ps/reftable-sans-compat-util, but to the introduction of the\n> > > `CLAR_TEST_OBJS` or at least the `lib-oid` addition to that). I hope that\n> > > the tip commit of `shears/seen` that I just pushed addresses that, but I\n> > > ran out of time to monitor this.\n> > >\n> > > And there are some pretty bad `exit code 127` problems in the unit tests\n> > > on Windows, see e.g.\n> > > https://github.com/git-for-windows/git/actions/runs/13648196783/job/38151312208#step:5:213\n> > > (but again, I ran out of the allotted time).\n> >\n> > Interesting. All of the errors relate to reftable stuff. Curiously,\n> > those errors only seem to happen in the MinGW build, but not with the\n> > Meson-based MSVC build. I can reproduce the issue in MinGW indeed, so\n> > I'll investigate. Thanks for the hint!\n>\n> Okay, I found the issue: it's mismatching allocators. Git for Windows\n> has support for the custom mimalloc allocator, and it's getting roped in\n> by default in MinGW builds. And because the allocator is declared in\n> \"git-compat-util.h\", the reftable library uses allocators from mscrt.dll,\n> whereas the rest of the Git code base uses allocators from mimalloc.\n> This causes us to sometimes free memory with a different allocator than\n> we have allocated it with, and that causes a SIGTRAP.\n>\n> Below patch addresses the issue.\n>\n> Patrick\n>\n> diff --git a/compat/posix.h b/compat/posix.h\n> index b484029f751..5ad3539d55b 100644\n> --- a/compat/posix.h\n> +++ b/compat/posix.h\n> @@ -176,6 +176,16 @@ typedef unsigned long uintptr_t;\n>  #define _ALL_SOURCE 1\n>  #endif\n>\n> +#ifdef USE_MIMALLOC\n> +#include \"mimalloc.h\"\n> +#define malloc mi_malloc\n> +#define calloc mi_calloc\n> +#define realloc mi_realloc\n> +#define free mi_free\n> +#define strdup mi_strdup\n> +#define strndup mi_strndup\n> +#endif\n> +\n>  #ifdef MKDIR_WO_TRAILING_SLASH\n>  #define mkdir(a,b) compat_mkdir_wo_trailing_slash((a),(b))\n>  int compat_mkdir_wo_trailing_slash(const char*, mode_t);\n> diff --git a/git-compat-util.h b/git-compat-util.h\n> index 8d2acf86670..a102a365592 100644\n> --- a/git-compat-util.h\n> +++ b/git-compat-util.h\n> @@ -226,16 +226,6 @@ static inline const char *precompose_string_if_needed(const char *in)\n>  # include <sys/sysinfo.h>\n>  #endif\n>\n> -#ifdef USE_MIMALLOC\n> -#include \"mimalloc.h\"\n> -#define malloc mi_malloc\n> -#define calloc mi_calloc\n> -#define realloc mi_realloc\n> -#define free mi_free\n> -#define strdup mi_strdup\n> -#define strndup mi_strndup\n> -#endif\n> -\n>  #ifndef PATH_SEP\n>  #define PATH_SEP ':'\n>  #endif\n\nI integrated this into Git for Windows' `shears/seen` branch (i.e. the\ncontinuously-rebased Git for Windows patches on top of the `seen` branch),\nand for the first time in weeks, it passed the CI build:\nhttps://github.com/git-for-windows/git/actions/runs/14087673643\n\nThank you very much!\nJohannes\n"},{"id":"515206","messageId":"xmqq34eyijbx.fsf@gitster.g","threadId":"63028","inReplyTo":"9cd879ed-5366-a7bf-f440-e35222a733d2@gmx.de","subject":"Re: ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-03-27T15:28:34Z","receivedAt":"2025-03-27T15:28:37Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n>> Below patch addresses the issue.\n>>\n>> Patrick\n>>\n>> diff --git a/compat/posix.h b/compat/posix.h\n>> index b484029f751..5ad3539d55b 100644\n>> --- a/compat/posix.h\n>> +++ b/compat/posix.h\n>> @@ -176,6 +176,16 @@ typedef unsigned long uintptr_t;\n>>  #define _ALL_SOURCE 1\n>>  #endif\n>>\n>> +#ifdef USE_MIMALLOC\n>> +#include \"mimalloc.h\"\n>> +#define malloc mi_malloc\n>> +#define calloc mi_calloc\n>> +#define realloc mi_realloc\n>> +#define free mi_free\n>> +#define strdup mi_strdup\n>> +#define strndup mi_strndup\n>> +#endif\n>> +\n>>  #ifdef MKDIR_WO_TRAILING_SLASH\n>>  #define mkdir(a,b) compat_mkdir_wo_trailing_slash((a),(b))\n>>  int compat_mkdir_wo_trailing_slash(const char*, mode_t);\n>> diff --git a/git-compat-util.h b/git-compat-util.h\n>> index 8d2acf86670..a102a365592 100644\n>> --- a/git-compat-util.h\n>> +++ b/git-compat-util.h\n>> @@ -226,16 +226,6 @@ static inline const char *precompose_string_if_needed(const char *in)\n>>  # include <sys/sysinfo.h>\n>>  #endif\n>>\n>> -#ifdef USE_MIMALLOC\n>> -#include \"mimalloc.h\"\n>> -#define malloc mi_malloc\n>> -#define calloc mi_calloc\n>> -#define realloc mi_realloc\n>> -#define free mi_free\n>> -#define strdup mi_strdup\n>> -#define strndup mi_strndup\n>> -#endif\n>> -\n>>  #ifndef PATH_SEP\n>>  #define PATH_SEP ':'\n>>  #endif\n>\n> I integrated this into Git for Windows' `shears/seen` branch (i.e. the\n> continuously-rebased Git for Windows patches on top of the `seen` branch),\n> and for the first time in weeks, it passed the CI build:\n> https://github.com/git-for-windows/git/actions/runs/14087673643\n\nThanks.\n\nSo we'll see a final reroll with the above changes and the topic\nwill finally be moving?  That's a great news.\n"},{"id":"515214","messageId":"Z-Y1YbE2EVqLZhGO@pks.im","threadId":"63028","inReplyTo":"xmqq34eyijbx.fsf@gitster.g","subject":"Re: ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-03-28T05:36:33Z","receivedAt":"2025-03-28T05:36:39Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Thu, Mar 27, 2025 at 08:28:34AM -0700, Junio C Hamano wrote:\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> >> Below patch addresses the issue.\n> >>\n> >> Patrick\n> >>\n> >> diff --git a/compat/posix.h b/compat/posix.h\n> >> index b484029f751..5ad3539d55b 100644\n> >> --- a/compat/posix.h\n> >> +++ b/compat/posix.h\n> >> @@ -176,6 +176,16 @@ typedef unsigned long uintptr_t;\n> >>  #define _ALL_SOURCE 1\n> >>  #endif\n> >>\n> >> +#ifdef USE_MIMALLOC\n> >> +#include \"mimalloc.h\"\n> >> +#define malloc mi_malloc\n> >> +#define calloc mi_calloc\n> >> +#define realloc mi_realloc\n> >> +#define free mi_free\n> >> +#define strdup mi_strdup\n> >> +#define strndup mi_strndup\n> >> +#endif\n> >> +\n> >>  #ifdef MKDIR_WO_TRAILING_SLASH\n> >>  #define mkdir(a,b) compat_mkdir_wo_trailing_slash((a),(b))\n> >>  int compat_mkdir_wo_trailing_slash(const char*, mode_t);\n> >> diff --git a/git-compat-util.h b/git-compat-util.h\n> >> index 8d2acf86670..a102a365592 100644\n> >> --- a/git-compat-util.h\n> >> +++ b/git-compat-util.h\n> >> @@ -226,16 +226,6 @@ static inline const char *precompose_string_if_needed(const char *in)\n> >>  # include <sys/sysinfo.h>\n> >>  #endif\n> >>\n> >> -#ifdef USE_MIMALLOC\n> >> -#include \"mimalloc.h\"\n> >> -#define malloc mi_malloc\n> >> -#define calloc mi_calloc\n> >> -#define realloc mi_realloc\n> >> -#define free mi_free\n> >> -#define strdup mi_strdup\n> >> -#define strndup mi_strndup\n> >> -#endif\n> >> -\n> >>  #ifndef PATH_SEP\n> >>  #define PATH_SEP ':'\n> >>  #endif\n> >\n> > I integrated this into Git for Windows' `shears/seen` branch (i.e. the\n> > continuously-rebased Git for Windows patches on top of the `seen` branch),\n> > and for the first time in weeks, it passed the CI build:\n> > https://github.com/git-for-windows/git/actions/runs/14087673643\n> \n> Thanks.\n> \n> So we'll see a final reroll with the above changes and the topic\n> will finally be moving?  That's a great news.\n\nThe topic can be merged as-is. The relevant MIMALLOC code only exists\ndownstream in Git for Windows, so there is nothing that I can do about\nit in this series.\n\nThanks all!\n\nPatrick\n"},{"id":"515236","messageId":"44302902-2624-8252-54dc-d4e5ee38ddbe@gmx.de","threadId":"63028","inReplyTo":"Z-Y1YbE2EVqLZhGO@pks.im","subject":"Re: ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2025-03-28T15:31:51Z","receivedAt":"2025-03-28T15:31:59Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Fri, 28 Mar 2025, Patrick Steinhardt wrote:\n\n> On Thu, Mar 27, 2025 at 08:28:34AM -0700, Junio C Hamano wrote:\n> > Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> > >> Below patch addresses the issue.\n> > >>\n> > >> Patrick\n> > >>\n> > >> diff --git a/compat/posix.h b/compat/posix.h\n> > >> index b484029f751..5ad3539d55b 100644\n> > >> --- a/compat/posix.h\n> > >> +++ b/compat/posix.h\n> > >> @@ -176,6 +176,16 @@ typedef unsigned long uintptr_t;\n> > >>  #define _ALL_SOURCE 1\n> > >>  #endif\n> > >>\n> > >> +#ifdef USE_MIMALLOC\n> > >> +#include \"mimalloc.h\"\n> > >> +#define malloc mi_malloc\n> > >> +#define calloc mi_calloc\n> > >> +#define realloc mi_realloc\n> > >> +#define free mi_free\n> > >> +#define strdup mi_strdup\n> > >> +#define strndup mi_strndup\n> > >> +#endif\n> > >> +\n> > >>  #ifdef MKDIR_WO_TRAILING_SLASH\n> > >>  #define mkdir(a,b) compat_mkdir_wo_trailing_slash((a),(b))\n> > >>  int compat_mkdir_wo_trailing_slash(const char*, mode_t);\n> > >> diff --git a/git-compat-util.h b/git-compat-util.h\n> > >> index 8d2acf86670..a102a365592 100644\n> > >> --- a/git-compat-util.h\n> > >> +++ b/git-compat-util.h\n> > >> @@ -226,16 +226,6 @@ static inline const char *precompose_string_if_needed(const char *in)\n> > >>  # include <sys/sysinfo.h>\n> > >>  #endif\n> > >>\n> > >> -#ifdef USE_MIMALLOC\n> > >> -#include \"mimalloc.h\"\n> > >> -#define malloc mi_malloc\n> > >> -#define calloc mi_calloc\n> > >> -#define realloc mi_realloc\n> > >> -#define free mi_free\n> > >> -#define strdup mi_strdup\n> > >> -#define strndup mi_strndup\n> > >> -#endif\n> > >> -\n> > >>  #ifndef PATH_SEP\n> > >>  #define PATH_SEP ':'\n> > >>  #endif\n> > >\n> > > I integrated this into Git for Windows' `shears/seen` branch (i.e. the\n> > > continuously-rebased Git for Windows patches on top of the `seen` branch),\n> > > and for the first time in weeks, it passed the CI build:\n> > > https://github.com/git-for-windows/git/actions/runs/14087673643\n> >\n> > Thanks.\n> >\n> > So we'll see a final reroll with the above changes and the topic\n> > will finally be moving?  That's a great news.\n>\n> The topic can be merged as-is. The relevant MIMALLOC code only exists\n> downstream in Git for Windows, so there is nothing that I can do about\n> it in this series.\n\nYes, and I already replied in the thread (which is admittedly challenging\nto keep track of, as it is not connected to these \"What's cooking?\" email\nin any way, or to the topic branch) in the affirmative that Patrick's\nsuggestion worked around the CI failures I observed in Git for Windows.\n\nSo yes, this can move forward.\n\nCiao,\nJohannes\n"},{"id":"515288","messageId":"xmqqplhzbdc2.fsf@gitster.g","threadId":"63028","inReplyTo":"Z-Y1YbE2EVqLZhGO@pks.im","subject":"Re: ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-03-29T23:56:45Z","receivedAt":"2025-03-29T23:56:48Z","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 we'll see a final reroll with the above changes and the topic\n>> will finally be moving?  That's a great news.\n>\n> The topic can be merged as-is. The relevant MIMALLOC code only exists\n> downstream in Git for Windows, so there is nothing that I can do about\n> it in this series.\n>\n> Thanks all!\n\nThanks, both, for productive discussions.\nLet me mark the topic for 'next'.\n\n"},{"id":"515289","messageId":"xmqqjz87bak2.fsf@gitster.g","threadId":"63028","inReplyTo":"44302902-2624-8252-54dc-d4e5ee38ddbe@gmx.de","subject":"Re: ps/reftable-sans-compat-util, was Re: What's cooking in git.git (Feb 2025, #09; Fri, 28)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-03-30T00:56:45Z","receivedAt":"2025-03-30T00:56:48Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n>> The topic can be merged as-is. The relevant MIMALLOC code only exists\n>> downstream in Git for Windows, so there is nothing that I can do about\n>> it in this series.\n>\n> Yes, and I already replied in the thread (which is admittedly challenging\n> to keep track of, as it is not connected to these \"What's cooking?\" email\n> in any way, or to the topic branch) in the affirmative that Patrick's\n> suggestion worked around the CI failures I observed in Git for Windows.\n>\n> So yes, this can move forward.\n\nThanks for confirmation.  The topic has been marked for 'next'.\nThanks.\n"}]}