{"thread":{"id":"61048","subject":"What's cooking in git.git (Mar 2024, #01; Mon, 4)","startedAt":"2024-03-04T22:36:44Z","lastAt":"2024-03-05T10:20:06Z","messageCount":2,"participants":["Junio C Hamano","Patrick Steinhardt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"489927","messageId":"xmqq4jdloc9a.fsf@gitster.g","threadId":"61048","inReplyTo":null,"subject":"What's cooking in git.git (Mar 2024, #01; Mon, 4)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-03-04T22:36:33Z","receivedAt":"2024-03-04T22:36:44Z","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-vcs/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* cp/t9146-use-test-path-helpers (2024-02-14) 1 commit\n  (merged to 'next' on 2024-02-21 at 0b8356ef33)\n + t9146: replace test -d/-e/-f with appropriate test_path_is_* function\n\n Test script clean-up.\n source: <pull.1661.v3.git.1707933048210.gitgitgadget@gmail.com>\n\n\n* ds/doc-send-email-capitalization (2024-02-20) 1 commit\n  (merged to 'next' on 2024-02-21 at c4aac4b993)\n + documentation: send-email: use camel case consistently\n\n Doc update.\n source: <88f1fe08c3047e14090957093ee8d98b0f60cb6c.1708467601.git.dsimic@manjaro.org>\n\n\n* hs/rebase-not-in-progress (2024-02-21) 1 commit\n  (merged to 'next' on 2024-02-23 at ce53f5243f)\n + rebase: make warning less passive aggressive\n\n Error message update.\n source: <pull.1669.v2.git.1708537097448.gitgitgadget@gmail.com>\n\n\n* ja/doc-placeholders-markup-rules (2024-02-21) 1 commit\n  (merged to 'next' on 2024-02-23 at b6761ceeac)\n + doc: clarify the format of placeholders\n\n The way placeholders are to be marked-up in documentation have been\n specified; use \"_<placeholder>_\" to typeset the word inside a pair\n of <angle-brakets> emphasized.\n source: <pull.1671.git.1708550340094.gitgitgadget@gmail.com>\n\n\n* ja/docfixes (2024-02-20) 3 commits\n  (merged to 'next' on 2024-02-21 at 6d778ca672)\n + doc: end sentences with full-stop\n + doc: close unclosed angle-bracket of a placeholder in git-clone doc\n + doc: git-rev-parse: enforce command-line description syntax\n\n Doc update.\n source: <pull.1670.git.1708468374.gitgitgadget@gmail.com>\n\n\n* jc/doc-add-placeholder-fix (2024-02-21) 1 commit\n  (merged to 'next' on 2024-02-23 at 6950ff216b)\n + doc: apply the new placeholder rules to git-add documentation\n\n Practice the new mark-up rule for <placeholders> with \"git add\"\n documentation page.\n source: <xmqqbk89molz.fsf@gitster.g>\n\n\n* jw/remote-doc-typofix (2024-02-21) 1 commit\n  (merged to 'next' on 2024-02-23 at fe95873cfa)\n + git-remote.txt: fix typo\n\n Docfix.\n source: <20240221083554.5255-1-jwilk@jwilk.net>\n\n\n* ps/difftool-dir-diff-exit-code (2024-02-20) 1 commit\n  (merged to 'next' on 2024-02-21 at a7bbef5a5f)\n + git-difftool--helper: honor `--trust-exit-code` with `--dir-diff`\n\n \"git difftool --dir-diff\" learned to honor the \"--trust-exit-code\"\n option; it used to always exit with 0 and signalled success.\n Acked-by: David Aguilar <davvid@gmail.com>\n cf. <CAJDDKr5+3jszG=psh=kUGDjNCeTDGPSS-qDuN=JAq-3ua=bNDg@mail.gmail.com>\n source: <0fac668f8fc021af9f9c4df5134da59816307ccc.1708423309.git.ps@pks.im>\n\n\n* ps/reflog-list (2024-02-21) 9 commits\n  (merged to 'next' on 2024-02-23 at 7413632239)\n + builtin/reflog: introduce subcommand to list reflogs\n + refs: stop resolving ref corresponding to reflogs\n + refs: drop unused params from the reflog iterator callback\n + refs: always treat iterators as ordered\n + refs/files: sort merged worktree and common reflogs\n + refs/files: sort reflogs returned by the reflog iterator\n + dir-iterator: support iteration in sorted order\n + dir-iterator: pass name to `prepare_next_entry_data()` directly\n + Merge branch 'ps/reftable-backend' into ps/reflog-list\n\n \"git reflog\" learned a \"list\" subcommand that enumerates known reflogs.\n source: <cover.1708518982.git.ps@pks.im>\n\n\n* tb/multi-pack-verbatim-reuse (2024-02-23) 1 commit\n  (merged to 'next' on 2024-02-23 at 8ee07f1da4)\n + Documentation/config/pack.txt: fix broken AsciiDoc mark-up\n\n Docfix.\n source: <72bb58e5f3b8a5a622394c5ff40426156e122580.1708720255.git.me@ttaylorr.com>\n\n--------------------------------------------------\n[New Topics]\n\n* jk/upload-pack-bounded-resources (2024-02-28) 9 commits\n  (merged to 'next' on 2024-03-01 at b70b6f0913)\n + upload-pack: free tree buffers after parsing\n + upload-pack: use PARSE_OBJECT_SKIP_HASH_CHECK in more places\n + upload-pack: always turn off save_commit_buffer\n + upload-pack: disallow object-info capability by default\n + upload-pack: accept only a single packfile-uri line\n + upload-pack: use a strmap for want-ref lines\n + upload-pack: use oidset for deepen_not list\n + upload-pack: switch deepen-not list to an oid_array\n + upload-pack: drop separate v2 \"haves\" array\n\n Originally merged to 'next' on 2024-02-29\n\n Various parts of upload-pack has been updated to bound the resource\n consumption relative to the size of the repository to protect from\n abusive clients.\n\n Will merge to 'master'.\n source: <20240228223700.GA1157826@coredump.intra.peff.net>\n\n\n* jk/upload-pack-v2-capability-cleanup (2024-02-29) 4 commits\n  (merged to 'next' on 2024-03-01 at 2750893db7)\n + upload-pack: only accept packfile-uris if we advertised it\n + upload-pack: use existing config mechanism for advertisement\n + upload-pack: centralize setup of sideband-all config\n + upload-pack: use repository struct to get config\n\n Originally merged to 'next' on 2024-02-29\n\n The upload-pack program, when talking over v2, accepted the\n packfile-uris protocol extension from the client, even if it did\n not advertise the capability, which has been corrected.\n\n Will merge to 'master'.\n source: <20240228224625.GA1158651@coredump.intra.peff.net>\n\n\n* es/config-doc-sort-sections (2024-02-29) 1 commit\n  (merged to 'next' on 2024-03-04 at 0752144ed7)\n + docs: sort configuration variable groupings alphabetically\n\n Doc updates.\n\n Will merge to 'master'.\n source: <20240229190229.20222-1-ericsunshine@charter.net>\n\n\n* kh/doc-dashed-commands-have-not-worked-for-a-long-time (2024-03-01) 1 commit\n  (merged to 'next' on 2024-03-04 at 7e070c67f9)\n + gitcli: drop mention of “non-dashed form”\n\n Doc update.\n\n Will merge to 'master'.\n source: <5b34bc4e22816f7f19bd26c15a08fe4c749b72f8.1709316230.git.code@khaugsbakk.name>\n\n\n* jc/xwrite-cleanup (2024-03-02) 3 commits\n - repack: check error writing to pack-objects subprocess\n - sideband: avoid short write(2)\n - unpack: replace xwrite() loop with write_in_full()\n\n Uses of xwrite() helper have been audited and updated for better\n error checking and simpler code.\n source: <20240302190348.3946569-1-gitster@pobox.com>\n\n\n* jc/test-i18ngrep (2024-03-02) 1 commit\n - test_i18ngrep: hard deprecate and forbid its use\n\n With release 2.44 we got rid of all uses of test_i18ngrep and there\n is no in-flight topic that adds a new use of it.  Make a call to\n test_i18ngrep a hard failure, so that we can remove it at the end\n of this release cycle.\n\n Comments?\n source: <xmqq5xy4zhdc.fsf@gitster.g>\n\n\n* gt/core-bare-in-templates (2024-03-04) 1 commit\n - setup: remove unnecessary variable\n\n Code simplification.\n\n Will merge to 'next'?\n source: <20240304151811.511780-1-shyamthakkar001@gmail.com>\n\n\n* so/clean-dry-run-without-force (2024-03-04) 2 commits\n - clean: further clean-up of implementation around \"--force\"\n - clean: improve -n and -f implementation and documentation\n\n The implementation in \"git clean\" that makes \"-n\" and \"-i\" ignore\n clean.requireForce has been simplified, together with the\n documentation.\n\n Will merge to 'next'.\n source: <87le6ziqzb.fsf_-_@osv.gnss.ru>\n source: <20240303220600.2491792-1-gitster@pobox.com>\n\n\n* jh/trace2-missing-def-param-fix (2024-03-04) 4 commits\n - trace2: remove unneeded calls to generate 'def_param' set\n - trace2: emit 'def_param' set with 'cmd_name' event\n - trace2: avoid emitting 'def_param' set more than once\n - t0211: demonstrate missing 'def_param' events for certain commands\n\n Some trace2 events that lacked def_param have learned to show it,\n enriching the output.\n\n Needs review.\n source: <pull.1679.git.1709566808.gitgitgadget@gmail.com>\n\n\n* ps/reftable-stack-tempfile (2024-03-04) 4 commits\n - reftable/stack: register compacted tables as tempfiles\n - reftable/stack: register lockfiles during compaction\n - reftable/stack: register new tables as tempfiles\n - lockfile: report when rollback fails\n\n The code in reftable backend that creates new table files works\n better with the tempfile framework to avoid leaving cruft after a\n failure.\n\n Needs review.\n source: <cover.1709549619.git.ps@pks.im>\n\n\n* rs/opt-parse-long-fixups (2024-03-03) 6 commits\n - parse-options: rearrange long_name matching code\n - parse-options: normalize arg and long_name before comparison\n - parse-options: detect ambiguous self-negation\n - parse-options: factor out register_abbrev() and struct parsed_option\n - parse-options: set arg of abbreviated option lazily\n - parse-options: recognize abbreviated negated option with arg\n\n The parse-options code that deals with abbreviated long option\n names have been cleaned up.\n\n Needs review.\n source: <20240303121944.20627-1-l.s.r@web.de>\n\n\n* sj/t9117-path-is-file (2024-03-04) 1 commit\n  (merged to 'next' on 2024-03-04 at de5f6a74cb)\n + t9117: prefer test_path_* helper functions\n\n GSoC practice to replace \"test -f\" with \"test_path_is_file\".\n\n Will merge to 'master'.\n source: <20240304095436.56399-2-shejialuo@gmail.com>\n\n\n* vm/t7301-use-test-path-helpers (2024-03-04) 1 commit\n - t7301: use test_path_is_(missing|file)\n\n GSoC practice to replace \"test -f\" with \"test_path_is_file\".\n\n Will merge to 'next'?\n source: <20240304171732.64457-2-vincenzo.mezzela@gmail.com>\n\n--------------------------------------------------\n[Cooking]\n\n* cw/git-std-lib (2024-02-28) 4 commits\n - SQUASH??? get rid of apparent debugging crufts\n - test-stdlib: show that git-std-lib is independent\n - git-std-lib: introduce Git Standard Library\n - pager: include stdint.h because uintmax_t is used\n\n Split libgit.a out to a separate git-std-lib tor easier reuse.\n\n Needs review.\n source: <cover.1696021277.git.jonathantanmy@google.com>\n\n\n* js/merge-base-with-missing-commit (2024-02-29) 11 commits\n  (merged to 'next' on 2024-03-01 at 3e3eabaee9)\n + commit-reach(repo_get_merge_bases_many_dirty): pass on errors\n + commit-reach(repo_get_merge_bases_many): pass on \"missing commits\" errors\n + commit-reach(get_octopus_merge_bases): pass on \"missing commits\" errors\n + commit-reach(repo_get_merge_bases): pass on \"missing commits\" errors\n + commit-reach(get_merge_bases_many_0): pass on \"missing commits\" errors\n + commit-reach(merge_bases_many): pass on \"missing commits\" errors\n + commit-reach(paint_down_to_common): start reporting errors\n + commit-reach(paint_down_to_common): prepare for handling shallow commits\n + commit-reach(repo_in_merge_bases_many): report missing commits\n + commit-reach(repo_in_merge_bases_many): optionally expect missing commits\n + commit-reach(paint_down_to_common): plug two memory leaks\n\n Originally merged to 'next' on 2024-02-29\n\n Make sure failure return from merge_bases_many() is properly caught.\n\n Needs an incremental fix-up.\n cf.<20240301065805.GB2680308@coredump.intra.peff.net>\n source: <pull.1657.v4.git.1709113457.gitgitgadget@gmail.com>\n\n\n* eg/add-uflags (2024-02-29) 1 commit\n  (merged to 'next' on 2024-03-01 at 5dbc997561)\n + add: use unsigned type for collection of bits\n\n Originally merged to 'next' on 2024-02-29\n\n Code clean-up practice.\n\n Will merge to 'master'.\n source: <20240229194444.8499-2-giganteeugenio2@gmail.com>\n\n\n* jc/doc-compat-util (2024-02-27) 1 commit\n  (merged to 'next' on 2024-03-01 at 89b76c65d7)\n + doc: clarify the wording on <git-compat-util.h> requirement\n\n Originally merged to 'next' on 2024-02-27\n\n Clarify wording in the CodingGuidelines that requires <git-compat-util.h>\n to be the first header file.\n\n Will merge to 'master'.\n source: <xmqqle76kdpr.fsf_-_@gitster.g>\n\n\n* jc/no-include-of-compat-util-from-headers (2024-02-24) 1 commit\n  (merged to 'next' on 2024-03-01 at ebb921087e)\n + compat: drop inclusion of <git-compat-util.h>\n\n Originally merged to 'next' on 2024-02-26\n\n Header file clean-up.\n\n Will merge to 'master'.\n source: <xmqqwmqtli18.fsf@gitster.g>\n\n\n* jk/reflog-special-cases-fix (2024-02-26) 3 commits\n  (merged to 'next' on 2024-03-01 at 2b67f6e668)\n + read_ref_at(): special-case ref@{0} for an empty reflog\n + get_oid_basic(): special-case ref@{n} for oldest reflog entry\n + Revert \"refs: allow @{n} to work with n-sized reflog\"\n\n Originally merged to 'next' on 2024-02-27\n\n The logic to access reflog entries by date and number had ugly\n corner cases at the boundaries, which have been cleaned up.\n\n Will merge to 'master'.\n source: <20240226100010.GA1214708@coredump.intra.peff.net>\n\n\n* jk/textconv-cache-outside-repo-fix (2024-02-26) 1 commit\n  (merged to 'next' on 2024-03-01 at 8508b83758)\n + userdiff: skip textconv caching when not in a repository\n\n Originally merged to 'next' on 2024-02-26\n\n The code incorrectly attempted to use textconv cache when asked,\n even when we are not running in a repository, which has been\n corrected.\n\n Will merge to 'master'.\n source: <20240226102729.GB2685773@coredump.intra.peff.net>\n\n\n* js/remove-cruft-files (2024-02-26) 1 commit\n  (merged to 'next' on 2024-03-01 at 63100a274b)\n + neue: remove a bogus empty file\n\n Originally merged to 'next' on 2024-02-26\n\n Remove an empty file that shouldn't have been added in the first\n place.\n\n Will merge to 'master'.\n source: <pull.1674.git.1708958183225.gitgitgadget@gmail.com>\n\n\n* jt/commit-redundant-scissors-fix (2024-02-27) 2 commits\n  (merged to 'next' on 2024-03-01 at e5983498f1)\n + commit: unify logic to avoid multiple scissors lines when merging\n + commit: avoid redundant scissor line with --cleanup=scissors -v\n\n Originally merged to 'next' on 2024-02-29\n\n \"git commit -v --cleanup=scissors\" used to add the scissors line\n twice in the log message buffer, which has been corrected.\n\n Will merge to 'master'.\n source: <Zd2eLxPelxvP8FDk@localhost>\n\n\n* pb/ort-make-submodule-conflict-message-an-advice (2024-02-26) 1 commit\n  (merged to 'next' on 2024-03-01 at df880cde2e)\n + merge-ort: turn submodule conflict suggestions into an advice\n\n Originally merged to 'next' on 2024-02-27\n\n When a merge conflicted at a submodule, merge-ort backend used to\n unconditionally give a lengthy message to suggest how to resolve\n it.  Now the message can be squelched as an advice message.\n\n Will merge to 'master'.\n source: <pull.1661.v2.git.git.1708954048301.gitgitgadget@gmail.com>\n\n\n* rj/complete-worktree-paths-fix (2024-02-27) 1 commit\n - completion: fix __git_complete_worktree_paths\n\n The logic to complete the command line arguments to \"git worktree\"\n subcommand (in contrib/) has been updated to correctly honor things\n like \"git -C dir\" etc.\n\n Comments?\n source: <b8f09e20-d0d3-4e0b-afe2-31affeb61052@gmail.com>\n\n\n* rs/fetch-simplify-with-starts-with (2024-02-26) 1 commit\n  (merged to 'next' on 2024-03-01 at 000e015fff)\n + fetch: convert strncmp() with strlen() to starts_with()\n\n Originally merged to 'next' on 2024-02-27\n\n Code simplification.\n\n Will merge to 'master'.\n source: <cb94b938-03f9-4dd3-84c1-f5244ca81be3@web.de>\n\n\n* rs/name-rev-with-mempool (2024-02-26) 2 commits\n  (merged to 'next' on 2024-03-01 at d53eac1836)\n + name-rev: use mem_pool_strfmt()\n + mem-pool: add mem_pool_strfmt()\n\n Originally merged to 'next' on 2024-02-27\n\n Many small allocations \"git name-rev\" makes have been updated to\n allocate from a mem-pool.\n\n Will merge to 'master'.\n source: <20240225113947.89357-1-l.s.r@web.de>\n\n\n* rs/submodule-prefix-simplify (2024-02-26) 1 commit\n  (merged to 'next' on 2024-03-01 at 05d4d90201)\n + submodule: use strvec_pushf() for --submodule-prefix\n\n Originally merged to 'next' on 2024-02-27\n\n Code simplification.\n\n Will merge to 'master'.\n source: <8cd983fb-32b9-41c6-a9e7-a485b190488c@web.de>\n\n\n* rs/t-ctype-simplify (2024-03-03) 4 commits\n  (merged to 'next' on 2024-03-04 at 9bd84a8877)\n + t-ctype: avoid duplicating class names\n + t-ctype: align output of i\n + t-ctype: simplify EOF check\n + t-ctype: allow NUL anywhere in the specification string\n\n Code simplification to one unit-test program.\n\n Will merge to 'master'.\n source: <20240303101330.20187-1-l.s.r@web.de>\n\n\n* sg/upload-pack-error-message-fix (2024-02-26) 1 commit\n  (merged to 'next' on 2024-03-01 at b94664a7a0)\n + upload-pack: don't send null character in abort message to the client\n\n Originally merged to 'next' on 2024-02-27\n\n An error message from \"git upload-pack\", which responds to \"git\n fetch\" requests, had a trialing NUL in it, which has been\n corrected.\n\n Will merge to 'master'.\n source: <20240225183452.1939334-1-szeder.dev@gmail.com>\n\n\n* ak/rebase-autosquash (2024-02-27) 1 commit\n  (merged to 'next' on 2024-03-01 at 57a34830b7)\n + rebase: fix typo in autosquash documentation\n\n Originally merged to 'next' on 2024-02-27\n\n Typofix.\n\n Will merge to 'master'.\n source: <pull.1676.git.1709015578890.gitgitgadget@gmail.com>\n\n\n* ps/reftable-repo-init-fix (2024-02-27) 2 commits\n  (merged to 'next' on 2024-03-01 at abbf85051b)\n + refs/reftable: don't fail empty transactions in repo without HEAD\n + Merge branch 'ps/remote-helper-repo-initialization-fix' into ps/reftable-repo-init-fix\n (this branch uses ps/remote-helper-repo-initialization-fix.)\n\n Originally merged to 'next' on 2024-02-29\n\n Clear the fallout from a fix for 2.44 regression.\n\n Will merge to 'master'.\n source: <95be968e10bd02c64448786e690bbefe5c082577.1709041721.git.ps@pks.im>\n\n\n* ps/remote-helper-repo-initialization-fix (2024-02-27) 1 commit\n  (merged to 'next' on 2024-03-01 at 7b79ffbd8f)\n + builtin/clone: allow remote helpers to detect repo\n (this branch is used by ps/reftable-repo-init-fix.)\n\n Originally merged to 'next' on 2024-02-29\n\n A custom remote helper no longer cannot access the newly created\n repository during \"git clone\", which is a regression in Git 2.44.\n This has been corrected.\n\n Will merge to 'master'.\n source: <9d888adf92e9a8af7c18847219f97d3e595e3e36.1709041721.git.ps@pks.im>\n\n\n* pw/rebase-i-ignore-cherry-pick-help-environment (2024-02-27) 1 commit\n - rebase -i: stop setting GIT_CHERRY_PICK_HELP\n\n Code simplification by getting rid of code that sets an environment\n variable that is no longer used.\n\n Comments?\n source: <pull.1678.git.1709042783847.gitgitgadget@gmail.com>\n\n\n* as/option-names-in-messages (2024-02-16) 5 commits\n - revision.c: trivial fix to message\n - builtin/clone.c: trivial fix of message\n - builtin/remote.c: trivial fix of error message\n - transport-helper.c: trivial fix of error message\n - rebase: trivial fix of error message\n\n Error message updates.\n\n Expecting a reroll.\n source: <20240216101647.28837-1-ash@kambanaria.org>\n\n\n* jh/fsmonitor-icase-corner-case-fix (2024-02-26) 14 commits\n - fsmonitor: support case-insensitive events\n - fsmonitor: refactor bit invalidation in refresh callback\n - fsmonitor: trace the new invalidated cache-entry count\n - fsmonitor: return invalided cache-entry count on non-directory event\n - fsmonitor: remove custom loop from non-directory path handler\n - fsmonitor: return invalidated cache-entry count on directory event\n - fsmonitor: move untracked-cache invalidation into helper functions\n - fsmonitor: refactor untracked-cache invalidation\n - dir: create untracked_cache_invalidate_trimmed_path()\n - fsmonitor: refactor refresh callback for non-directory events\n - fsmonitor: clarify handling of directory events in callback helper\n - fsmonitor: refactor refresh callback on directory events\n - t7527: add case-insensitve test for FSMonitor\n - name-hash: add index_dir_find()\n\n FSMonitor client code was confused when FSEvents were given in a\n different case on a case-insensitive filesystem, which has been\n corrected.\n\n Comments?\n source: <pull.1662.v3.git.1708983565.gitgitgadget@gmail.com>\n\n\n* ps/reftable-iteration-perf-part2 (2024-03-04) 13 commits\n - refs/reftable: precompute prefix length\n - reftable: allow inlining of a few functions\n - reftable/record: decode keys in place\n - reftable/record: reuse refname when copying\n - reftable/record: reuse refname when decoding\n - reftable/merged: avoid duplicate pqueue emptiness check\n - reftable/merged: circumvent pqueue with single subiter\n - reftable/merged: handle subiter cleanup on close only\n - reftable/merged: remove unnecessary null check for subiters\n - reftable/merged: make subiters own their records\n - reftable/merged: advance subiter on subsequent iteration\n - reftable/merged: make `merged_iter` structure private\n - reftable/pq: use `size_t` to track iterator index\n\n The code to iterate over refs with the reftable backend has seen\n some optimization.\n\n Will merge to 'next'?\n source: <cover.1709548907.git.ps@pks.im>\n\n\n* js/cmake-with-test-tool (2024-02-23) 2 commits\n - cmake: let `test-tool` run the unit tests, too\n - Merge branch 'js/unit-test-suite-runner' into js/cmake-with-test-tool\n (this branch uses js/unit-test-suite-runner.)\n\n \"test-tool\" is now built in CMake build to also run the unit tests.\n\n May want to roll it into the base topic.\n source: <pull.1666.git.1708038924522.gitgitgadget@gmail.com>\n\n\n* kn/for-all-refs (2024-02-23) 6 commits\n  (merged to 'next' on 2024-03-01 at 76a1297ace)\n + for-each-ref: add new option to include root refs\n + ref-filter: rename 'FILTER_REFS_ALL' to 'FILTER_REFS_REGULAR'\n + refs: introduce `refs_for_each_include_root_refs()`\n + refs: extract out `loose_fill_ref_dir_regular_file()`\n + refs: introduce `is_pseudoref()` and `is_headref()`\n + Merge branch 'ps/reftable-backend' into kn/for-all-refs\n\n Originally merged to 'next' on 2024-02-27\n\n \"git for-each-ref\" learned \"--include-root-refs\" option to show\n even the stuff outside the 'refs/' hierarchy.\n\n Will merge to 'master'.\n source: <20240223100112.44127-1-karthik.188@gmail.com>\n\n\n* jc/no-lazy-fetch (2024-02-27) 3 commits\n  (merged to 'next' on 2024-03-01 at 14303cdbfe)\n + git: extend --no-lazy-fetch to work across subprocesses\n + git: document GIT_NO_REPLACE_OBJECTS environment variable\n + git: --no-lazy-fetch option\n\n Originally merged to 'next' on 2024-02-29\n\n \"git --no-lazy-fetch cmd\" allows to run \"cmd\" while disabling lazy\n fetching of objects from the promisor remote, which may be handy\n for debugging.\n\n Will merge to 'master'.\n source: <xmqq1q8xx38i.fsf@gitster.g>\n source: <xmqq1q9cl3xv.fsf@gitster.g>\n source: <xmqq1q9mmtpw.fsf@gitster.g>\n\n\n* js/unit-test-suite-runner (2024-02-23) 8 commits\n - ci: use test-tool as unit test runner on Windows\n - t/Makefile: run unit tests alongside shell tests\n - unit tests: add rule for running with test-tool\n - test-tool run-command testsuite: support unit tests\n - test-tool run-command testsuite: remove hardcoded filter\n - test-tool run-command testsuite: get shell from env\n - t0080: turn t-basic unit test into a helper\n - Merge branch 'jk/unit-tests-buildfix' into js/unit-test-suite-runner\n (this branch is used by js/cmake-with-test-tool.)\n\n The \"test-tool\" has been taught to run testsuite tests in parallel,\n bypassing the need to use the \"prove\" tool.\n\n Needs review.\n source: <cover.1708728717.git.steadmon@google.com>\n\n\n* cc/rev-list-allow-missing-tips (2024-02-28) 5 commits\n  (merged to 'next' on 2024-03-01 at fd7b109d04)\n + revision: fix --missing=[print|allow*] for annotated tags\n  (merged to 'next' on 2024-03-01 at ac0fc94378)\n + rev-list: allow missing tips with --missing=[print|allow*]\n + t6022: fix 'test' style and 'even though' typo\n + oidset: refactor oidset_insert_from_set()\n + revision: clarify a 'return NULL' in get_reference()\n\n Originally merged to 'next' on 2024-02-28\n\n \"git rev-list --missing=print\" has learned to optionally take\n \"--allow-missing-tips\", which allows the objects at the starting\n points to be missing.\n\n Will merge to 'master'.\n source: <20240214142513.4002639-1-christian.couder@gmail.com>\n\n\n* js/merge-tree-3-trees (2024-02-23) 7 commits\n  (merged to 'next' on 2024-03-01 at a75dc95f04)\n + fill_tree_descriptor(): mark error message for translation\n + cache-tree: avoid an unnecessary check\n + Always check `parse_tree*()`'s return value\n + t4301: verify that merge-tree fails on missing blob objects\n + merge-ort: do check `parse_tree()`'s return value\n + merge-tree: fail with a non-zero exit code on missing tree objects\n + merge-tree: accept 3 trees as arguments\n\n Originally merged to 'next' on 2024-02-28\n\n \"git merge-tree\" has learned that the three trees involved in the\n 3-way merge only need to be trees, not necessarily commits.\n\n Will merge to 'master'.\n source: <pull.1647.git.1706277694231.gitgitgadget@gmail.com>\n source: <pull.1651.v4.git.1708677266.gitgitgadget@gmail.com>\n\n\n* rj/complete-reflog (2024-03-03) 5 commits\n - completion: reflog subcommands and options\n - completion: factor out __git_resolve_builtins\n - completion: introduce __git_find_subcommand\n - completion: reflog show <log-options>\n - completion: reflog with implicit \"show\"\n\n The command line completion script (in contrib/) learned to\n complete \"git reflog\" better.\n\n Will merge to 'next'?\n source: <ea6c8890-9ff3-46c9-b933-6a52083b1001@gmail.com>\n\n\n* ml/log-merge-with-cherry-pick-and-other-pseudo-heads (2024-02-28) 2 commits\n  (merged to 'next' on 2024-03-01 at 339111ec08)\n + revision: implement `git log --merge` also for rebase/cherry-pick/revert\n + revision: ensure MERGE_HEAD is a ref in prepare_show_merge\n\n Originally merged to 'next' on 2024-02-29\n\n \"git log --merge\" learned to pay attention to CHERRY_PICK_HEAD and\n other kinds of *_HEAD pseudorefs.\n\n Will merge to 'master'.\n source: <20240228-ml-log-merge-with-cherry-pick-and-other-pseudo-heads-v6-0-8ec34c052b39@gmail.com>\n\n\n* bk/complete-dirname-for-am-and-format-patch (2024-01-12) 1 commit\n - completion: dir-type optargs for am, format-patch\n\n Command line completion support (in contrib/) has been\n updated for a few commands to complete directory names where a\n directory name is expected.\n\n Expecting a reroll.\n cf. <40c3a824-a961-490b-94d4-4eb23c8f713d@gmail.com>\n source: <d37781c3-6af2-409b-95a8-660a9b92d20b@smtp-relay.sendinblue.com>\n\n\n* bk/complete-send-email (2024-01-12) 1 commit\n - completion: don't complete revs when --no-format-patch\n\n Command line completion support (in contrib/) has been taught to\n avoid offering revision names as candidates to \"git send-email\" when\n the command is used to send pre-generated files.\n\n Expecting a reroll.\n cf. <CAC4O8c88Z3ZqxH2VVaNPpEGB3moL5dJcg3cOWuLWwQ_hLrJMtA@mail.gmail.com>\n source: <a718b5ee-afb0-44bd-a299-3208fac43506@smtp-relay.sendinblue.com>\n\n\n* la/trailer-api (2024-03-01) 9 commits\n - format_trailers_from_commit(): indirectly call trailer_info_get()\n - format_trailer_info(): move \"fast path\" to caller\n - format_trailers(): use strbuf instead of FILE\n - trailer_info_get(): reorder parameters\n - trailer: move interpret_trailers() to interpret-trailers.c\n - trailer: reorder format_trailers_from_commit() parameters\n - trailer: rename functions to use 'trailer'\n - shortlog: add test for de-duplicating folded trailers\n - trailer: free trailer_info _after_ all related usage\n\n source: <pull.1632.v6.git.1709252086.gitgitgadget@gmail.com>\n\n\n* tb/path-filter-fix (2024-01-31) 16 commits\n - bloom: introduce `deinit_bloom_filters()`\n - commit-graph: reuse existing Bloom filters where possible\n - object.h: fix mis-aligned flag bits table\n - commit-graph: new Bloom filter version that fixes murmur3\n - commit-graph: unconditionally load Bloom filters\n - bloom: prepare to discard incompatible Bloom filters\n - bloom: annotate filters with hash version\n - repo-settings: introduce commitgraph.changedPathsVersion\n - t4216: test changed path filters with high bit paths\n - t/helper/test-read-graph: implement `bloom-filters` mode\n - bloom.h: make `load_bloom_filter_from_graph()` public\n - t/helper/test-read-graph.c: extract `dump_graph_info()`\n - gitformat-commit-graph: describe version 2 of BDAT\n - commit-graph: ensure Bloom filters are read with consistent settings\n - revision.c: consult Bloom filters for root commits\n - t/t4216-log-bloom.sh: harden `test_bloom_filters_not_used()`\n\n The Bloom filter used for path limited history traversal was broken\n on systems whose \"char\" is unsigned; update the implementation and\n bump the format version to 2.\n\n Waiting for a final ack?\n cf. <ZcFjkfbsBfk7JQIH@nand.local>\n source: <cover.1706741516.git.me@ttaylorr.com>\n\n\n* eb/hash-transition (2023-10-02) 30 commits\n - t1016-compatObjectFormat: add tests to verify the conversion between objects\n - t1006: test oid compatibility with cat-file\n - t1006: rename sha1 to oid\n - test-lib: compute the compatibility hash so tests may use it\n - builtin/ls-tree: let the oid determine the output algorithm\n - object-file: handle compat objects in check_object_signature\n - tree-walk: init_tree_desc take an oid to get the hash algorithm\n - builtin/cat-file: let the oid determine the output algorithm\n - rev-parse: add an --output-object-format parameter\n - repository: implement extensions.compatObjectFormat\n - object-file: update object_info_extended to reencode objects\n - object-file-convert: convert commits that embed signed tags\n - object-file-convert: convert commit objects when writing\n - object-file-convert: don't leak when converting tag objects\n - object-file-convert: convert tag objects when writing\n - object-file-convert: add a function to convert trees between algorithms\n - object: factor out parse_mode out of fast-import and tree-walk into in object.h\n - cache: add a function to read an OID of a specific algorithm\n - tag: sign both hashes\n - commit: export add_header_signature to support handling signatures on tags\n - commit: convert mergetag before computing the signature of a commit\n - commit: write commits for both hashes\n - object-file: add a compat_oid_in parameter to write_object_file_flags\n - object-file: update the loose object map when writing loose objects\n - loose: compatibilty short name support\n - loose: add a mapping between SHA-1 and SHA-256 for loose objects\n - repository: add a compatibility hash algorithm\n - object-names: support input of oids in any supported hash\n - oid-array: teach oid-array to handle multiple kinds of oids\n - object-file-convert: stubs for converting from one object format to another\n\n Teach a repository to work with both SHA-1 and SHA-256 hash algorithms.\n\n Will merge to and cook in 'next'?\n cf. <xmqqv86z5359.fsf@gitster.g>\n source: <878r8l929e.fsf@gmail.froward.int.ebiederm.org>\n\n\n* jc/rerere-cleanup (2023-08-25) 4 commits\n - rerere: modernize use of empty strbuf\n - rerere: try_merge() should use LL_MERGE_ERROR when it means an error\n - rerere: fix comment on handle_file() helper\n - rerere: simplify check_one_conflict() helper function\n\n Code clean-up.\n\n Not ready to be reviewed yet.\n source: <20230824205456.1231371-1-gitster@pobox.com>\n"},{"id":"489946","messageId":"Zebxz1-6FUqQuwmm@tanuki","threadId":"61048","inReplyTo":"xmqq4jdloc9a.fsf@gitster.g","subject":"Re: What's cooking in git.git (Mar 2024, #01; Mon, 4)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2024-03-05T10:19:59Z","receivedAt":"2024-03-05T10:20:06Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Mon, Mar 04, 2024 at 02:36:33PM -0800, Junio C Hamano wrote:\n> * ps/reftable-iteration-perf-part2 (2024-03-04) 13 commits\n>  - refs/reftable: precompute prefix length\n>  - reftable: allow inlining of a few functions\n>  - reftable/record: decode keys in place\n>  - reftable/record: reuse refname when copying\n>  - reftable/record: reuse refname when decoding\n>  - reftable/merged: avoid duplicate pqueue emptiness check\n>  - reftable/merged: circumvent pqueue with single subiter\n>  - reftable/merged: handle subiter cleanup on close only\n>  - reftable/merged: remove unnecessary null check for subiters\n>  - reftable/merged: make subiters own their records\n>  - reftable/merged: advance subiter on subsequent iteration\n>  - reftable/merged: make `merged_iter` structure private\n>  - reftable/pq: use `size_t` to track iterator index\n> \n>  The code to iterate over refs with the reftable backend has seen\n>  some optimization.\n> \n>  Will merge to 'next'?\n>  source: <cover.1709548907.git.ps@pks.im>\n\nYeah, I think this topic is ready to go.\n\nPatrick\n"}]}