{"thread":{"id":"63300","subject":"What's cooking in git.git (Apr 2025, #04; Tue, 15)","startedAt":"2025-04-15T23:41:13Z","lastAt":"2025-04-22T14:50:33Z","messageCount":8,"participants":["Junio C Hamano","Ramsay Jones","Jeff King","Patrick Steinhardt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"516239","messageId":"xmqqbjsxkn6x.fsf@gitster.g","threadId":"63300","inReplyTo":null,"subject":"What's cooking in git.git (Apr 2025, #04; Tue, 15)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-04-15T23:41:10Z","receivedAt":"2025-04-15T23:41:13Z","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/allow-upload-pack-from-other-people (2025-04-01) 1 commit\n  (merged to 'next' on 2025-04-07 at c27755834e)\n + t5605: fix test for cloning from a different user\n\n Test fix for an already graduated topic.\n source: <Z-sO9gcWAi_xh0tI@tapette.crustytoothpaste.net>\n\n\n* ds/maintenance-loose-objects-batchsize (2025-03-23) 2 commits\n  (merged to 'next' on 2025-04-07 at a4e55af4bc)\n + maintenance: add loose-objects.batchSize config\n + maintenance: force progress/no-quiet to children\n\n The job to coalesce loose objects into packfiles in \"git\n maintenance\" now has configurable batch size.\n source: <pull.1885.git.1742777512.gitgitgadget@gmail.com>\n\n\n* jk/zlib-inflate-fixes (2025-02-25) 10 commits\n  (merged to 'next' on 2025-04-07 at 4343a155f7)\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 source: <20250225062518.GA1293854@coredump.intra.peff.net>\n\n\n* js/comma-semicolon-confusion (2025-03-28) 10 commits\n  (merged to 'next' on 2025-04-07 at 3c1f7f4226)\n + detect-compiler: detect clang even if it found CUDA\n + clang: warn when the comma operator is used\n + compat/regex: explicitly mark intentional use of the comma operator\n + wildmatch: avoid using of the comma operator\n + diff-delta: avoid using the comma operator\n + xdiff: avoid using the comma operator unnecessarily\n + clar: avoid using the comma operator unnecessarily\n + kwset: avoid using the comma operator unnecessarily\n + rebase: avoid using the comma operator unnecessarily\n + remote-curl: avoid using the comma operator unnecessarily\n\n Code clean-up.\n source: <pull.1889.v3.git.1743076383.gitgitgadget@gmail.com>\n\n\n* jt/clone-guess-remote-head-fix (2025-03-25) 3 commits\n  (merged to 'next' on 2025-04-07 at 35793fd7d8)\n + advice: allow disabling default branch name advice\n + builtin/clone: suppress unexpected default branch advice\n + remote: allow `guess_remote_head()` to suppress advice\n\n \"git clone\" still gave the message about the default branch name;\n this message has been turned into an advice message that can be\n turned off.\n cf. <69ccc682-3f81-440f-8e96-a5af5d49fa60@gmail.com>\n source: <20250325005148.1771502-1-jltobler@gmail.com>\n\n\n* kn/reflog-drop (2025-03-17) 2 commits\n  (merged to 'next' on 2025-04-07 at 193c01b203)\n + reflog: implement subcommand to drop reflogs\n + reflog: improve error for when reflog is not found\n\n \"git reflog\" learns \"drop\" subcommand, that discards the entire\n reflog data for a ref.\n cf. <CAP8UFD1vTkPH=5b++6+=koozC31=wD1gQszvdFmzb73B9HM4Aw@mail.gmail.com>\n source: <20250314-493-add-command-to-purge-reflog-entries-v3-0-c24e23a6146d@gmail.com>\n\n\n* lo/userdiff-gitconfig (2025-04-01) 1 commit\n  (merged to 'next' on 2025-04-07 at 1b906232a1)\n + userdiff: add builtin driver for INI files\n\n Will merge to 'master'.\n cf. <Z-pGdyh0eG3xSe4W@pks.im>\n source: <20250331031309.94682-1-lucasseikioshiro@gmail.com>\n\n\n* md/t1403-path-is-file (2025-03-04) 1 commit\n  (merged to 'next' on 2025-04-07 at 93087893e8)\n + t1403: verify that path exists and is a file\n\n Test tweak.\n source: <20250304112728.41228-2-danimahendra0904@gmail.com>\n\n\n* ps/mingw-creat-excl-fix (2025-03-21) 2 commits\n  (merged to 'next' on 2025-04-07 at 590b0d4d21)\n + compat/mingw: fix EACCESS when opening files with `O_CREAT | O_EXCL`\n + meson: fix compat sources when compiling with MSVC\n\n Fix lockfile contention in reftable code on Windows.\n cf. <801fac5d-dd98-d157-6ff3-c3e8aa6a68ae@gmx.de>\n source: <20250320-b4-pks-mingw-lockfile-flake-v2-0-a84c90cfc6c2@pks.im>\n\n\n* ps/object-wo-the-repository (2025-03-10) 12 commits\n  (merged to 'next' on 2025-04-07 at 0cc0c8631d)\n + hash: stop depending on `the_repository` in `null_oid()`\n + hash: fix \"-Wsign-compare\" warnings\n + object-file: split out logic regarding hash algorithms\n + delta-islands: stop depending on `the_repository`\n + object-file-convert: stop depending on `the_repository`\n + pack-bitmap-write: stop depending on `the_repository`\n + pack-revindex: stop depending on `the_repository`\n + pack-check: stop depending on `the_repository`\n + environment: move access to \"core.bigFileThreshold\" into repo settings\n + pack-write: stop depending on `the_repository` and `the_hash_algo`\n + object: stop depending on `the_repository`\n + csum-file: stop depending on `the_repository`\n (this branch is used by ps/object-file-cleanup.)\n\n The object layer has been updated to take an explicit repository\n instance as a parameter in more code paths.\n cf. <CABPp-BFrjqf=dMNwxzyMj3EQrAXTYkH7rDTi7X7xoWnoW_A4eA@mail.gmail.com>\n source: <20250310-b4-pks-objects-without-the-repository-v4-0-f201b8ec57ba@pks.im>\n\n\n* ps/reftable-windows-unlink-fix (2025-02-18) 2 commits\n  (merged to 'next' on 2025-04-07 at 88e2a9a077)\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\n Portability fix.\n source: <20250206-b4-pks-reftable-win32-in-use-errors-v2-1-56985a4f6186@pks.im>\n\n\n* pw/custom-conflict-marker-size-for-merge-related-docs (2025-03-29) 1 commit\n  (merged to 'next' on 2025-04-07 at 281b7207e3)\n + merge-file doc: set conflict-marker-size attribute\n\n \"git-merge-file\" documentation source, which has lines that look\n like conflict markers, lacked custom conflict marker size defined,\n which has been corrected..\n source: <pull.1895.git.1743173140253.gitgitgadget@gmail.com>\n\n--------------------------------------------------\n[New Topics]\n\n* ps/meson-build-perf-bench (2025-04-14) 5 commits\n - meson: wire up benchmarking options\n - meson: wire up benchmarks\n - t/perf: fix benchmarks with out-of-tree builds\n - t/perf: use configured PERL_PATH\n - t/perf: fix benchmarks with alternate repo formats\n\n The build procedure based on Meson learned to drive the\n benchmarking tests.\n\n Comments?\n source: <20250414-pks-meson-benchmarks-v2-0-04377080a167@pks.im>\n\n\n* aw/t9811-modernize (2025-04-15) 1 commit\n - t9811: be more precise to check importing of tags\n\n Test updates.\n\n Will merge to 'next'?\n source: <20250412061957.81747-2-anthonywang03@icloud.com>\n\n\n* ps/fewer-perl (2025-04-15) 5 commits\n - Documentation: stop depending on Perl to generate command list\n - Documentation: stop depending on Perl to massage user manual\n - request-pull: stop depending on Perl\n - filter-branch: stop depending on Perl\n - Merge branch 'ps/test-wo-perl-prereq' into ps/fewer-perl\n (this branch uses ps/test-wo-perl-prereq.)\n\n Reduce requirement for Perl in our documentation build and a few\n scripts.\n\n Comments?\n source: <20250415-b4-pks-drop-perl-v1-0-c6addf175858@pks.im>\n\n\n* ps/parse-options-integers (2025-04-15) 5 commits\n - parse-options: detect mismatches in integer signedness\n - parse-options: introduce `OPTION_UNSIGNED`\n - parse-options: introduce precision handling for `OPTION_MAGNITUDE`\n - parse-options: introduce precision handling for `OPTION_INTEGER`\n - global: use designated initializers for options\n\n Update parse-options API to catch mistakes to pass address of an\n integral variable of a wrong type/size.\n\n Will merge to 'next'?\n source: <20250415-b4-pks-parse-options-integers-v2-0-ce07441a1f01@pks.im>\n\n--------------------------------------------------\n[Cooking]\n\n* kn/bundle-dedup-optim (2025-04-08) 2 commits\n  (merged to 'next' on 2025-04-11 at 082f7c87e0)\n + bundle: fix non-linear performance scaling with refs\n + t6020: test for duplicate refnames in bundle creation\n\n Optimize the code to dedup references recorded in a bundle file.\n\n Will merge to 'master'.\n source: <20250408-488-generating-bundles-with-many-references-has-non-linear-performance-v2-0-0802fc36a23d@gmail.com>\n\n\n* kn/meson-hdr-check (2025-04-14) 5 commits\n - makefile/meson: add 'check-headers' as alias for 'hdr-check'\n - meson: add support for 'hdr-check'\n - meson: move headers definition from 'contrib/coccinelle'\n - coccinelle: meson: rename variables to be more specific\n - Merge branch 'es/meson-build-skip-coccinelle' into kn/meson-hdr-check\n\n Add an equivalent to \"make hdr-check\" target to meson based builds.\n\n Getting there.\n cf. <xmqqy0w2o0l0.fsf@gitster.g>\n source: <20250414-505-wire-up-sparse-via-meson-v3-0-edc6e7f26745@gmail.com>\n\n\n* ps/object-file-cleanup (2025-04-15) 11 commits\n - object-store: merge \"object-store-ll.h\" and \"object-store.h\"\n - object-store: remove global array of cached objects\n - object: split out functions relating to object store subsystem\n - object-file: drop `index_blob_stream()`\n - object-file: split up concerns of `HASH_*` flags\n - object-file: split out functions relating to object store subsystem\n - object-file: move `xmmap()` into \"wrapper.c\"\n - object-file: move `git_open_cloexec()` to \"compat/open.c\"\n - object-file: move `safe_create_leading_directories()` into \"path.c\"\n - object-file: move `mkdir_in_gitdir()` into \"path.c\"\n - Merge branch 'ps/object-wo-the-repository' into ps/object-file-cleanup\n\n Code clean-up.\n\n Will merge to 'next'?\n source: <20250415-pks-split-object-file-v3-0-6aa7db7ad7b0@pks.im>\n\n\n* ab/environment-clean-header (2025-04-09) 1 commit\n  (merged to 'next' on 2025-04-09 at 845b92c7ef)\n + environment.h: remove unused variables\n\n Code clean-up.\n\n Will merge to 'master'.\n source: <2c547567-2b72-476c-9fc5-71cac050fa15@gmail.com>\n\n\n* cj/refname-avail-check-optim-typofix (2025-04-09) 1 commit\n  (merged to 'next' on 2025-04-09 at 95fe082872)\n + refs: fix duplicated word in comment\n\n Comment fix.\n\n Will merge to 'master'.\n source: <pull.1940.v2.git.git.1743857867327.gitgitgadget@gmail.com>\n\n\n* dd/sparse-glibc-workaround (2025-04-09) 1 commit\n  (merged to 'next' on 2025-04-09 at 14ee53c8e4)\n + sparse: ignore warning from new glibc headers\n\n Squelch false-positive from sparse.\n\n Will merge to 'master'.\n source: <a667da3985a0fe943cc0ff6ee8513d731d75a299.1721171853.git.congdanhqx@gmail.com>\n\n\n* js/ci-github-update-ubuntu (2025-04-09) 1 commit\n  (merged to 'next' on 2025-04-09 at fae10a2b5b)\n + ci: upgrade `sparse` to supported build agents\n\n Adjust to the deprecation of use of Ubuntu 20.04 GitHub Actions CI.\n\n Will merge to 'master'.\n source: <77f82414-261c-d2bc-f911-ed3d4b06c86e@gmx.de>\n\n\n* ps/refname-avail-check-optim (2025-04-09) 1 commit\n  (merged to 'next' on 2025-04-09 at 0d35104147)\n + refs/packed: fix BUG when seeking refs with UTF-8 characters\n\n Incorrect sorting of refs with bytes with high-bit set on platforms\n with signed char led to a BUG, which has been corrected.\n\n Will merge to 'master'.\n cf. <20250404205740.GA780449@coredump.intra.peff.net>\n source: <20250404-b4-pks-packed-backend-seek-with-utf8-v1-1-6ceb694e3bd7@pks.im>\n\n\n* rj/build-tweaks (2025-04-09) 13 commits\n - config.mak.uname: set CSPRNG_METHOD to getrandom on Linux\n - config.mak.uname: add arc4random to the cygwin build\n - config.mak.uname: add sysinfo() configuration for cygwin\n - builtin/gc.c: correct RAM calculation when using sysinfo\n - config.mak.uname: add clock_gettime() to the cygwin build\n - config.mak.uname: add HAVE_GETDELIM to the cygwin section\n - config.mak.uname: only set NO_REGEX on cygwin for v1.7\n - config.mak.uname: add a note about NO_STRLCPY for Linux\n - Makefile: remove NEEDS_LIBRT build variable\n - meson.build: set default help format to html on windows\n - meson.build: only set build variables for non-default values\n - Makefile: only set some BASIC_CFLAGS when RUNTIME_PREFIX is set\n - meson.build: remove -DCURL_DISABLE_TYPECHECK\n\n Various build tweaks, including CSPRNG selection on some platforms.\n\n Expecting a (hopefully minor and final) reroll?\n cf. <39bd9980-0009-4b2e-a8e8-b07b0013c2ec@ramsayjones.plus.com>\n source: <cover.1743859985.git.ramsay@ramsayjones.plus.com>\n\n\n* js/range-check-codeql-workaround (2025-03-28) 1 commit\n - read-cache: check range before dereferencing an array element\n\n Work around false positive from CodeQL checker.\n\n Will merge to 'next'?\n source: <73cae30129338cf219a810c3a2a78ef48d5637d0.1743073557.git.gitgitgadget@gmail.com>\n\n\n* jt/help-sha-backend-info-in-build-options (2025-04-07) 2 commits\n  (merged to 'next' on 2025-04-08 at 7389752293)\n + help: include unsafe SHA-1 build info in version\n + help: include SHA implementation in version info\n\n \"git help --build-options\" reports SHA-1 and SHA-256 backends used\n in the build.\n\n Will merge to 'master'.\n source: <20250403140529.497876-1-jltobler@gmail.com>\n\n\n* pb/perf-test-fixes (2025-04-14) 3 commits\n  (merged to 'next' on 2025-04-15 at f911b5420a)\n + p7821: fix instructions for testing with threads\n  (merged to 'next' on 2025-04-08 at a8aaeee41e)\n + p9210: fix 'scalar clone' when running from a detached HEAD\n + p7821: fix test_perf invocation for prereqs\n\n \"make perf\" fixes.\n\n Will merge to 'master'.\n cf. <Z-pD1puYT87YKAd4@pks.im>\n cf. <Z_TAtJ9LEeHo2AQN@pks.im>\n source: <pull.1936.v2.git.git.1744481732.gitgitgadget@gmail.com>\n\n\n* pb/status-rebase-fixes (2025-03-28) 4 commits\n - wt-status: suggest 'git rebase --continue' to conclude 'merge' instruction\n - wt-status: also abbreviate 'merge' and 'fixup -C' lines during rebase\n - SQUASH??? - <CAPig+cS92W_gYuNsaTvQxiP3xBK7Wpg0__uVkgAU1x0OFJUZgQ@mail.gmail.com>\n - rebase -r: do create merge commit after empty resolution\n\n A few fixes around \"git status\" while \"git rebase\" is running,\n plus a corner case bug fix for \"git rebase -r\".\n\n Expecting a (small and hopefully final) clarifying reroll.\n cf. <c2f93d99-2f4d-ee6d-7087-42320c6df0f2@gmx.de>\n cf. <e9700234-324d-dc63-d91e-9b8f36fabc79@gmail.com>\n source: <pull.1897.git.1743181401.gitgitgadget@gmail.com>\n\n\n* ps/cat-file-filter-batch (2025-04-07) 12 commits\n  (merged to 'next' on 2025-04-08 at eb8dfb17ea)\n + builtin/cat-file: use bitmaps to efficiently filter by object type\n + builtin/cat-file: deduplicate logic to iterate over all objects\n + pack-bitmap: introduce function to check whether a pack is bitmapped\n + pack-bitmap: add function to iterate over filtered bitmapped objects\n + pack-bitmap: allow passing payloads to `show_reachable_fn()`\n + builtin/cat-file: support \"object:type=\" objects filter\n + builtin/cat-file: support \"blob:limit=\" objects filter\n + builtin/cat-file: support \"blob:none\" objects filter\n + builtin/cat-file: wire up an option to filter objects\n + builtin/cat-file: introduce function to report object status\n + builtin/cat-file: rename variable that tracks usage\n + Merge branch 'tb/incremental-midx-part-2' into ps/cat-file-filter-batch\n\n \"git cat-file --batch\" and friends learned to allow \"--filter=\" to\n omit certain objects, just like the transport layer does.\n\n Will merge to 'master'.\n source: <20250402-pks-cat-file-object-type-filter-v3-0-4da6bb21871c@pks.im>\n\n\n* ps/misc-build-fixes (2025-04-01) 5 commits\n  (merged to 'next' on 2025-04-08 at 85693b6d96)\n + ci: use Visual Studio for win+meson job on GitHub Workflows\n + meson: distinguish build and target host binaries\n + meson: respect 'tests' build option in contrib\n + gitweb: fix generation of \"gitweb.js\"\n + meson: fix handling of '-Dcurl=auto'\n\n Random build fixes.\n\n Will merge to 'master'.\n cf. <CAOLa=ZQ8bTn-prAs2ycLdLLjVaLQL4GtLw_gFsvAcx_6j=MBjA@mail.gmail.com>\n source: <20250331-b4-pks-collect-build-fixes-v2-0-6b06136808f3@pks.im>\n\n\n* ps/test-wo-perl-prereq (2025-04-07) 20 commits\n  (merged to 'next' on 2025-04-08 at 424e2eab23)\n + t5703: refactor test to not depend on Perl\n + t5316: refactor `max_chain()` to not depend on Perl\n + t0210: refactor trace2 scrubbing to not use Perl\n + t0021: refactor `generate_random_characters()` to not depend on Perl\n + t/lib-httpd: refactor \"one-time-perl\" CGI script to not depend on Perl\n + t/lib-t6000: refactor `name_from_description()` to not depend on Perl\n + t/lib-gpg: refactor `sanitize_pgp()` to not depend on Perl\n + t: refactor tests depending on Perl for textconv scripts\n + t: refactor tests depending on Perl to print data\n + t: refactor tests depending on Perl substitution operator\n + t: refactor tests depending on Perl transliteration operator\n + Makefile: stop requiring Perl when running tests\n + meson: stop requiring Perl when tests are enabled\n + t: adapt existing PERL prerequisites\n + t: introduce PERL_TEST_HELPERS prerequisite\n + t: adapt `test_readlink()` to not use Perl\n + t: adapt `test_copy_bytes()` to not use Perl\n + t: adapt character translation helpers to not use Perl\n + t: refactor environment sanitization to not use Perl\n + t: skip chain lint when PERL_PATH is unset\n (this branch is used by ps/fewer-perl.)\n\n \"make test\" used to have a hard dependency on (basic) Perl; tests\n have been rewritten help environment with NO_PERL test the build as\n much as possible.\n\n Will merge to 'master'.\n source: <20250403-b4-pks-t-perlless-v4-0-be20ac3db39a@pks.im>\n\n\n* ab/rm-sign-compare (2025-03-29) 1 commit\n  (merged to 'next' on 2025-04-08 at bc1f98e81c)\n + rm: fix sign comparison warnings\n\n Some warnings from \"-Wsign-compare\" for builtin/rm.c have been\n squelched.\n\n Will merge to 'master'.\n source: <ecaaa968-f337-466b-b719-22ebb3587167@gmail.com>\n\n\n* kn/blame-porcelain-unblamable (2025-04-07) 1 commit\n  (merged to 'next' on 2025-04-09 at 971ba23ba0)\n + blame: print unblamable and ignored commits in porcelain mode\n\n \"git blame --porcelain\" mode now talks about unblamable lines and\n lines that are blamed to an ignored commit.\n\n Will merge to 'master'.\n source: <20250403160326.120124-1-karthik.188@gmail.com>\n\n\n* ua/update-update-server-info (2025-04-08) 1 commit\n  (merged to 'next' on 2025-04-09 at f0d47e97b5)\n + builtin/update-server-info: remove unnecessary if statement\n\n Code simplification.\n\n Will merge to 'master'.\n source: <20250407195850.299348-2-usmanakinyemi202@gmail.com>\n\n\n* ab/pathspec-sign-compare-workaround (2025-04-01) 1 commit\n  (merged to 'next' on 2025-04-08 at 875fb0e3ee)\n + pathspec: fix sign comparison warnings\n\n Some warnings from \"-Wsign-compare\" for pathspec.c have been\n squelched.\n\n Will merge to 'master'.\n source: <127c3010-4b23-436e-a07d-e6031e746113@gmail.com>\n\n\n* en/merge-recursive-debug (2025-04-08) 8 commits\n  (merged to 'next' on 2025-04-09 at 555be94c73)\n + builtin/{merge,rebase,revert}: remove GIT_TEST_MERGE_ALGORITHM\n + tests: remove GIT_TEST_MERGE_ALGORITHM and test_expect_merge_algorithm\n + merge-recursive.[ch]: thoroughly debug these\n + merge, sequencer: switch recursive merges over to ort\n + sequencer: switch non-recursive merges over to ort\n + merge-ort: enable diff-algorithms other than histogram\n + builtin/merge-recursive: switch to using merge_ort_generic()\n + checkout: replace merge_trees() with merge_ort_nonrecursive()\n\n Remove remnants of the recursive merge strategy backend, which was\n superseded by the ort merge strategy.\n\n Will merge to 'master'.\n source: <pull.1898.v3.git.1744127322.gitgitgadget@gmail.com>\n\n\n* ja/doc-reset-mv-rm-markup-updates (2025-04-14) 7 commits\n  (merged to 'next' on 2025-04-15 at 0b19646642)\n + doc: add markup for characters in Guidelines\n + doc: fix asciidoctor synopsis processing of triple-dots\n + doc: convert git-mv to new documentation format\n + doc: move synopsis git-mv commands in the synopsis section\n + doc: convert git-rm to new documentation format\n + doc: fix synopsis analysis logic\n + doc: convert git-reset to new documentation format\n\n Doc mark-up updates.\n\n Will merge to 'master'.\n source: <pull.1896.v2.git.1744460450.gitgitgadget@gmail.com>\n\n\n* md/userdiff-bash-shell-function (2025-04-01) 1 commit\n - userdiff: extend Bash pattern to cover more shell function forms\n\n The userdiff pattern for shell scripts has been updated to cope\n with more bash-isms.\n\n Comments?\n source: <20250330134018.9662-2-dhar61595@gmail.com>\n\n\n* mh/left-right-limited (2025-04-01) 1 commit\n - revision: fix --left/right-only use with unrelated histories\n\n \"git log --{left,right}-only A...B\", when A and B does not share\n any common ancestor, now behaves as expected.\n\n Will merge to 'next'?\n source: <20250330112850.2477673-1-m@lfurio.us>\n\n\n* ps/reftable-api-revamp (2025-04-07) 17 commits\n - reftable/table: move printing logic into test helper\n - reftable/constants: make block types part of the public interface\n - reftable/table: introduce iterator for table blocks\n - reftable/table: add `reftable_table` to the public interface\n - reftable/block: expose a generic iterator over reftable records\n - reftable/block: make block iterators reseekable\n - reftable/block: store block pointer in the block iterator\n - reftable/block: create public interface for reading blocks\n - git-zlib: use `struct z_stream_s` instead of typedef\n - reftable/block: rename `block_reader` to `reftable_block`\n - reftable/block: rename `block` to `block_data`\n - reftable/table: move reading block into block reader\n - reftable/block: simplify how we track restart points\n - reftable/blocksource: consolidate code into a single file\n - reftable/reader: rename data structure to \"table\"\n - reftable: fix formatting of the license header\n - Merge branch 'ps/reftable-sans-compat-util' into ps/reftable-api-revamp\n\n Overhaul of the reftable API.\n\n Will merge to 'next'?\n cf. <3okrcl7bdpy75hzyzpmrp7fluan4n3zvsroioq64id4a2kt3o4@fc6fetilb6y2>\n source: <20250407-pks-reftable-polishing-v2-0-316c4ff10571@pks.im>\n\n\n* jt/ref-transaction-abort-fix (2025-03-21) 1 commit\n  (merged to 'next' on 2025-04-08 at b653d86941)\n + builtin/fetch: avoid aborting closed reference transaction\n\n A ref transaction corner case fix.\n\n Will merge to 'master'.\n cf. <Z-E2ns9VziejSLB2@pks.im>\n source: <20250321004437.505461-1-jltobler@gmail.com>\n\n\n* zy/send-email-error-handling (2025-04-07) 2 commits\n  (merged to 'next' on 2025-04-08 at d5a716a940)\n + send-email: finer-grained SMTP error handling\n + send-email: capture errors in an eval {} block\n\n Auth-related (and unrelated) error handling in send-email has been\n made more robust.\n\n Will merge to 'master'.\n source: <20250326075246.2612627-1-05ZYT30@gmail.com>\n\n\n* jk/fetch-follow-remote-head-fix (2025-04-09) 4 commits\n  (merged to 'next' on 2025-04-09 at 3071fce577)\n + fetch: make set_head() call easier to read\n  (merged to 'next' on 2025-04-07 at ba5ac342a5)\n + fetch: don't ask for remote HEAD if followRemoteHEAD is \"never\"\n + fetch: only respect followRemoteHEAD with configured refspecs\n + Merge branch 'jk/fetch-ref-prefix-cleanup' into jk/fetch-follow-remote-head-fix\n\n \"git fetch [<remote>]\" with only the configured fetch refspec\n should be the only thing to update refs/remotes/<remote>/HEAD,\n but the code was overly eager to do so in other cases.\n\n Will merge to 'master'.\n cf. <Z9n7myvpnDOWFWqt@nand.local>\n source: <20250318053905.GA2051217@coredump.intra.peff.net>\n source: <20250404085812.GA772404@coredump.intra.peff.net>\n\n\n* sc/bundle-uri-use-all-refs-in-bundle (2025-03-18) 2 commits\n - bundle-uri: add test for bundle-uri clones with tags\n - bundle-uri: copy all bundle references ino the refs/bundle space\n\n Bundle-URI feature did not use refs recorded in the bundle other\n than normal branches as anchoring points to optimize the follow-up\n fetch during \"git clone\"; now it is told to utilize all.\n\n Needs more work on tests.\n cf. <e4244e04-d2f3-43ab-88cf-58d9804731b8@gmail.com>\n source: <pull.1897.v3.git.git.1742312173.gitgitgadget@gmail.com>\n\n\n* ds/path-walk-2 (2025-03-25) 13 commits\n - pack-objects: allow --shallow and --path-walk\n - path-walk: add new 'edge_aggressive' option\n - pack-objects: thread the path-based compression\n - pack-objects: refactor path-walk delta phase\n - scalar: enable path-walk during push via config\n - pack-objects: enable --path-walk via config\n - repack: add --path-walk option\n - t5538: add tests to confirm deltas in shallow pushes\n - pack-objects: introduce GIT_TEST_PACK_PATH_WALK\n - p5313: add performance tests for --path-walk\n - pack-objects: update usage to match docs\n - pack-objects: add --path-walk option\n - pack-objects: extract should_attempt_deltas()\n\n \"git pack-objects\" learns to find delta bases from blobs at the\n same path, using the --path-walk API.\n\n Comments?\n source: <pull.1819.v2.git.1742829769.gitgitgadget@gmail.com>\n\n\n* jt/rev-list-z (2025-03-21) 5 commits\n  (merged to 'next' on 2025-04-08 at e608ba85c1)\n + rev-list: support NUL-delimited --missing option\n + rev-list: support NUL-delimited --boundary option\n + rev-list: support delimiting objects with NUL bytes\n + rev-list: refactor early option parsing\n + rev-list: inline `show_object_with_name()` in `show_object()`\n\n \"git rev-list\" learns machine-parsable output format that delimits\n each field with NUL.\n\n Will merge to 'master'.\n source: <20250319183410.1225428-1-jltobler@gmail.com>\n\n\n* sk/clar-trailer-urlmatch-norm-test (2025-03-04) 2 commits\n  (merged to 'next' on 2025-04-08 at 51cb3c8bce)\n + t/unit-tests: convert urlmatch-normalization test to clar\n + t/unit-tests: convert trailer test to use clar\n\n A few traditional unit tests have been rewritten to use the clar\n framework.\n\n Will merge to 'master'.\n cf. <xmqqzfi0pthr.fsf@gitster.g>\n cf. <Z_TAtJ9LEeHo2AQN@pks.im>\n source: <20250304113323.10564-1-kuforiji98@gmail.com>\n\n\n* kn/non-transactional-batch-updates (2025-04-08) 9 commits\n  (merged to 'next' on 2025-04-08 at de64e9c49e)\n + update-ref: add --batch-updates flag for stdin mode\n + refs: support rejection in batch updates during F/D checks\n + refs: implement batch reference update support\n + refs: introduce enum-based transaction error types\n + refs/reftable: extract code from the transaction preparation\n + refs/files: remove duplicate duplicates check\n + refs: move duplicate refname update check to generic layer\n + refs/files: remove redundant check in split_symref_update()\n + Merge branch 'ps/refname-avail-check-optim' into kn/non-transactional-batch-updates\n\n Updating multiple references have only been possible in all-or-none\n fashion with transactions, but it can be more efficient to batch\n multiple updates even when some of them are allowed to fail in a\n best-effort manner.  A new \"best effort batches of updates\" mode\n has been introduced.\n\n Will merge to 'master'.\n source: <20250408085120.614893-1-karthik.188@gmail.com>\n\n\n* ps/maintenance-reflog-expire (2025-04-08) 6 commits\n  (merged to 'next' on 2025-04-08 at 40d6884143)\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 Will merge to 'master'.\n source: <20250408-pks-maintenance-reflog-expire-v2-0-1ad8634798b7@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 Expecting a reroll.\n source: <20250212032657.1807939-1-illia.bobyr@gmail.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\n Expecting a reroll.\n cf. <CAN2LT1Cc-UaUpabqcGascicR3nk6ZdFythamKje33Orhy5WoNA@mail.gmail.com>\n source: <20250221190451.12536-1-eric.peijian@gmail.com>\n"},{"id":"516312","messageId":"8790c486-8ebf-41b4-bf38-6e8b9f4d55bb@ramsayjones.plus.com","threadId":"63300","inReplyTo":"xmqqbjsxkn6x.fsf@gitster.g","subject":"Re: What's cooking in git.git (Apr 2025, #04; Tue, 15)","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsayjones.plus.com","sentAt":"2025-04-16T23:18:04Z","receivedAt":"2025-04-16T23:18:14Z","isPatch":false,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"\n\nOn 16/04/2025 00:41, Junio C Hamano wrote:\n[snip]\n> * rj/build-tweaks (2025-04-09) 13 commits\n>  - config.mak.uname: set CSPRNG_METHOD to getrandom on Linux\n>  - config.mak.uname: add arc4random to the cygwin build\n>  - config.mak.uname: add sysinfo() configuration for cygwin\n>  - builtin/gc.c: correct RAM calculation when using sysinfo\n>  - config.mak.uname: add clock_gettime() to the cygwin build\n>  - config.mak.uname: add HAVE_GETDELIM to the cygwin section\n>  - config.mak.uname: only set NO_REGEX on cygwin for v1.7\n>  - config.mak.uname: add a note about NO_STRLCPY for Linux\n>  - Makefile: remove NEEDS_LIBRT build variable\n>  - meson.build: set default help format to html on windows\n>  - meson.build: only set build variables for non-default values\n>  - Makefile: only set some BASIC_CFLAGS when RUNTIME_PREFIX is set\n>  - meson.build: remove -DCURL_DISABLE_TYPECHECK\n> \n>  Various build tweaks, including CSPRNG selection on some platforms.\n> \n>  Expecting a (hopefully minor and final) reroll?\n>  cf. <39bd9980-0009-4b2e-a8e8-b07b0013c2ec@ramsayjones.plus.com>\n>  source: <cover.1743859985.git.ramsay@ramsayjones.plus.com>\n> \n\nOK, I'm just about to send v3 (hopefully I won't mess up with\n'git send-email'). I forgot to mention in the cover-letter that\nI did a test merge with master@77d6ee513f, next@fd585f713e and\nseen@eab9365253; master and next auto-merged without incident,\nbut seen had a trivial conflict (I'm not sure why!).\n\nATB,\nRamsay Jones\n\n\n"},{"id":"516380","messageId":"20250418213531.GA89733@coredump.intra.peff.net","threadId":"63300","inReplyTo":"xmqqbjsxkn6x.fsf@gitster.g","subject":"aw/t9811-modernize, was Re: What's cooking in git.git (Apr 2025, #04; Tue, 15)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2025-04-18T21:35:31Z","receivedAt":"2025-04-18T21:35:35Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Apr 15, 2025 at 04:41:10PM -0700, Junio C Hamano wrote:\n\n> * aw/t9811-modernize (2025-04-15) 1 commit\n>  - t9811: be more precise to check importing of tags\n> \n>  Test updates.\n> \n>  Will merge to 'next'?\n>  source: <20250412061957.81747-2-anthonywang03@icloud.com>\n\nThis commit seems to be the cause of consistent failures in t9811 in CI\nfor macos (and I was able to bisect locally on linux after installing\np4).\n\nThe problem is this bit from the commit message:\n\n  Additionally, we add a negative test to verify that a possible\n  uninteded tag does not show up in the imported repository.\n\nThis line from the test output shows that command failing:\n\n  test_must_fail: command succeeded: git show-ref --verify refs/tags/TAG_F1_ONLY\n\nAnd indeed, that tag is definitely there. The original test comment\nsays:\n\n  # - a tag that is only on one file; this kind of tag\n  #   cannot be imported (at least not easily).\n\nSo I don't know if git-p4 got smarter, or what. But we should probably\nback out at least that part of the commit until we figure out what's\ngoing on (where \"we\" is somebody who cares a lot more about p4 than I\ndo).\n\n-Peff\n"},{"id":"516381","messageId":"xmqqtt6l9mlj.fsf@gitster.g","threadId":"63300","inReplyTo":"20250418213531.GA89733@coredump.intra.peff.net","subject":"Re: aw/t9811-modernize, was Re: What's cooking in git.git (Apr 2025, #04; Tue, 15)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-04-18T21:38:32Z","receivedAt":"2025-04-18T21:38:34Z","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> So I don't know if git-p4 got smarter, or what. But we should probably\n> back out at least that part of the commit until we figure out what's\n> going on (where \"we\" is somebody who cares a lot more about p4 than I\n> do).\n\nYes, and there was another breakage in that 2-hunk patch in the\nother hunk I sent out a fix for a few minutes ago.\n\nThanks.\n"},{"id":"516383","messageId":"xmqqmscd9mbl.fsf@gitster.g","threadId":"63300","inReplyTo":"xmqqtt6l9mlj.fsf@gitster.g","subject":"Re: aw/t9811-modernize, was Re: What's cooking in git.git (Apr 2025, #04; Tue, 15)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-04-18T21:44:30Z","receivedAt":"2025-04-18T21:44:32Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Jeff King <peff@peff.net> writes:\n>\n>> So I don't know if git-p4 got smarter, or what. But we should probably\n>> back out at least that part of the commit until we figure out what's\n>> going on (where \"we\" is somebody who cares a lot more about p4 than I\n>> do).\n>\n> Yes, and there was another breakage in that 2-hunk patch in the\n> other hunk I sent out a fix for a few minutes ago.\n\nWe seem to have quite a many ubuntu/linux test jobs, none of which\nfailed due to the obvious syntax error in t9811, which probalby\nmeans we are not running p4 tests at all on any of our Linux jobs.\n\n"},{"id":"516385","messageId":"20250418215723.GA91116@coredump.intra.peff.net","threadId":"63300","inReplyTo":"xmqqmscd9mbl.fsf@gitster.g","subject":"Re: aw/t9811-modernize, was Re: What's cooking in git.git (Apr 2025, #04; Tue, 15)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2025-04-18T21:57:23Z","receivedAt":"2025-04-18T21:57:24Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Apr 18, 2025 at 02:44:30PM -0700, Junio C Hamano wrote:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n> \n> > Jeff King <peff@peff.net> writes:\n> >\n> >> So I don't know if git-p4 got smarter, or what. But we should probably\n> >> back out at least that part of the commit until we figure out what's\n> >> going on (where \"we\" is somebody who cares a lot more about p4 than I\n> >> do).\n> >\n> > Yes, and there was another breakage in that 2-hunk patch in the\n> > other hunk I sent out a fix for a few minutes ago.\n\nOh, sorry, I totally missed your fixes. Obviously, yeah, your patches\nlook good. ;)\n\n> We seem to have quite a many ubuntu/linux test jobs, none of which\n> failed due to the obvious syntax error in t9811, which probalby\n> means we are not running p4 tests at all on any of our Linux jobs.\n\nI wondered that, too, but then I pulled the instructions for downloading\np4 from ci/install-dependencies, under the ubuntu heading. I wonder if\nthat is not triggering for some reason.\n\n-Peff\n"},{"id":"516451","messageId":"aActb3dB-r3s69h6@pks.im","threadId":"63300","inReplyTo":"20250418215723.GA91116@coredump.intra.peff.net","subject":"Re: aw/t9811-modernize, was Re: What's cooking in git.git (Apr 2025, #04; Tue, 15)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-04-22T05:47:27Z","receivedAt":"2025-04-22T05:47:37Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Fri, Apr 18, 2025 at 05:57:23PM -0400, Jeff King wrote:\n> On Fri, Apr 18, 2025 at 02:44:30PM -0700, Junio C Hamano wrote:\n> \n> > Junio C Hamano <gitster@pobox.com> writes:\n> > \n> > > Jeff King <peff@peff.net> writes:\n> > >\n> > >> So I don't know if git-p4 got smarter, or what. But we should probably\n> > >> back out at least that part of the commit until we figure out what's\n> > >> going on (where \"we\" is somebody who cares a lot more about p4 than I\n> > >> do).\n> > >\n> > > Yes, and there was another breakage in that 2-hunk patch in the\n> > > other hunk I sent out a fix for a few minutes ago.\n> \n> Oh, sorry, I totally missed your fixes. Obviously, yeah, your patches\n> look good. ;)\n> \n> > We seem to have quite a many ubuntu/linux test jobs, none of which\n> > failed due to the obvious syntax error in t9811, which probalby\n> > means we are not running p4 tests at all on any of our Linux jobs.\n> \n> I wondered that, too, but then I pulled the instructions for downloading\n> p4 from ci/install-dependencies, under the ubuntu heading. I wonder if\n> that is not triggering for some reason.\n\nSo the infrastructure seems to be working in general, as the jobs do\nexecute on GitLab CI [1], but on GitHub they indeed get skipped[2]. We\ndefinitely download the artifacts though [3], as well.\n\nI think the issue is where we put the resulting binaries: they get put\ninto \"$HOME/path\", but the problem is that \"$HOME\" is different between\n\"install-dependencies.sh\" and \"run-build-and-tests.sh\" because the\nlatter is executed as unprivileged user.\n\nSomething like the below (untested) patch should fix this.\n\nPatrick\n\n[1]: https://gitlab.com/gitlab-org/git/-/jobs/9760840184#L4002\n[2]: https://github.com/git/git/actions/runs/14526556290/job/40759119217#step:8:1814\n[3]: https://github.com/git/git/actions/runs/14526556290/job/40759119217#step:5:2190\n\n-- >8 --\n\nSubject: [PATCH] ci: fix p4d executable not being found on GitHub Actions\n\nOur tests for git-p4(1) depend on the p4d(1) and p4(1) executables to\nexist. As we require specific versions of those binaries which typically\naren't available on common distributions, we install them manually via\n\"ci/install-dependencies.sh\".\n\nThis script will put the binaries into \"$CUSTOM_PATH\", which gets\ndefined by \"ci/lib.sh\" -- if not explicitly overridden, its value will\nbe set to \"$HOME/path\". This causes issues though when running our tests\nas unprivileged user, as we do both in GitLab CI and GitHub Actions,\nbecause \"$HOME\" will be different when installing dependencies and when\nrunning the tests. Consequently, the downloaded binaries will not be\nfound unless \"$CUSTOM_PATH\" is overridden to a common location.\n\nWe already do this for GitLab CI, where it points to \"/custom\". Let's do\nthe same for GitHub Actions so that Perforce-based tests are executed\nagain.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\n---\n .github/workflows/main.yml | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex 83ca8e4182b..412a9a5107b 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -408,6 +408,7 @@ jobs:\n       jobname: ${{matrix.vector.jobname}}\n       CC: ${{matrix.vector.cc}}\n       CI_JOB_IMAGE: ${{matrix.vector.image}}\n+      CUSTOM_PATH: /custom\n     runs-on: ubuntu-latest\n     container: ${{matrix.vector.image}}\n     steps:\n-- \n2.49.0.901.g37484f566f.dirty\n\n"},{"id":"516497","messageId":"xmqq8qns5jyh.fsf@gitster.g","threadId":"63300","inReplyTo":"aActb3dB-r3s69h6@pks.im","subject":"Re: aw/t9811-modernize, was Re: What's cooking in git.git (Apr 2025, #04; Tue, 15)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-04-22T14:50:30Z","receivedAt":"2025-04-22T14:50:33Z","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> I think the issue is where we put the resulting binaries: they get put\n> into \"$HOME/path\", but the problem is that \"$HOME\" is different between\n> \"install-dependencies.sh\" and \"run-build-and-tests.sh\" because the\n> latter is executed as unprivileged user.\n\nYuck.  Thanks for a clealy written explanation and the change.\n\nWill queue.\n\n>\n> Something like the below (untested) patch should fix this.\n>\n> Patrick\n>\n> [1]: https://gitlab.com/gitlab-org/git/-/jobs/9760840184#L4002\n> [2]: https://github.com/git/git/actions/runs/14526556290/job/40759119217#step:8:1814\n> [3]: https://github.com/git/git/actions/runs/14526556290/job/40759119217#step:5:2190\n>\n> -- >8 --\n>\n> Subject: [PATCH] ci: fix p4d executable not being found on GitHub Actions\n>\n> Our tests for git-p4(1) depend on the p4d(1) and p4(1) executables to\n> exist. As we require specific versions of those binaries which typically\n> aren't available on common distributions, we install them manually via\n> \"ci/install-dependencies.sh\".\n>\n> This script will put the binaries into \"$CUSTOM_PATH\", which gets\n> defined by \"ci/lib.sh\" -- if not explicitly overridden, its value will\n> be set to \"$HOME/path\". This causes issues though when running our tests\n> as unprivileged user, as we do both in GitLab CI and GitHub Actions,\n> because \"$HOME\" will be different when installing dependencies and when\n> running the tests. Consequently, the downloaded binaries will not be\n> found unless \"$CUSTOM_PATH\" is overridden to a common location.\n>\n> We already do this for GitLab CI, where it points to \"/custom\". Let's do\n> the same for GitHub Actions so that Perforce-based tests are executed\n> again.\n>\n> Signed-off-by: Patrick Steinhardt <ps@pks.im>\n> ---\n>  .github/workflows/main.yml | 1 +\n>  1 file changed, 1 insertion(+)\n>\n> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\n> index 83ca8e4182b..412a9a5107b 100644\n> --- a/.github/workflows/main.yml\n> +++ b/.github/workflows/main.yml\n> @@ -408,6 +408,7 @@ jobs:\n>        jobname: ${{matrix.vector.jobname}}\n>        CC: ${{matrix.vector.cc}}\n>        CI_JOB_IMAGE: ${{matrix.vector.image}}\n> +      CUSTOM_PATH: /custom\n>      runs-on: ubuntu-latest\n>      container: ${{matrix.vector.image}}\n>      steps:\n"}]}