{"thread":{"id":"62502","subject":"What's cooking in git.git (Nov 2024, #06; Thu, 14)","startedAt":"2024-11-15T23:46:36Z","lastAt":"2024-11-18T22:20:03Z","messageCount":8,"participants":["Junio C Hamano","Jeff King","Patrick Steinhardt","Kristoffer Haugsbakk","Rubén Justo"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"507385","messageId":"xmqqy11kys9z.fsf@gitster.g","threadId":"62502","inReplyTo":null,"subject":"What's cooking in git.git (Nov 2024, #06; Thu, 14)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-11-15T23:46:32Z","receivedAt":"2024-11-15T23:46:36Z","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\nA few commits to update git-gui are in.  There are still too many\ntopics that are left unreviewed, and the 'next' branch is not\ngaining topics as quickly as it usually would.\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* ak/t1016-style (2024-11-03) 1 commit\n  (merged to 'next' on 2024-11-05 at ee100e90d3)\n + t1016: clean up style\n\n Test modernization.\n source: <20241103135111.13508-1-algonell@gmail.com>\n\n\n* en/shallow-exclude-takes-a-ref-fix (2024-11-04) 2 commits\n  (merged to 'next' on 2024-11-05 at 8c5d52930b)\n + doc: correct misleading descriptions for --shallow-exclude\n + upload-pack: fix ambiguous error message\n\n The \"--shallow-exclude=<ref>\" option to various history transfer\n commands takes a ref, not an arbitrary revision.\n source: <pull.1822.git.1730746964.gitgitgadget@gmail.com>\n\n\n* jt/commit-graph-missing (2024-11-05) 2 commits\n  (merged to 'next' on 2024-11-06 at b4dd083c2a)\n + fetch-pack: die if in commit graph but not obj db\n + Revert \"fetch-pack: add a deref_without_lazy_fetch_extended()\"\n\n A regression where commit objects missing from a commit-graph can\n cause an infinite loop when doing a fetch in a partial clone has\n been fixed.\n source: <cover.1730833754.git.jonathantanmy@google.com>\n\n\n* ps/leakfixes-part-9 (2024-11-04) 22 commits\n  (merged to 'next' on 2024-11-05 at 0260dbd8bd)\n + list-objects-filter-options: work around reported leak on error\n + builtin/merge: release output buffer after performing merge\n + dir: fix leak when parsing \"status.showUntrackedFiles\"\n + t/helper: fix leaking buffer in \"dump-untracked-cache\"\n + t/helper: stop re-initialization of `the_repository`\n + sparse-index: correctly free EWAH contents\n + dir: release untracked cache data\n + combine-diff: fix leaking lost lines\n + builtin/tag: fix leaking key ID on failure to sign\n + transport-helper: fix leaking import/export marks\n + builtin/commit: fix leaking cleanup config\n + trailer: fix leaking strbufs when formatting trailers\n + trailer: fix leaking trailer values\n + builtin/commit: fix leaking change data contents\n + upload-pack: fix leaking URI protocols\n + pretty: clear signature check\n + diff-lib: fix leaking diffopts in `do_diff_cache()`\n + revision: fix leaking bloom filters\n + builtin/grep: fix leak with `--max-count=0`\n + grep: fix leak in `grep_splice_or()`\n + t/helper: fix leaks in \"reach\" test tool\n + builtin/ls-remote: plug leaking server options\n (this branch is used by ps/leakfixes-part-10.)\n\n More leakfixes.\n source: <cover.1730786195.git.ps@pks.im>\n\n\n* ps/mingw-rename (2024-11-06) 3 commits\n  (merged to 'next' on 2024-11-06 at 6dd2fffec7)\n + compat/mingw: support POSIX semantics for atomic renames\n + compat/mingw: allow deletion of most opened files\n + compat/mingw: share file handles created via `CreateFileW()`\n\n The MinGW compatibility layer has been taught to support POSIX\n semantics for atomic renames when other process(es) have a file\n opened at the destination path.\n cf. <1483501d-d798-46d6-93f5-f5edaf915e99@kdbg.org>\n source: <cover.1730042775.git.ps@pks.im>\n\n--------------------------------------------------\n[New Topics]\n\n* ja/git-add-doc-markup (2024-11-12) 1 commit\n  (merged to 'next' on 2024-11-13 at 1af6d17105)\n + doc: git-add.txt: convert to new style convention\n\n Documentation mark-up updates.\n\n Will merge to 'master'.\n source: <pull.1826.git.1731348891108.gitgitgadget@gmail.com>\n\n\n* ja/git-diff-doc-markup (2024-11-12) 5 commits\n - doc: git-diff: apply format changes to config part\n - doc: git-diff: apply format changes to diff-generate-patch\n - doc: git-diff: apply format changes to diff-format\n - doc: git-diff: apply format changes to diff-options\n - doc: git-diff: apply new documentation guidelines\n\n Documentation mark-up updates.\n source: <pull.1769.v2.git.1731343985.gitgitgadget@gmail.com>\n\n\n* jk/test-malloc-debug-check (2024-11-14) 2 commits\n - test-lib: move malloc-debug setup after $PATH setup\n  (merged to 'next' on 2024-11-13 at 9aa0331ba1)\n + test-lib: check malloc debug LD_PRELOAD before using\n\n Avoid build/test breakage on a system without working malloc debug\n support dynamic library.\n\n Will merge to 'next'.\n source: <20241111070134.GA675125@coredump.intra.peff.net>\n source: <20241114012729.GA1148710@coredump.intra.peff.net>\n\n\n* ps/clar-build-improvement (2024-11-12) 4 commits\n - Makefile: let clar header targets depend on their scripts\n - cmake: use verbatim arguments when invoking clar commands\n - cmake: use SH_EXE to execute clar scripts\n - t/unit-tests: convert \"clar-generate.awk\" into a shell script\n\n Fix for clar unit tests to support CMake build.\n\n Will merge to 'next'?\n source: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im>\n\n\n* jk/fetch-prefetch-double-free-fix (2024-11-12) 3 commits\n - refspec: store raw refspecs inside refspec_item\n - refspec: drop separate raw_nr count\n - fetch: adjust refspec->raw_nr when filtering prefetch refspecs\n\n Double-free fix.\n\n Will merge to 'next'.\n source: <20241112083204.GA2636868@coredump.intra.peff.net>\n\n\n* pb/mergetool-errors (2024-11-13) 5 commits\n - git-difftool--helper.sh: exit upon initialize_merge_tool errors\n - git-mergetool--lib.sh: add error message for unknown tool variant\n - git-mergetool--lib.sh: add error message in 'setup_user_tool'\n - git-mergetool--lib.sh: use TOOL_MODE when erroring about unknown tool\n - completion: complete '--tool-help' in 'git mergetool'\n\n End-user experience of \"git mergetool\" when the command errors out\n has been improved.\n\n Will merge to next'?\n source: <pull.1827.git.1731459128.gitgitgadget@gmail.com>\n\n\n* ps/send-pack-unhide-error-in-atomic-push (2024-11-14) 2 commits\n - transport: don't ignore git-receive-pack(1) exit code on atomic push\n - t5504: modernize test by moving heredocs into test bodies\n\n \"git push --atomic --porcelain\" used to ignore failures from the\n other side, losing the error status from the child process, which\n has been corrected.\n\n Comments?\n source: <20241113-pks-push-atomic-respect-exit-code-v1-0-7965f01e7f4e@pks.im>\n\n\n* sm/difftool (2024-11-13) 1 commit\n - builtin/difftool: intialize some hashmap variables\n\n Use of some uninitialized variables in \"git difftool\" has been\n corrected.\n\n Will merge to 'next'.\n source: <20241112162320.818091-1-simon.marchi@polymtl.ca>\n\n\n* tb/multi-pack-reuse-dupfix (2024-11-14) 2 commits\n - pack-objects: only perform verbatim reuse on the preferred pack\n - t5332-multi-pack-reuse.sh: demonstrate duplicate packing failure\n\n Object reuse code based on multi-pack-index sent an unwanted copy\n of object.\n\n Will merge to 'next'.\n source: <cover.1731518931.git.me@ttaylorr.com>\n\n--------------------------------------------------\n[Cooking]\n\n* ps/ref-backend-migration-optim (2024-11-08) 10 commits\n - reftable/block: optimize allocations by using scratch buffer\n - reftable/block: rename `block_writer::buf` variable\n - reftable/writer: optimize allocations by using a scratch buffer\n - refs: don't normalize log messages with `REF_SKIP_CREATE_REFLOG`\n - refs: skip collision checks in initial transactions\n - refs: use \"initial\" transaction semantics to migrate refs\n - refs/files: support symbolic and root refs in initial transaction\n - refs: introduce \"initial\" transaction flag\n - refs/files: move logic to commit initial transaction\n - refs: allow passing flags when setting up a transaction\n\n Optimize migration procedure between two ref backends.\n\n Needs review.\n source: <20241108-pks-refs-optimize-migrations-v1-0-7fd37fa80e35@pks.im>\n\n\n* js/log-remerge-keep-ancestry (2024-11-12) 1 commit\n - log: --remerge-diff needs to keep around commit parents\n\n \"git log -p --remerge-diff --reverse\" was completely broken.\n\n Expecting a hopefully small and final reroll.\n cf. <xmqqa5e5berx.fsf@gitster.g>\n source: <pull.1825.v2.git.1731350009491.gitgitgadget@gmail.com>\n\n\n* ps/reftable-iterator-reuse (2024-11-08) 9 commits\n - refs/reftable: reuse iterators when reading refs\n - reftable/merged: drain priority queue on reseek\n - reftable/stack: add mechanism to notify callers on reload\n - refs/reftable: refactor reflog expiry to use reftable backend\n - refs/reftable: refactor reading symbolic refs to use reftable backend\n - refs/reftable: read references via `struct reftable_backend`\n - refs/reftable: handle reloading stacks in the reftable backend\n - refs/reftable: encapsulate reftable stack\n - Merge branch 'ps/reftable-detach' into ps/reftable-iterator-reuse\n (this branch uses ps/reftable-detach.)\n\n Optimize reading random references out of the reftable backend by\n allowing reuse of iterator objects.\n\n Needs review.\n source: <cover.1730792627.git.ps@pks.im>\n\n\n* jc/move-is-bare-repository-cfg-variable-to-repo (2024-11-07) 3 commits\n - repository: BUG when is_bare_cfg is not initialized\n - setup: initialize is_bare_cfg\n - git: remove is_bare_repository_cfg global variable\n\n Code rewrite to turn the is_bare_repository_cfg global variable\n into a member in the the_repo singleton repository object.\n\n Waiting for response to reviews.\n source: <pull.1826.git.git.1730926082.gitgitgadget@gmail.com>\n\n\n* jk/describe-perf (2024-11-07) 4 commits\n - describe: stop traversing when we run out of names\n - describe: stop digging for max_candidates+1\n - t/perf: add tests for git-describe\n - t6120: demonstrate weakness in disjoint-root handling\n\n \"git describe\" optimization.\n\n Expecting a reroll.\n cf <20241106192650.GA912471@coredump.intra.peff.net>\n source: <20241106192236.GC880133@coredump.intra.peff.net>\n\n\n* js/range-diff-diff-merges (2024-11-11) 1 commit\n - range-diff: optionally include merge commits' diffs in the analysis\n\n \"git range-diff\" learned to optionally show and compare merge\n commits in the ranges being compared, with the --diff-merges\n option.\n\n Almost there.\n cf. <CABPp-BHNVEvYx4KwmiSQhPqidhPffb5hGBt=uT5NKqBPXC4j0w@mail.gmail.com>\n source: <pull.1734.v2.git.1731073383564.gitgitgadget@gmail.com>\n\n\n* ps/leakfixes-part-10 (2024-11-13) 28 commits\n - t: remove TEST_PASSES_SANITIZE_LEAK annotations\n - test-lib: unconditionally enable leak checking\n - t: remove unneeded !SANITIZE_LEAK prerequisites\n - t: mark some tests as leak free\n - t5601: work around leak sanitizer issue\n - git-compat-util: drop now-unused `UNLEAK()` macro\n - global: drop `UNLEAK()` annotation\n - t/helper: fix leaking commit graph in \"read-graph\" subcommand\n - builtin/branch: fix leaking sorting options\n - builtin/init-db: fix leaking directory paths\n - builtin/help: fix leaks in `check_git_cmd()`\n - help: fix leaking return value from `help_unknown_cmd()`\n - help: fix leaking `struct cmdnames`\n - help: refactor to not use globals for reading config\n - builtin/sparse-checkout: fix leaking sanitized patterns\n - split-index: fix memory leak in `move_cache_to_base_index()`\n - git: refactor builtin handling to use a `struct strvec`\n - git: refactor alias handling to use a `struct strvec`\n - strvec: introduce new `strvec_splice()` function\n - line-log: fix leak when rewriting commit parents\n - bisect: fix various cases where we leak commit list items\n - bisect: fix leaking commit list items in `check_merge_base()`\n - bisect: fix multiple leaks in `bisect_next_all()`\n - bisect: fix leaking `current_bad_oid`\n - bisect: fix leaking string in `handle_bad_merge_base()`\n - bisect: fix leaking good/bad terms when reading multipe times\n - builtin/blame: fix leaking blame entries with `--incremental`\n - Merge branch 'ps/leakfixes-part-9' into ps/leakfixes-part-10\n\n Leakfixes.\n\n Will merge to 'next'?\n source: <20241111-b4-pks-leak-fixes-pt10-v2-0-6154bf91f0b0@pks.im>\n\n\n* kh/sequencer-comment-char (2024-11-13) 3 commits\n - sequencer: comment commit messages properly\n - sequencer: comment `--reference` subject line properly\n - sequencer: comment checked-out branch properly\n\n The sequencer failed to honor core.commentString in some places.\n\n Expecting a reroll to improve tests.\n cf. <5ed77fab-678d-4a06-bbd0-ea25462a7562@gmail.com>\n cf. <4c623fcf-01dd-4056-80c1-b3c860ab7f87@gmail.com>\n cf. <711b59d7-e649-4031-8924-a16fb632b4d4@gmail.com>\n source: <cover.1731406513.git.code@khaugsbakk.name>\n\n\n* ds/full-name-hash (2024-11-04) 7 commits\n - test-tool: add helper for name-hash values\n - pack-objects: disable --full-name-hash when shallow\n - p5313: add size comparison test\n - git-repack: update usage to match docs\n - pack-objects: add GIT_TEST_FULL_NAME_HASH\n - repack: add --full-name-hash option\n - pack-objects: add --full-name-hash option\n\n \"git pack-objects\" and its wrapper \"git repack\" learned an option\n to use an alternative path-hash function to improve delta-base\n selection to produce a packfile with deeper history than window\n size.\n\n Needs review.\n source: <pull.1823.git.1730775907.gitgitgadget@gmail.com>\n\n\n* jt/repack-local-promisor (2024-11-12) 4 commits\n  (merged to 'next' on 2024-11-13 at 895d633576)\n + index-pack: repack local links into promisor packs\n + t5300: move --window clamp test next to unclamped\n + t0410: use from-scratch server\n + t0410: make test description clearer\n\n \"git gc\" discards any objects that are outside promisor packs that\n are referred to by an object in a promisor pack, and we do not\n refetch them from the promisor at runtime, resulting an unusable\n repository.  Work it around by including these objects in the\n referring promisor pack at the receiving end of the fetch.\n\n Will merge to 'master'.\n source: <cover.1730491845.git.jonathantanmy@google.com>\n\n\n* ds/path-walk-1 (2024-11-11) 6 commits\n - path-walk: mark trees and blobs as UNINTERESTING\n - path-walk: visit tags and cached objects\n - path-walk: allow consumer to specify object types\n - t6601: add helper for testing path-walk API\n - test-lib-functions: add test_cmp_sorted\n - path-walk: introduce an object walk by path\n\n Introduce a new API to visit objects in batches based on a common\n path, or by type.\n\n Comments?\n source: <pull.1818.v2.git.1731181272.gitgitgadget@gmail.com>\n\n\n* bc/ancient-ci (2024-11-01) 3 commits\n - Add additional CI jobs to avoid accidental breakage\n - ci: remove clause for Ubuntu 16.04\n - gitlab-ci: switch from Ubuntu 16.04 to 20.04\n\n Drop support for ancient environments in various CI jobs.\n\n Needs review.\n source: <20241031234934.3451390-1-sandals@crustytoothpaste.net>\n\n\n* cw/worktree-extension (2024-11-01) 9 commits\n - worktree: refactor `repair_worktree_after_gitdir_move()`\n - worktree: add relative cli/config options to `repair` command\n - worktree: add relative cli/config options to `move` command\n - worktree: add relative cli/config options to `add` command\n - worktree: add `write_worktree_linking_files()` function\n - worktree: refactor infer_backlink return\n - worktree: add `relativeWorktrees` extension\n - setup: correctly reinitialize repository version\n - Merge branch 'cw/config-extensions' into cw/worktree\n\n Introduce a new repository extension to prevent older Git versions\n from mis-interpreting worktrees created with relative paths.\n\n Needs review.\n source: <20241031-wt_relative_options-v4-0-07a3dc0f02a3@pm.me>\n\n\n* kh/bundle-docs (2024-11-08) 4 commits\n - Documentation/git-bundle.txt: discuss naïve backups\n - Documentation/git-bundle.txt: mention --all in spec. refs\n - Documentation/git-bundle.txt: remove old `--all` example\n - Documentation/git-bundle.txt: mention full backup example\n\n Documentation improvements to more prominently call out the use of\n '--all' when creating bundles.\n\n Will merge to 'next'?\n source: <cover.1730979849.git.code@khaugsbakk.name>\n\n\n* as/show-index-uninitialized-hash (2024-11-11) 2 commits\n - t5300: add test for 'show-index --object-format'\n - show-index: fix uninitialized hash function\n\n Regression fix for 'show-index' when run outside of a repository.\n\n Comments?\n source: <20241109092739.14276-1-abhijeet.nkt@gmail.com>\n\n\n* ps/reftable-detach (2024-11-08) 8 commits\n - reftable/system: provide thin wrapper for lockfile subsystem\n - reftable/stack: drop only use of `get_locked_file_path()`\n - reftable/system: provide thin wrapper for tempfile subsystem\n - reftable/stack: stop using `fsync_component()` directly\n - reftable/system: stop depending on \"hash.h\"\n - reftable: explicitly handle hash format IDs\n - reftable/system: move \"dir.h\" to its only user\n - Merge branch 'ps/reftable-strbuf' into ps/reftable-detach\n (this branch is used by ps/reftable-iterator-reuse.)\n\n Isolates the reftable subsystem from the rest of Git's codebase by\n using fewer pieces of Git's infrastructure.\n\n Needs review.\n source: <cover.1731047193.git.ps@pks.im>\n\n\n* km/config-remote-by-name (2024-10-21) 1 commit\n - config: support remote name in includeIf.hasconfig condition\n\n Support conditionally including configuration by remote name, instead\n of just URL.\n\n Needs review.\n source: <20241020173216.40852-2-ken@kmatsui.me>\n\n\n* y5/diff-pager (2024-10-21) 1 commit\n - diff: setup pager only before diff contents truly ready\n\n Delay setting up the pager in 'git diff' until after the diff contents\n itself is fully prepared.\n\n Needs review.\n source: <pull.1817.git.git.1729370390416.gitgitgadget@gmail.com>\n\n\n* la/trailer-info (2024-10-14) 1 commit\n  (merged to 'next' on 2024-11-13 at f038e226f6)\n + trailer: spread usage of \"trailer_block\" language\n\n Renaming a handful of variables and structure fields.\n\n Will merge to 'master'.\n source: <pull.1811.git.git.1728820722580.gitgitgadget@gmail.com>\n\n\n* bc/drop-ancient-libcurl-and-perl (2024-10-23) 12 commits\n - gitweb: make use of s///r\n - Require Perl 5.26.0\n - INSTALL: document requirement for libcurl 7.61.0\n - git-curl-compat: remove check for curl 7.56.0\n - git-curl-compat: remove check for curl 7.53.0\n - git-curl-compat: remove check for curl 7.52.0\n - git-curl-compat: remove check for curl 7.44.0\n - git-curl-compat: remove check for curl 7.43.0\n - git-curl-compat: remove check for curl 7.39.0\n - git-curl-compat: remove check for curl 7.34.0\n - git-curl-compat: remove check for curl 7.25.0\n - git-curl-compat: remove check for curl 7.21.5\n\n Drop support for older libcURL and Perl.\n\n Under discussion.\n source: <20241023004600.1645313-1-sandals@crustytoothpaste.net>\n\n\n* es/oss-fuzz (2024-10-16) 3 commits\n - fuzz: port fuzz-url-decode-mem from OSS-Fuzz\n - fuzz: port fuzz-parse-attr-line from OSS-Fuzz\n - fuzz: port fuzz-credential-from-url-gently from OSS-Fuzz\n\n Backport oss-fuzz tests for us to our codebase.\n\n Needs review.\n source: <cover.1728939687.git.steadmon@google.com>\n\n\n* bf/set-head-symref (2024-10-23) 8 commits\n - fetch set_head: handle mirrored bare repositories\n - fetch: set remote/HEAD if it does not exist\n - refs: add create_only option to refs_update_symref_extended\n - refs: add TRANSACTION_CREATE_EXISTS error\n - remote set-head: better output for --auto\n - remote set-head: refactor for readability\n - refs: atomically record overwritten ref in update_symref\n - t/t5505-remote: set default branch to main\n\n When \"git fetch $remote\" notices that refs/remotes/$remote/HEAD is\n missing and discovers what branch the other side points with its\n HEAD, refs/remotes/$remote/HEAD is updated to point to it.\n\n Needs review.\n source: <20241023153736.257733-1-bence@ferdinandy.com>\n\n\n* ps/build (2024-11-13) 19 commits\n - meson: fix conflicts with in-flight topics\n - Introduce support for the Meson build system\n - Documentation: add comparison of build systems\n - t: allow overriding build dir\n - t: better support for out-of-tree builds\n - Documentation: extract script to generate a list of mergetools\n - Documentation: teach \"cmd-list.perl\" about out-of-tree builds\n - Documentation: allow sourcing generated includes from separate dir\n - Makefile: simplify building of templates\n - Makefile: allow \"bin-wrappers/\" directory to exist\n - Makefile: refactor generators to be PWD-independent\n - Makefile: refactor GIT-VERSION-GEN to be reusable\n - Makefile: extract script to generate gitweb.cgi\n - Makefile: extract script to massage Shell scripts\n - Makefile: use \"generate-perl.sh\" to massage Perl library\n - Makefile: extract script to massage Perl scripts\n - Makefile: consistently use PERL_PATH\n - Makefile: consistently use @PLACEHOLDER@ to substitute\n - Makefile: use common template for GIT-BUILD-OPTIONS\n\n Build procedure update plus introduction of Mason based builds\n\n Under discussion.\n source: <20241112-pks-meson-v6-0-648b30996827@pks.im>\n\n\n* ej/cat-file-remote-object-info (2024-11-11) 6 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 - cat-file: add declaration of variable i inside its for loop\n\n \"git cat-file --batch\" and friends can optionally ask a remote\n server about objects it does not have.\n\n Needs review.\n source: <20241108162441.50736-1-eric.peijian@gmail.com>\n\n\n* cc/promisor-remote-capability (2024-09-10) 4 commits\n - promisor-remote: check advertised name or URL\n - Add 'promisor-remote' capability to protocol v2\n - strbuf: refactor strbuf_trim_trailing_ch()\n - version: refactor strbuf_sanitize()\n\n The v2 protocol learned to allow the server to advertise possible\n promisor remotes, and the client to respond with what promissor\n remotes it uses, so that the server side can omit objects that the\n client can lazily obtain from these other promissor remotes.\n\n Comments?  I got an impression that this is premature without\n finishing the discussion on a larger picture.\n cf. <ZvpZv_fed_su4w2-@pks.im>\n source: <20240910163000.1985723-1-christian.couder@gmail.com>\n\n\n* sj/ref-contents-check (2024-11-11) 9 commits\n - ref: add symlink ref content check for files backend\n - ref: check whether the target of the symref is a ref\n - ref: add basic symref content check for files backend\n - ref: add more strict checks for regular refs\n - ref: port git-fsck(1) regular refs check for files backend\n - ref: support multiple worktrees check for refs\n - ref: initialize ref name outside of check functions\n - ref: check the full refname instead of basename\n - ref: initialize \"fsck_ref_report\" with zero\n\n \"git fsck\" learned to issue warnings on \"curiously formatted\" ref\n contents that have always been taken valid but something Git\n wouldn't have written itself (e.g., missing terminating end-of-line\n after the full object name).\n\n Comments?\n source: <ZzCiCGxL4Adnd_eq@ArchLinux>\n\n\n* js/libgit-rust (2024-10-16) 5 commits\n - Makefile: add option to build and test libgit-rs and libgit-rs-sys\n - libgit: add higher-level libgit crate\n - libgit-sys: also export some config_set functions\n - libgit-sys: introduce Rust wrapper for libgit.a\n - common-main: split init and exit code into new files\n\n An rust binding to libgit.a functions has been introduced.\n\n Needs review.\n source: <cover.1729032373.git.steadmon@google.com>\n\n\n* kn/the-repository (2024-11-12) 9 commits\n - midx: add repository to `multi_pack_index` struct\n - config: make `packed_git_(limit|window_size)` non-global variables\n - config: make `delta_base_cache_limit` a non-global variable\n - packfile: pass down repository to `for_each_packed_object`\n - packfile: pass down repository to `has_object[_kept]_pack`\n - packfile: pass down repository to `odb_pack_name`\n - packfile: pass `repository` to static function in the file\n - packfile: use `repository` from `packed_git` directly\n - packfile: add repository to struct `packed_git`\n\n Various implicit uses of 'the_repoository' in the packfile code\n have been eliminated.\n source: <cover.1731323350.git.karthik.188@gmail.com>\n"},{"id":"507390","messageId":"20241116031904.GA1782074@coredump.intra.peff.net","threadId":"62502","inReplyTo":"xmqqy11kys9z.fsf@gitster.g","subject":"Re: What's cooking in git.git (Nov 2024, #06; Thu, 14)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2024-11-16T03:19:04Z","receivedAt":"2024-11-16T03:19:05Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sat, Nov 16, 2024 at 08:46:32AM +0900, Junio C Hamano wrote:\n\n> * jk/describe-perf (2024-11-07) 4 commits\n>  - describe: stop traversing when we run out of names\n>  - describe: stop digging for max_candidates+1\n>  - t/perf: add tests for git-describe\n>  - t6120: demonstrate weakness in disjoint-root handling\n> \n>  \"git describe\" optimization.\n> \n>  Expecting a reroll.\n>  cf <20241106192650.GA912471@coredump.intra.peff.net>\n>  source: <20241106192236.GC880133@coredump.intra.peff.net>\n\nI wasn't planning on any re-roll here. I think I may have confused you\nwhen I sent out the cover letter, followed up with a \"oops there's a\nsmall fixup I need, I'll send out the patches later today\" message, and\nthen later sent out the patches. That \"v1\" that hit the list (and what\nyou picked up) is the fixed version.\n\nSo there is nothing to re-roll, as there haven't been any comments on\nit. Possibly \"needs review\" would be a better label. :)\n\n-Peff\n"},{"id":"507394","messageId":"xmqq7c93zfht.fsf@gitster.g","threadId":"62502","inReplyTo":"20241116031904.GA1782074@coredump.intra.peff.net","subject":"Re: What's cooking in git.git (Nov 2024, #06; Thu, 14)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-11-16T09:37:18Z","receivedAt":"2024-11-16T09:37:21Z","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> ... when I sent out the cover letter, followed up with a \"oops there's a\n> small fixup I need, I'll send out the patches later today\" message, and\n> then later sent out the patches. That \"v1\" that hit the list (and what\n> you picked up) is the fixed version.\n\nOK.\n\nThanks.\n"},{"id":"507395","messageId":"ZziAy187d_VU55QM@pks.im","threadId":"62502","inReplyTo":"xmqqy11kys9z.fsf@gitster.g","subject":"Re: What's cooking in git.git (Nov 2024, #06; Thu, 14)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2024-11-16T11:24:02Z","receivedAt":"2024-11-16T11:25:12Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Sat, Nov 16, 2024 at 08:46:32AM +0900, Junio C Hamano wrote:\n> * ps/clar-build-improvement (2024-11-12) 4 commits\n>  - Makefile: let clar header targets depend on their scripts\n>  - cmake: use verbatim arguments when invoking clar commands\n>  - cmake: use SH_EXE to execute clar scripts\n>  - t/unit-tests: convert \"clar-generate.awk\" into a shell script\n> \n>  Fix for clar unit tests to support CMake build.\n> \n>  Will merge to 'next'?\n>  source: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im>\n\nI've sent a v3 yesterday that fixes a single commit message issue via\n[1]. That version should be ready for 'next'.\n\n[1]: <20241115-pks-clar-build-improvements-v3-0-29672bf65ec6@pks.im>\n\n> * ps/send-pack-unhide-error-in-atomic-push (2024-11-14) 2 commits\n>  - transport: don't ignore git-receive-pack(1) exit code on atomic push\n>  - t5504: modernize test by moving heredocs into test bodies\n> \n>  \"git push --atomic --porcelain\" used to ignore failures from the\n>  other side, losing the error status from the child process, which\n>  has been corrected.\n> \n>  Comments?\n>  source: <20241113-pks-push-atomic-respect-exit-code-v1-0-7965f01e7f4e@pks.im>\n\nJiang Xin has sent an alternative series that is more involved. I'll\nhave a look at it.\n\n> * ps/leakfixes-part-10 (2024-11-13) 28 commits\n>  - t: remove TEST_PASSES_SANITIZE_LEAK annotations\n>  - test-lib: unconditionally enable leak checking\n>  - t: remove unneeded !SANITIZE_LEAK prerequisites\n>  - t: mark some tests as leak free\n>  - t5601: work around leak sanitizer issue\n>  - git-compat-util: drop now-unused `UNLEAK()` macro\n>  - global: drop `UNLEAK()` annotation\n>  - t/helper: fix leaking commit graph in \"read-graph\" subcommand\n>  - builtin/branch: fix leaking sorting options\n>  - builtin/init-db: fix leaking directory paths\n>  - builtin/help: fix leaks in `check_git_cmd()`\n>  - help: fix leaking return value from `help_unknown_cmd()`\n>  - help: fix leaking `struct cmdnames`\n>  - help: refactor to not use globals for reading config\n>  - builtin/sparse-checkout: fix leaking sanitized patterns\n>  - split-index: fix memory leak in `move_cache_to_base_index()`\n>  - git: refactor builtin handling to use a `struct strvec`\n>  - git: refactor alias handling to use a `struct strvec`\n>  - strvec: introduce new `strvec_splice()` function\n>  - line-log: fix leak when rewriting commit parents\n>  - bisect: fix various cases where we leak commit list items\n>  - bisect: fix leaking commit list items in `check_merge_base()`\n>  - bisect: fix multiple leaks in `bisect_next_all()`\n>  - bisect: fix leaking `current_bad_oid`\n>  - bisect: fix leaking string in `handle_bad_merge_base()`\n>  - bisect: fix leaking good/bad terms when reading multipe times\n>  - builtin/blame: fix leaking blame entries with `--incremental`\n>  - Merge branch 'ps/leakfixes-part-9' into ps/leakfixes-part-10\n> \n>  Leakfixes.\n> \n>  Will merge to 'next'?\n>  source: <20241111-b4-pks-leak-fixes-pt10-v2-0-6154bf91f0b0@pks.im>\n\nRubén's review went through all of the patches and his findings have\nbeen addressed. The other comment from Peff seemed to only relate to\ndropping the use of `UNLEAK()`, so I don't think he had a full look at\nthe patch series. So personally I don't plan to reroll this, but am not\nsure whether this had enough review exposure.\n\nPatrick\n"},{"id":"507407","messageId":"fa333343-1a09-4a0e-9624-feadf70adadd@app.fastmail.com","threadId":"62502","inReplyTo":"xmqqy11kys9z.fsf@gitster.g","subject":"Re: What's cooking in git.git (Nov 2024, #06; Thu, 14)","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2024-11-16T14:57:20Z","receivedAt":"2024-11-16T14:57:42Z","isPatch":false,"sender":{"key":"kristofferhaugsbakk@fastmail.com","avatar":null},"body":"On Sat, Nov 16, 2024, at 00:46, Junio C Hamano wrote:\n> * kh/bundle-docs (2024-11-08) 4 commits\n>  - Documentation/git-bundle.txt: discuss naïve backups\n>  - Documentation/git-bundle.txt: mention --all in spec. refs\n>  - Documentation/git-bundle.txt: remove old `--all` example\n>  - Documentation/git-bundle.txt: mention full backup example\n>\n>  Documentation improvements to more prominently call out the use of\n>  '--all' when creating bundles.\n>\n>  Will merge to 'next'?\n>  source: <cover.1730979849.git.code@khaugsbakk.name>\n\nI have sent out a new version.\n"},{"id":"507411","messageId":"e540c259-df6f-4b65-9066-606beb462f5b@gmail.com","threadId":"62502","inReplyTo":"ZziAy187d_VU55QM@pks.im","subject":"Re: What's cooking in git.git (Nov 2024, #06; Thu, 14)","fromName":"Rubén Justo","fromEmail":"rjusto@gmail.com","sentAt":"2024-11-16T15:37:13Z","receivedAt":"2024-11-16T15:37:16Z","isPatch":false,"sender":{"key":"rjusto@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5685487?v=4"},"body":"On Sat, Nov 16, 2024 at 12:24:02PM +0100, Patrick Steinhardt wrote:\n\n> > * ps/leakfixes-part-10 (2024-11-13) 28 commits\n> >  - t: remove TEST_PASSES_SANITIZE_LEAK annotations\n> >  - test-lib: unconditionally enable leak checking\n> >  - t: remove unneeded !SANITIZE_LEAK prerequisites\n> >  - t: mark some tests as leak free\n> >  - t5601: work around leak sanitizer issue\n> >  - git-compat-util: drop now-unused `UNLEAK()` macro\n> >  - global: drop `UNLEAK()` annotation\n> >  - t/helper: fix leaking commit graph in \"read-graph\" subcommand\n> >  - builtin/branch: fix leaking sorting options\n> >  - builtin/init-db: fix leaking directory paths\n> >  - builtin/help: fix leaks in `check_git_cmd()`\n> >  - help: fix leaking return value from `help_unknown_cmd()`\n> >  - help: fix leaking `struct cmdnames`\n> >  - help: refactor to not use globals for reading config\n> >  - builtin/sparse-checkout: fix leaking sanitized patterns\n> >  - split-index: fix memory leak in `move_cache_to_base_index()`\n> >  - git: refactor builtin handling to use a `struct strvec`\n> >  - git: refactor alias handling to use a `struct strvec`\n> >  - strvec: introduce new `strvec_splice()` function\n> >  - line-log: fix leak when rewriting commit parents\n> >  - bisect: fix various cases where we leak commit list items\n> >  - bisect: fix leaking commit list items in `check_merge_base()`\n> >  - bisect: fix multiple leaks in `bisect_next_all()`\n> >  - bisect: fix leaking `current_bad_oid`\n> >  - bisect: fix leaking string in `handle_bad_merge_base()`\n> >  - bisect: fix leaking good/bad terms when reading multipe times\n> >  - builtin/blame: fix leaking blame entries with `--incremental`\n> >  - Merge branch 'ps/leakfixes-part-9' into ps/leakfixes-part-10\n> > \n> >  Leakfixes.\n> > \n> >  Will merge to 'next'?\n> >  source: <20241111-b4-pks-leak-fixes-pt10-v2-0-6154bf91f0b0@pks.im>\n> \n> Rubén's review went through all of the patches and his findings have\n> been addressed.\n\nYes, this iteration looks good to me.\n\nTwo thoughts about the merge:\n\nFirst, I'm concerned that we may not have sufficiently documented how\ncontributors should proceed to prevent new leaks when submitting\npatches, and perhaps avoid some unnecessary noise on the list.  I\nreviewed Documentation/SubmittingPatches and didn't see any mention\nabout it.  Perhaps it would be helpful to add a note about\nSANITIZE=leak.  I'm unsure if we want to be explicit about this,\nthough.\n\nSecond, in the (hopefully) exceptional cases where new series discover\nold leaks that cannot be fixed within the series itself, for whatever\nreason, I don't think there is documentation on the use of the\nSANITIZE_LEAK prerequisite.  Its use is not desirable and documenting\nit could be counterproductive, so perhaps it's better to leave its use\nsuggested on the list when necessary.\n\n> The other comment from Peff seemed to only relate to\n> dropping the use of `UNLEAK()`, so I don't think he had a full look at\n> the patch series. So personally I don't plan to reroll this, but am not\n> sure whether this had enough review exposure.\n\nI admit that reviewing this series, and reading the previous nine,\nhasn't been easy.  It involved reading code I hadn't seen before.  So,\nwhile I'm glad to give it my reviewed-by trailer, I share the concern\nabout whether it has had enough review exposure.\n\nFinally, I would like to reiterate that I continue to be impressed\nwith the achievement of reaching \"test-lib: unconditionally enable\nleak checking\" within the time frame envisioned [1][2].\n\nThanks.\n\n  [1] https://lore.kernel.org/git/Zp4gILfskdpc6RUk@tanuki/\n\n  [2] https://lore.kernel.org/git/cover.1721995576.git.ps@pks.im/\n"},{"id":"507458","messageId":"Zzrh6xlxfOo9q9gn@pks.im","threadId":"62502","inReplyTo":"e540c259-df6f-4b65-9066-606beb462f5b@gmail.com","subject":"Re: What's cooking in git.git (Nov 2024, #06; Thu, 14)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2024-11-18T06:42:58Z","receivedAt":"2024-11-18T06:43:12Z","isPatch":false,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Sat, Nov 16, 2024 at 04:37:13PM +0100, Rubén Justo wrote:\n> On Sat, Nov 16, 2024 at 12:24:02PM +0100, Patrick Steinhardt wrote:\n> > Rubén's review went through all of the patches and his findings have\n> > been addressed.\n> \n> Yes, this iteration looks good to me.\n> \n> Two thoughts about the merge:\n> \n> First, I'm concerned that we may not have sufficiently documented how\n> contributors should proceed to prevent new leaks when submitting\n> patches, and perhaps avoid some unnecessary noise on the list.  I\n> reviewed Documentation/SubmittingPatches and didn't see any mention\n> about it.  Perhaps it would be helpful to add a note about\n> SANITIZE=leak.  I'm unsure if we want to be explicit about this,\n> though.\n\nNothing really changes with this series -- we already required code to\nbe leak free beforehand, just not in all of our tests. But in any case,\nproviding pointers for how to check for leaks somewhere could be helpful\nindeed.\n\nI think that can happen outside of this series though, also because I'm\nnot quite sure where to slot this in.\n\n> Second, in the (hopefully) exceptional cases where new series discover\n> old leaks that cannot be fixed within the series itself, for whatever\n> reason, I don't think there is documentation on the use of the\n> SANITIZE_LEAK prerequisite.  Its use is not desirable and documenting\n> it could be counterproductive, so perhaps it's better to leave its use\n> suggested on the list when necessary.\n\nThat's also my take: we should use SANITIZE_LEAK only in exceptional\ncases. I very much hope that we can avoid introducing new cases of it\naltogether with the help of long-time contributors by helping newer\ncontributors that happen to uncover such a leak.\n\nI guess time will tell, and if we see that this needs to be added fairly\nregularly we can iterate and add documentation.\n\nPatrick\n"},{"id":"507549","messageId":"5d9d45d4-b1ff-4349-aaac-e7461609363c@gmail.com","threadId":"62502","inReplyTo":"Zzrh6xlxfOo9q9gn@pks.im","subject":"Re: What's cooking in git.git (Nov 2024, #06; Thu, 14)","fromName":"Rubén Justo","fromEmail":"rjusto@gmail.com","sentAt":"2024-11-18T22:20:00Z","receivedAt":"2024-11-18T22:20:03Z","isPatch":false,"sender":{"key":"rjusto@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5685487?v=4"},"body":"On Mon, Nov 18, 2024 at 07:42:58AM +0100, Patrick Steinhardt wrote:\n\n> > > Rubén's review went through all of the patches and his findings have\n> > > been addressed.\n> > \n> > Yes, this iteration looks good to me.\n> > \n> > Two thoughts about the merge:\n> > \n> > First, I'm concerned that we may not have sufficiently documented how\n> > contributors should proceed to prevent new leaks when submitting\n> > patches, and perhaps avoid some unnecessary noise on the list.  I\n> > reviewed Documentation/SubmittingPatches and didn't see any mention\n> > about it.  Perhaps it would be helpful to add a note about\n> > SANITIZE=leak.  I'm unsure if we want to be explicit about this,\n> > though.\n> \n> Nothing really changes with this series -- we already required code to\n> be leak free beforehand, just not in all of our tests. But in any case,\n> providing pointers for how to check for leaks somewhere could be helpful\n> indeed.\n> \n> I think that can happen outside of this series though, also because I'm\n> not quite sure where to slot this in.\n\nRe-reading Documentation/SubmittingPatches, I think the recommendation\nwe already have might be sufficient:\n\n    Pushing to a fork of https://github.com/git/git will use their CI\n    integration to test your changes on Linux, Mac and Windows. See\n    the <<GHCI,GitHub CI>> section for details.\n\nAnyway, of course it can happen outside this series.  For me, the\nseries is ready to be merged.\n"}]}