From: Junio C Hamano Date: Tue, 3 Dec 2024 04:41:36 +0000 (+0900) Subject: What's cooking (2024/12 #01) X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ce1cda53a36f3c7ae1618bdfd15d9250e9973194;p=thirdparty%2Fgit.git What's cooking (2024/12 #01) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 309fd96cdf..a005dd9559 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 (Nov 2024, #10; Thu, 28) +Subject: What's cooking in git.git (Dec 2024, #01; Tue, 3) X-master-at: cc01bad4a9f566cf4453c7edd6b433851b0835e2 -X-next-at: 84693f6bb70175a83151ae9668127e1308f434b4 +X-next-at: 3c1d2e2a6a4cf624a0e213880d579d03ad3e60cc Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (Nov 2024, #10; Thu, 28) +What's cooking in git.git (Dec 2024, #01; Tue, 3) -------------------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -46,100 +46,85 @@ Release tarballs are available at: https://www.kernel.org/pub/software/scm/git/ -------------------------------------------------- -[Graduated to 'master'] - -* bc/c23 (2024-11-18) 2 commits - (merged to 'next' on 2024-11-20 at bd29255bf3) - + reflog: rename unreachable - + index-pack: rename struct thread_local - - C23 compatibility updates. - source: <20241117013149.576671-1-sandals@crustytoothpaste.net> - - -* en/fast-import-avoid-self-replace (2024-11-19) 1 commit - (merged to 'next' on 2024-11-20 at 751ee6b395) - + fast-import: avoid making replace refs point to themselves +[New Topics] - "git fast-import" can be tricked into a replace ref that maps an - object to itself, which is a useless thing to do. - source: +* kh/doc-bundle-typofix (2024-12-02) 1 commit + - Documentation/git-bundle.txt: fix word join typo + Typofix. -* jk/gcc15 (2024-11-18) 6 commits - (merged to 'next' on 2024-11-20 at fa92bcdeb9) - + object-file: inline empty tree and blob literals - + object-file: treat cached_object values as const - + object-file: drop oid field from find_cached_object() return value - + object-file: move empty_tree struct into find_cached_object() - + object-file: drop confusing oid initializer of empty_tree struct - + object-file: prefer array-of-bytes initializer for hash literals + Will merge to 'next'. + source: <164b94bab9214f6030909df8f1e7c476b7f79e55.1732822997.git.code@khaugsbakk.name> - GCC 15 compatibility updates. - source: <20241118095423.GA3990835@coredump.intra.peff.net> +* kh/doc-update-ref-grammofix (2024-12-02) 1 commit + - Documentation/git-update-ref.txt: add missing word -* jt/index-pack-allow-promisor-only-while-fetching (2024-11-20) 1 commit - (merged to 'next' on 2024-11-20 at 9bd7657760) - + index-pack: teach --promisor to forbid pack name + Grammofix. - We now ensure "index-pack" is used with the "--promisor" option - only during a "git fetch". - source: <20241119201016.22713-1-jonathantanmy@google.com> + Will merge to 'next'. + source: <6cc7a9d60216c966bcf77675aa22a39cfa8993e2.1732906187.git.code@khaugsbakk.name> -* kh/bundle-docs (2024-11-18) 4 commits - (merged to 'next' on 2024-11-20 at d70c2c32ce) - + Documentation/git-bundle.txt: discuss naïve backups - + Documentation/git-bundle.txt: mention --all in spec. refs - + Documentation/git-bundle.txt: remove old `--all` example - + Documentation/git-bundle.txt: mention full backup example +* ps/build-sign-compare (2024-12-03) 14 commits + - t/helper: don't depend on implicit wraparound + - scalar: address -Wsign-compare warnings + - builtin/patch-id: fix type of `get_one_patchid()` + - builtin/blame: fix type of `length` variable when emitting object ID + - gpg-interface: address -Wsign-comparison warnings + - daemon: fix type of `max_connections` + - daemon: fix loops that have mismatching integer types + - global: trivial conversions to fix `-Wsign-compare` warnings + - diff.h: fix index used to loop through unsigned integer + - config.mak.dev: drop `-Wno-sign-compare` + - global: mark code units that generate warnings with `-Wsign-compare` + - compat/win32: fix -Wsign-compare warning in "wWinMain()" + - compat/regex: explicitly ignore "-Wsign-compare" warnings + - git-compat-util: introduce macros to disable "-Wsign-compare" warnings - Documentation for "git bundle" saw improvements to more prominently - call out the use of '--all' when creating bundles. - source: + Start working to make the codebase buildable with -Wsign-compare. + source: <20241202-pks-sign-compare-v2-0-e7f0ad92a749@pks.im> -* kh/trailer-in-glossary (2024-11-18) 1 commit - (merged to 'next' on 2024-11-20 at fad433e2f4) - + Documentation/glossary: describe "trailer" - Doc updates. - source: +* rj/strvec-splice-fix (2024-12-02) 2 commits + - strvec: `strvec_splice()` to a statically initialized vector + - Merge branch 'ps/leakfixes-part-10' into rj/strvec-splice-fix + (this branch uses ps/leakfixes-part-10.) + Correct strvec_splice() that misbehaved when the strvec is empty. -* kn/ref-transaction-hook-with-reflog (2024-11-15) 1 commit - (merged to 'next' on 2024-11-20 at 23399887d7) - + refs: don't invoke reference-transaction hook for reflogs + Expecting a reroll. + cf. + source: <37d0abbf-c703-481d-9f26-b237aac54c05@gmail.com> - The ref-transaction hook triggered for reflog updates, which has - been corrected. - source: <20241114-348-do-not-call-the-reference-transaction-hooks-for-reflogs-v1-1-ece7260ee3c1@gmail.com> +* jc/forbid-head-as-tagname (2024-12-03) 4 commits + - tag: "git tag" refuses to use HEAD as a tagname + - t5604: do not expect that HEAD can be a valid tagname + - refs: drop strbuf_ prefix from helpers + - refs: move ref name helpers around -* ps/clar-build-improvement (2024-11-18) 4 commits - (merged to 'next' on 2024-11-20 at d88840a15d) - + Makefile: let clar header targets depend on their scripts - + cmake: use verbatim arguments when invoking clar commands - + cmake: use SH_EXE to execute clar scripts - + t/unit-tests: convert "clar-generate.awk" into a shell script - (this branch is used by ps/build.) + "git tag" has been taught to refuse to create refs/tags/HEAD + as such a tag will be confusing in the context of UI provided by + the Git Porcelain commands. - Fix for clar unit tests to support CMake build. - source: <20241115-pks-clar-build-improvements-v3-0-29672bf65ec6@pks.im> + Will merge to 'next'? + source: <20241203023240.3852850-1-gitster@pobox.com> -------------------------------------------------- -[New Topics] +[Cooking] -* en/fast-import-verify-path (2024-11-28) 2 commits - - fast-import: disallow more path components +* en/fast-import-verify-path (2024-12-02) 2 commits + (merged to 'next' on 2024-12-02 at 2932fa51e4) + + fast-import: disallow more path components (merged to 'next' on 2024-11-27 at 8b145bb543) + fast-import: disallow "." and ".." path components "git fast-import" learned to reject paths with ".." and "." as their components to avoid creating invalid tree objects. - Will merge to 'next'. + Will merge to 'master'. source: source: @@ -179,29 +164,35 @@ Release tarballs are available at: source: -* bf/fetch-set-head-config (2024-11-27) 2 commits +* bf/fetch-set-head-config (2024-12-02) 2 commits - fetch: add configuration for set_head behaviour - Merge branch 'bf/set-head-symref' into bf/fetch-set-head-config (this branch uses bf/set-head-symref.) - source: <20241127091718.345541-1-bence@ferdinandy.com> + "git fetch" honors "remote..followRemoteHEAD" settings to + tweak the remote-tracking HEAD in "refs/remotes//HEAD". + + Will merge to 'next'. + source: <20241128230806.2058962-1-bence@ferdinandy.com> -* jc/doc-error-message-guidelines (2024-11-28) 1 commit +* jc/doc-error-message-guidelines (2024-11-29) 1 commit - CodingGuidelines: a handful of error message guidelines + Developer documentation update. + + Will merge to 'next'. source: --------------------------------------------------- -[Cooking] * jc/doc-opt-tilde-expand (2024-11-25) 1 commit - - doc: option value may be separate for valid reasons + (merged to 'next' on 2024-12-02 at e345717b87) + + doc: option value may be separate for valid reasons Describe a case where an option value needs to be spelled as a separate argument, i.e. "--opt val", not "--opt=val". - Will merge to 'next'. + Will merge to 'master'. source: @@ -236,7 +227,7 @@ Release tarballs are available at: source: -* jt/bundle-fsck (2024-11-27) 4 commits +* jt/bundle-fsck (2024-11-28) 4 commits - transport: propagate fsck configuration during bundle fetch - fetch-pack: split out fsck config parsing - bundle: support fsck message configuration @@ -246,9 +237,8 @@ Release tarballs are available at: both learned to trigger fsck over the new objects with configurable fck check levels. - Expecting a reroll. - cf. - source: <20241127005707.319881-1-jltobler@gmail.com> + Will merge to 'next'? + source: <20241127233312.27710-1-jltobler@gmail.com> * tb/boundary-traversal-fix (2024-11-22) 1 commit @@ -272,13 +262,14 @@ Release tarballs are available at: * bc/allow-upload-pack-from-other-people (2024-11-15) 1 commit - - Allow cloning from repositories owned by another user + (merged to 'next' on 2024-12-02 at bf711f018c) + + Allow cloning from repositories owned by another user Loosen overly strict ownership check introduced in the recent past, to keep the promise "cloning a suspicious repository is a safe first step to inspect it". - Will merge to 'next'. + Will merge to 'master'. cf. source: <20241115005404.3747302-2-sandals@crustytoothpaste.net> @@ -335,16 +326,17 @@ Release tarballs are available at: * pb/mergetool-errors (2024-11-25) 5 commits - - git-difftool--helper.sh: exit upon initialize_merge_tool errors - - git-mergetool--lib.sh: add error message for unknown tool variant - - git-mergetool--lib.sh: add error message if 'setup_user_tool' fails - - git-mergetool--lib.sh: use TOOL_MODE when erroring about unknown tool - - completion: complete '--tool-help' in 'git mergetool' + (merged to 'next' on 2024-12-02 at b439b146c2) + + git-difftool--helper.sh: exit upon initialize_merge_tool errors + + git-mergetool--lib.sh: add error message for unknown tool variant + + git-mergetool--lib.sh: add error message if 'setup_user_tool' fails + + git-mergetool--lib.sh: use TOOL_MODE when erroring about unknown tool + + completion: complete '--tool-help' in 'git mergetool' End-user experience of "git mergetool" when the command errors out has been improved. - Will merge to 'next'. + Will merge to 'master'. source: @@ -399,23 +391,24 @@ Release tarballs are available at: * ps/reftable-iterator-reuse (2024-11-26) 11 commits - - refs/reftable: reuse iterators when reading refs - - reftable/merged: drain priority queue on reseek - - reftable/stack: add mechanism to notify callers on reload - - refs/reftable: refactor reflog expiry to use reftable backend - - refs/reftable: refactor reading symbolic refs to use reftable backend - - refs/reftable: read references via `struct reftable_backend` - - refs/reftable: figure out hash via `reftable_stack` - - reftable/stack: add accessor for the hash ID - - refs/reftable: handle reloading stacks in the reftable backend - - refs/reftable: encapsulate reftable stack - - Merge branch 'ps/reftable-detach' into ps/reftable-iterator-reuse + (merged to 'next' on 2024-12-02 at 3c1d2e2a6a) + + refs/reftable: reuse iterators when reading refs + + reftable/merged: drain priority queue on reseek + + reftable/stack: add mechanism to notify callers on reload + + refs/reftable: refactor reflog expiry to use reftable backend + + refs/reftable: refactor reading symbolic refs to use reftable backend + + refs/reftable: read references via `struct reftable_backend` + + refs/reftable: figure out hash via `reftable_stack` + + reftable/stack: add accessor for the hash ID + + refs/reftable: handle reloading stacks in the reftable backend + + refs/reftable: encapsulate reftable stack + + Merge branch 'ps/reftable-detach' into ps/reftable-iterator-reuse (this branch uses ps/reftable-detach.) Optimize reading random references out of the reftable backend by allowing reuse of iterator objects. - Will merge to 'next'? + Will merge to 'master'. source: <20241126-pks-reftable-backend-reuse-iter-v4-0-b17fd27df126@pks.im> @@ -433,14 +426,15 @@ Release tarballs are available at: * jk/describe-perf (2024-11-07) 4 commits - - describe: stop traversing when we run out of names - - describe: stop digging for max_candidates+1 - - t/perf: add tests for git-describe - - t6120: demonstrate weakness in disjoint-root handling + (merged to 'next' on 2024-12-02 at 0f34109a85) + + describe: stop traversing when we run out of names + + describe: stop digging for max_candidates+1 + + t/perf: add tests for git-describe + + t6120: demonstrate weakness in disjoint-root handling "git describe" optimization. - Will merge to 'next'. + Will merge to 'master'. source: <20241106192236.GC880133@coredump.intra.peff.net> @@ -486,7 +480,7 @@ Release tarballs are available at: + bisect: fix leaking good/bad terms when reading multipe times + builtin/blame: fix leaking blame entries with `--incremental` + Merge branch 'ps/leakfixes-part-9' into ps/leakfixes-part-10 - (this branch is used by ps/bisect-double-free-fix.) + (this branch is used by ps/bisect-double-free-fix and rj/strvec-splice-fix.) Leakfixes. @@ -506,22 +500,22 @@ Release tarballs are available at: source: -* ds/full-name-hash (2024-11-04) 7 commits +* ds/name-hash-tweaks (2024-12-03) 8 commits + - pack-objects: add third name hash version + - pack-objects: prevent name hash version change - test-tool: add helper for name-hash values - - pack-objects: disable --full-name-hash when shallow - p5313: add size comparison test - - git-repack: update usage to match docs - - pack-objects: add GIT_TEST_FULL_NAME_HASH - - repack: add --full-name-hash option - - pack-objects: add --full-name-hash option + - pack-objects: add GIT_TEST_NAME_HASH_VERSION + - repack: add --name-hash-version option + - pack-objects: add --name-hash-version option + - pack-objects: create new name-hash function version "git pack-objects" and its wrapper "git repack" learned an option to use an alternative path-hash function to improve delta-base selection to produce a packfile with deeper history than window size. - Needs review. - source: + source: * ds/path-walk-1 (2024-11-11) 6 commits @@ -541,17 +535,18 @@ Release tarballs are available at: * bc/ancient-ci (2024-11-01) 3 commits - - Add additional CI jobs to avoid accidental breakage - - ci: remove clause for Ubuntu 16.04 - - gitlab-ci: switch from Ubuntu 16.04 to 20.04 + (merged to 'next' on 2024-12-02 at f6128744ce) + + Add additional CI jobs to avoid accidental breakage + + ci: remove clause for Ubuntu 16.04 + + gitlab-ci: switch from Ubuntu 16.04 to 20.04 Drop support for ancient environments in various CI jobs. - Will merge to 'next'. + Will merge to 'master'. source: <20241031234934.3451390-1-sandals@crustytoothpaste.net> -* cw/worktree-extension (2024-11-26) 8 commits +* cw/worktree-extension (2024-12-02) 8 commits - worktree: refactor `repair_worktree_after_gitdir_move()` - worktree: add relative cli/config options to `repair` command - worktree: add relative cli/config options to `move` command @@ -565,7 +560,7 @@ Release tarballs are available at: from mis-interpreting worktrees created with relative paths. Will merge to 'next'? - source: <20241125-wt_relative_options-v5-0-356d122ff3db@pm.me> + source: <20241129-wt_relative_options-v6-0-44e4e0bec8c3@pm.me> * as/show-index-uninitialized-hash (2024-11-11) 2 commits @@ -579,20 +574,21 @@ Release tarballs are available at: * ps/reftable-detach (2024-11-19) 8 commits - - reftable/system: provide thin wrapper for lockfile subsystem - - reftable/stack: drop only use of `get_locked_file_path()` - - reftable/system: provide thin wrapper for tempfile subsystem - - reftable/stack: stop using `fsync_component()` directly - - reftable/system: stop depending on "hash.h" - - reftable: explicitly handle hash format IDs - - reftable/system: move "dir.h" to its only user - - Merge branch 'ps/reftable-strbuf' into ps/reftable-detach + (merged to 'next' on 2024-12-02 at e105e787b6) + + reftable/system: provide thin wrapper for lockfile subsystem + + reftable/stack: drop only use of `get_locked_file_path()` + + reftable/system: provide thin wrapper for tempfile subsystem + + reftable/stack: stop using `fsync_component()` directly + + reftable/system: stop depending on "hash.h" + + reftable: explicitly handle hash format IDs + + reftable/system: move "dir.h" to its only user + + Merge branch 'ps/reftable-strbuf' into ps/reftable-detach (this branch is used by ps/reftable-iterator-reuse.) Isolates the reftable subsystem from the rest of Git's codebase by using fewer pieces of Git's infrastructure. - Needs review. + Will merge to 'master'. source: @@ -649,27 +645,28 @@ Release tarballs are available at: * bf/set-head-symref (2024-11-25) 10 commits - - fetch set_head: handle mirrored bare repositories - - fetch: set remote/HEAD if it does not exist - - refs: add create_only option to refs_update_symref_extended - - refs: add TRANSACTION_CREATE_EXISTS error - - remote set-head: better output for --auto - - remote set-head: refactor for readability - - refs: atomically record overwritten ref in update_symref - - refs: standardize output of refs_read_symbolic_ref - - t/t5505-remote: test failure of set-head - - t/t5505-remote: set default branch to main + (merged to 'next' on 2024-12-02 at b142ff3d8e) + + fetch set_head: handle mirrored bare repositories + + fetch: set remote/HEAD if it does not exist + + refs: add create_only option to refs_update_symref_extended + + refs: add TRANSACTION_CREATE_EXISTS error + + remote set-head: better output for --auto + + remote set-head: refactor for readability + + refs: atomically record overwritten ref in update_symref + + refs: standardize output of refs_read_symbolic_ref + + t/t5505-remote: test failure of set-head + + t/t5505-remote: set default branch to main (this branch is used by bf/fetch-set-head-config.) When "git fetch $remote" notices that refs/remotes/$remote/HEAD is missing and discovers what branch the other side points with its HEAD, refs/remotes/$remote/HEAD is updated to point to it. - Will merge to 'next'. + Will merge to 'master'. source: <20241122123138.66960-1-bence@ferdinandy.com> -* ps/build (2024-11-26) 24 commits +* ps/build (2024-12-02) 24 commits - meson: fix conflicts with in-flight topics - Introduce support for the Meson build system - Documentation: add comparison of build systems @@ -698,7 +695,7 @@ Release tarballs are available at: Build procedure update plus introduction of Mason based builds Will merge to 'next'? - source: <20241125-pks-meson-v9-0-1c6cf242a5f1@pks.im> + source: <20241128-pks-meson-v10-0-79a3fb0cb3a6@pks.im> * ej/cat-file-remote-object-info (2024-11-25) 6 commits @@ -717,23 +714,6 @@ Release tarballs are available at: source: <20241125053616.25170-1-eric.peijian@gmail.com> -* cc/promisor-remote-capability (2024-09-10) 4 commits - - promisor-remote: check advertised name or URL - - Add 'promisor-remote' capability to protocol v2 - - strbuf: refactor strbuf_trim_trailing_ch() - - version: refactor strbuf_sanitize() - - The v2 protocol learned to allow the server to advertise possible - promisor remotes, and the client to respond with what promissor - remotes it uses, so that the server side can omit objects that the - client can lazily obtain from these other promissor remotes. - - Comments? I got an impression that this is premature without - finishing the discussion on a larger picture. - cf. - source: <20240910163000.1985723-1-christian.couder@gmail.com> - - * sj/ref-contents-check (2024-11-21) 9 commits (merged to 'next' on 2024-11-25 at 53e29ae705) + ref: add symlink ref content check for files backend @@ -786,3 +766,22 @@ Release tarballs are available at: Will merge to 'next'? source: + +-------------------------------------------------- +[Discarded] + +* cc/promisor-remote-capability (2024-09-10) 4 commits + . promisor-remote: check advertised name or URL + . Add 'promisor-remote' capability to protocol v2 + . strbuf: refactor strbuf_trim_trailing_ch() + . version: refactor strbuf_sanitize() + + The v2 protocol learned to allow the server to advertise possible + promisor remotes, and the client to respond with what promissor + remotes it uses, so that the server side can omit objects that the + client can lazily obtain from these other promissor remotes. + + Discarded for now. + cf. + cf. + source: <20240910163000.1985723-1-christian.couder@gmail.com>