From: Junio C Hamano Date: Wed, 2 Oct 2024 16:48:25 +0000 (-0700) Subject: What's cooking (2024/10 #02) X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d70646ea5fffe469bde4a8bbf0be20263239abb2;p=thirdparty%2Fgit.git What's cooking (2024/10 #02) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index f284ec657e..a1dc114bac 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org -Subject: What's cooking in git.git (Oct 2024, #01; Tue, 1) -X-master-at: e9356ba3ea2a6754281ff7697b3e5a1697b21e24 -X-next-at: 3d1fbeb9078808ccf955c44b37814338e1b24555 +Subject: What's cooking in git.git (Oct 2024, #02; Wed, 2) +X-master-at: 111e864d69c84284441b083966c2065c2e9a4e78 +X-next-at: 43b9d002c88c60350760fe38edf0e36e2e3da4bb Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Oct 2024, #01; Tue, 1) +What's cooking in git.git (Oct 2024, #02; Wed, 2) -------------------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -17,14 +17,17 @@ topic without enough support may be discarded after a long period of no activity (of course they can be resubmit when new interests arise). -A handful of topics in 'next' will be flushed to 'master' and then -we will tag -rc1 in the middle of this week. +Git 2.47-rc1 has been tagged. From here on, we expect the flow of +new topics to slow down and contributors are encouraged to focus +more on finding and fixing possible regressions relative to Git +2.46, the last feature release. Unfortunately our CI jobs seem to be failing due to -https://lore.kernel.org/git/xmqqmsk37926.fsf@gitster.g/ The -regression in libCurl 8.10.0 has been identified and corrected in -the upstream, but apparently it takes time for the fix to percolate -down. +https://lore.kernel.org/git/xmqqmsk37926.fsf@gitster.g/ + +The regression in libCurl 8.10.0 has been identified and corrected +in the upstream, but apparently it takes time for the fix to +percolate down. Copies of the source code to Git live in many repositories, and the following is a list of the ones I push into or their mirrors. Some @@ -57,70 +60,129 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* ds/background-maintenance-with-credential (2024-09-20) 3 commits - (merged to 'next' on 2024-09-24 at 379a7a1003) - + scalar: configure maintenance during 'reconfigure' - + maintenance: add custom config to background jobs - + credential: add new interactive config option +* ds/sparse-checkout-expansion-advice (2024-09-23) 1 commit + (merged to 'next' on 2024-09-27 at e670bccf7e) + + sparse-checkout: disable advice in 'disable' - Background tasks "git maintenance" runs may need to use credential - information when going over the network, but a credential helper - may work only in an interactive environment, and end up blocking a - scheduled task waiting for UI. Credential helpers can now behave - differently when they are not running interactively. - source: + When "git sparse-checkout disable" turns a sparse checkout into a + regular checkout, the index is fully expanded. This totally + expected behaviour however had an "oops, we are expanding the + index" advice message, which has been corrected. + source: -* ps/includeif-onbranch-cornercase-fix (2024-09-24) 2 commits - (merged to 'next' on 2024-09-24 at 229c0bf0e5) - + config: fix evaluating "onbranch" with nonexistent git dir - + t1305: exercise edge cases of "onbranch" includes +* jk/http-leakfixes (2024-09-25) 28 commits + (merged to 'next' on 2024-09-27 at c52b418c92) + + http-push: clean up local_refs at exit + + http-push: clean up loose request when falling back to packed + + http-push: clean up objects list + + http-push: free xml_ctx.cdata after use + + http-push: free remote_ls_ctx.dentry_name + + http-push: free transfer_request strbuf + + http-push: free transfer_request dest field + + http-push: free curl header lists + + http-push: free repo->url string + + http-push: clear refspecs before exiting + + http-walker: free fake packed_git list + + remote-curl: free HEAD ref with free_one_ref() + + http: stop leaking buffer in http_get_info_packs() + + http: call git_inflate_end() when releasing http_object_request + + http: fix leak of http_object_request struct + + http: fix leak when redacting cookies from curl trace + + transport-helper: fix leak of dummy refs_list + + fetch-pack: clear pack lockfiles list + + fetch: free "raw" string when shrinking refspec + + transport-helper: fix strbuf leak in push_refs_with_push() + + send-pack: free cas options before exit + + commit: avoid leaking already-saved buffer + + fetch-pack, send-pack: clean up shallow oid array + + fetch-pack: free object filter before exiting + + connect: clear child process before freeing in diagnostic mode + + fetch-pack: fix leaking sought refs + + shallow: fix leak when unregistering last shallow root + + http-fetch: clear leaking git-index-pack(1) arguments + (this branch is used by ps/leakfixes-part-8.) - "git --git-dir=nowhere cmd" failed to properly notice that it - wasn't in any repository while processing includeIf.onbranch - configuration and instead crashed. - source: + Leakfixes. + source: <20240924214930.GA1143523@coredump.intra.peff.net> -* ps/reftable-concurrent-writes (2024-09-24) 3 commits - (merged to 'next' on 2024-09-24 at 04df72ad69) - + refs/reftable: reload locked stack when preparing transaction - + reftable/stack: allow locking of outdated stacks - + refs/reftable: introduce "reftable.lockTimeout" +* ps/leakfixes-part-7 (2024-09-27) 24 commits + (merged to 'next' on 2024-09-27 at 8c1aa7e558) + + diffcore-break: fix leaking filespecs when merging broken pairs + + revision: fix leaking parents when simplifying commits + + builtin/maintenance: fix leak in `get_schedule_cmd()` + + builtin/maintenance: fix leaking config string + + promisor-remote: fix leaking partial clone filter + + grep: fix leaking grep pattern + + submodule: fix leaking submodule ODB paths + + trace2: destroy context stored in thread-local storage + + builtin/difftool: plug several trivial memory leaks + + builtin/repack: fix leaking configuration + + diffcore-order: fix leaking buffer when parsing orderfiles + + parse-options: free previous value of `OPTION_FILENAME` + + diff: fix leaking orderfile option + + builtin/pull: fix leaking "ff" option + + dir: fix off by one errors for ignored and untracked entries + + builtin/submodule--helper: fix leaking remote ref on errors + + t/helper: fix leaking subrepo in nested submodule config helper + + builtin/submodule--helper: fix leaking error buffer + + builtin/submodule--helper: clear child process when not running it + + submodule: fix leaking update strategy + + git: fix leaking argv when handling builtins + + builtin/help: fix leaking `html_path` when reading config multiple times + + builtin/help: fix dangling reference to `html_path` + + Merge branch 'ps/leakfixes-part-6' into ps/leakfixes-part-7 + (this branch is used by ps/leakfixes-part-8.) + + More leak-fixes. + cf. + source: - Give timeout to the locking code to write to reftable. - source: +* tb/weak-sha1-for-tail-sum (2024-09-27) 8 commits + (merged to 'next' on 2024-09-30 at 1b4caadd94) + + csum-file.c: use unsafe SHA-1 implementation when available + + Makefile: allow specifying a SHA-1 for non-cryptographic uses + + hash.h: scaffolding for _unsafe hashing variants + + sha1: do not redefine `platform_SHA_CTX` and friends + + pack-objects: use finalize_object_file() to rename pack/idx/etc + + finalize_object_file(): implement collision check + + finalize_object_file(): refactor unlink_or_warn() placement + + finalize_object_file(): check for name collision before renaming + + The checksum at the tail of files are now computed without + collision detection protection. This is safe as the consumer of + the information to protect itself from replay attacks checks for + hash collisions independently. + cf. <20240927035712.GH567395@coredump.intra.peff.net> + cf. + source: -* pw/submodule-process-sigpipe (2024-09-20) 1 commit - (merged to 'next' on 2024-09-24 at 9e1ce951c6) - + submodule status: propagate SIGPIPE +-------------------------------------------------- +[New Topics] - When a subprocess to work in a submodule spawned by "git submodule" - fails with SIGPIPE, the parent Git process caught the death of it, - but gave a generic "failed to work in that submodule", which was - misleading. We now behave as if the parent got SIGPIPE and die. - source: +* ds/read-cache-mempool-leakfix (2024-10-01) 1 commit + (merged to 'next' on 2024-10-02 at c0eac890ac) + + read-cache: free threaded memory pool + Leakfix. -* rs/archive-with-attr-pathspec-fix (2024-09-23) 1 commit - (merged to 'next' on 2024-09-24 at a81fb17e49) - + archive: load index before pathspec checks + Will merge to 'master'. + source: - "git archive" with pathspec magic that uses the attribute - information did not work well, which has been corrected. - source: <66c3e9fa-ecfe-4af2-a970-c1afdbc2b7f2@web.de> +* kn/fsmonitor-event-listener-fix (2024-10-02) 1 commit + - fsmonitor: fix hangs by delayed fs event listening -* rs/commit-graph-ununleak (2024-09-23) 1 commit - (merged to 'next' on 2024-09-24 at 5845eca9ce) - + commit-graph: remove unnecessary UNLEAK + Under high load, fsmonitor process can hang at start-up, which has + been corrected. - Code clean-up. - source: + Comments? + source: -------------------------------------------------- -[New Topics] +[Cooking] * jc/a-commands-without-the-repo (2024-09-30) 4 commits - archive: remove the_repository global variable @@ -138,14 +200,15 @@ Release tarballs are available at: source: -* kn/osx-fsmonitor-with-submodules-fix (2024-09-30) 1 commit +* kn/osx-fsmonitor-with-submodules-fix (2024-10-01) 1 commit - fsmonitor OSX: fix hangs for submodules macOS with fsmonitor daemon can hang forever when a submodule is involved, which has been corrected. - Will merge to 'next'? - source: + Expecting a reroll. + cf. + source: * ps/leakfixes-part-8 (2024-09-30) 25 commits @@ -174,11 +237,10 @@ Release tarballs are available at: - builtin/annotate: fix leaking args vector - Merge branch 'jk/http-leakfixes' into ps/leakfixes-part-8 - Merge branch 'ps/leakfixes-part-7' into ps/leakfixes-part-8 - (this branch uses jk/http-leakfixes and ps/leakfixes-part-7.) More leakfixes. - Comments? + Will merge to 'next'. source: @@ -191,8 +253,6 @@ Release tarballs are available at: Comments? source: --------------------------------------------------- -[Cooking] * ej/cat-file-remote-object-info (2024-09-27) 6 commits - cat-file: add remote-object-info to batch-command @@ -210,73 +270,24 @@ Release tarballs are available at: * jc/doc-discarding-stalled-topics (2024-09-26) 1 commit - - howto-maintain-git: discarding inactive topics + (merged to 'next' on 2024-10-02 at adb0d84fd4) + + howto-maintain-git: discarding inactive topics Document that inactive topics are subject to be discarded. - Will merge to 'next'. - source: - - -* ds/sparse-checkout-expansion-advice (2024-09-23) 1 commit - (merged to 'next' on 2024-09-27 at e670bccf7e) - + sparse-checkout: disable advice in 'disable' - - When "git sparse-checkout disable" turns a sparse checkout into a - regular checkout, the index is fully expanded. This totally - expected behaviour however had an "oops, we are expanding the - index" advice message, which has been corrected. - Will merge to 'master'. - source: - - -* jk/http-leakfixes (2024-09-25) 28 commits - (merged to 'next' on 2024-09-27 at c52b418c92) - + http-push: clean up local_refs at exit - + http-push: clean up loose request when falling back to packed - + http-push: clean up objects list - + http-push: free xml_ctx.cdata after use - + http-push: free remote_ls_ctx.dentry_name - + http-push: free transfer_request strbuf - + http-push: free transfer_request dest field - + http-push: free curl header lists - + http-push: free repo->url string - + http-push: clear refspecs before exiting - + http-walker: free fake packed_git list - + remote-curl: free HEAD ref with free_one_ref() - + http: stop leaking buffer in http_get_info_packs() - + http: call git_inflate_end() when releasing http_object_request - + http: fix leak of http_object_request struct - + http: fix leak when redacting cookies from curl trace - + transport-helper: fix leak of dummy refs_list - + fetch-pack: clear pack lockfiles list - + fetch: free "raw" string when shrinking refspec - + transport-helper: fix strbuf leak in push_refs_with_push() - + send-pack: free cas options before exit - + commit: avoid leaking already-saved buffer - + fetch-pack, send-pack: clean up shallow oid array - + fetch-pack: free object filter before exiting - + connect: clear child process before freeing in diagnostic mode - + fetch-pack: fix leaking sought refs - + shallow: fix leak when unregistering last shallow root - + http-fetch: clear leaking git-index-pack(1) arguments - (this branch is used by ps/leakfixes-part-8.) - - Leakfixes. - - Will merge to 'master'. - source: <20240924214930.GA1143523@coredump.intra.peff.net> + source: * jk/test-lsan-improvements (2024-09-25) 3 commits - - test-lib: check for leak logs after every test - - test-lib: show leak-sanitizer logs on --immediate failure - - test-lib: stop showing old leak logs + (merged to 'next' on 2024-10-02 at 3d8303fcfe) + + test-lib: check for leak logs after every test + + test-lib: show leak-sanitizer logs on --immediate failure + + test-lib: stop showing old leak logs Usability improvements for running tests in leak-checking mode. - Needs review. + Will merge to 'master'. source: <20240924213404.GA1142219@coredump.intra.peff.net> @@ -313,74 +324,42 @@ Release tarballs are available at: source: -* ps/leakfixes-part-7 (2024-09-27) 24 commits - (merged to 'next' on 2024-09-27 at 8c1aa7e558) - + diffcore-break: fix leaking filespecs when merging broken pairs - + revision: fix leaking parents when simplifying commits - + builtin/maintenance: fix leak in `get_schedule_cmd()` - + builtin/maintenance: fix leaking config string - + promisor-remote: fix leaking partial clone filter - + grep: fix leaking grep pattern - + submodule: fix leaking submodule ODB paths - + trace2: destroy context stored in thread-local storage - + builtin/difftool: plug several trivial memory leaks - + builtin/repack: fix leaking configuration - + diffcore-order: fix leaking buffer when parsing orderfiles - + parse-options: free previous value of `OPTION_FILENAME` - + diff: fix leaking orderfile option - + builtin/pull: fix leaking "ff" option - + dir: fix off by one errors for ignored and untracked entries - + builtin/submodule--helper: fix leaking remote ref on errors - + t/helper: fix leaking subrepo in nested submodule config helper - + builtin/submodule--helper: fix leaking error buffer - + builtin/submodule--helper: clear child process when not running it - + submodule: fix leaking update strategy - + git: fix leaking argv when handling builtins - + builtin/help: fix leaking `html_path` when reading config multiple times - + builtin/help: fix dangling reference to `html_path` - + Merge branch 'ps/leakfixes-part-6' into ps/leakfixes-part-7 - (this branch is used by ps/leakfixes-part-8.) - - More leak-fixes. - - Will merge to 'master'. - cf. - source: - - -* ps/reftable-alloc-failures (2024-09-30) 24 commits - - reftable: handle trivial allocation failures - - reftable/tree: handle allocation failures - - reftable/pq: handle allocation failures when adding entries - - reftable/block: handle allocation failures - - reftable/blocksource: handle allocation failures - - reftable/iter: handle allocation failures when creating indexed table iter - - reftable/stack: handle allocation failures in auto compaction - - reftable/stack: handle allocation failures in `stack_compact_range()` - - reftable/stack: handle allocation failures in `reftable_new_stack()` - - reftable/stack: handle allocation failures on reload - - reftable/reader: handle allocation failures in `reader_init_iter()` - - reftable/reader: handle allocation failures for unindexed reader - - reftable/merged: handle allocation failures in `merged_table_init_iter()` - - reftable/writer: handle allocation failures in `reftable_new_writer()` - - reftable/writer: handle allocation failures in `writer_index_hash()` - - reftable/record: handle allocation failures when decoding records - - reftable/record: handle allocation failures on copy - - reftable/basics: handle allocation failures in `parse_names()` - - reftable/basics: handle allocation failures in `reftable_calloc()` - - reftable: introduce `reftable_strdup()` - - reftable/basics: merge "publicbasics" into "basics" - - reftable/error: introduce out-of-memory error code - - Merge branch 'ps/reftable-exclude' into ps/reftable-alloc-failures - - Merge branch 'cp/unit-test-reftable-stack' into ps/reftable-alloc-failures +* ps/reftable-alloc-failures (2024-10-02) 27 commits + (merged to 'next' on 2024-10-02 at a6d42d51d4) + + reftable/basics: ban standard allocator functions + + reftable: introduce `REFTABLE_FREE_AND_NULL()` + + reftable: fix calls to free(3P) + + reftable: handle trivial allocation failures + + reftable/tree: handle allocation failures + + reftable/pq: handle allocation failures when adding entries + + reftable/block: handle allocation failures + + reftable/blocksource: handle allocation failures + + reftable/iter: handle allocation failures when creating indexed table iter + + reftable/stack: handle allocation failures in auto compaction + + reftable/stack: handle allocation failures in `stack_compact_range()` + + reftable/stack: handle allocation failures in `reftable_new_stack()` + + reftable/stack: handle allocation failures on reload + + reftable/reader: handle allocation failures in `reader_init_iter()` + + reftable/reader: handle allocation failures for unindexed reader + + reftable/merged: handle allocation failures in `merged_table_init_iter()` + + reftable/writer: handle allocation failures in `reftable_new_writer()` + + reftable/writer: handle allocation failures in `writer_index_hash()` + + reftable/record: handle allocation failures when decoding records + + reftable/record: handle allocation failures on copy + + reftable/basics: handle allocation failures in `parse_names()` + + reftable/basics: handle allocation failures in `reftable_calloc()` + + reftable: introduce `reftable_strdup()` + + reftable/basics: merge "publicbasics" into "basics" + + reftable/error: introduce out-of-memory error code + + Merge branch 'ps/reftable-exclude' into ps/reftable-alloc-failures + + Merge branch 'cp/unit-test-reftable-stack' into ps/reftable-alloc-failures The reftable library is now prepared to expect that the memory allocation function given to it may fail to allocate and to deal with such an error. - Expecting a reroll. - cf. - source: + Will cook in 'next'. + source: * jc/strbuf-commented-something (2024-09-12) 2 commits @@ -430,26 +409,6 @@ Release tarballs are available at: source: -* tb/weak-sha1-for-tail-sum (2024-09-27) 8 commits - (merged to 'next' on 2024-09-30 at 1b4caadd94) - + csum-file.c: use unsafe SHA-1 implementation when available - + Makefile: allow specifying a SHA-1 for non-cryptographic uses - + hash.h: scaffolding for _unsafe hashing variants - + sha1: do not redefine `platform_SHA_CTX` and friends - + pack-objects: use finalize_object_file() to rename pack/idx/etc - + finalize_object_file(): implement collision check - + finalize_object_file(): refactor unlink_or_warn() placement - + finalize_object_file(): check for name collision before renaming - - The checksum at the tail of files are now computed without - collision detection protection. - - Will merge to 'master'. - cf. <20240927035712.GH567395@coredump.intra.peff.net> - cf. - source: - - * sj/ref-contents-check (2024-09-30) 9 commits - ref: add symlink ref content check for files backend - t0602: add ref content checks for worktrees @@ -533,7 +492,7 @@ Release tarballs are available at: been revamped. The sources, at least for the simple cases, got vastly pleasant to work with. - Will merge to 'master'. + Will cook in 'next'. source: