From 3d32877fcf03ff39f68ce062d897fd3ec6c60df0 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 3 May 2024 16:25:26 -0700 Subject: [PATCH] What's cooking (2024/05 #02) --- whats-cooking.txt | 624 +++++++++++++++++++++++++--------------------- 1 file changed, 341 insertions(+), 283 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index f1ccdfff3d..9750a5d52b 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 (May 2024, #01; Wed, 1) +Subject: What's cooking in git.git (May 2024, #02; Fri, 3) X-master-at: d4cc1ec35f3bcce816b69986ca41943f6ce21377 -X-next-at: 0667e3c05b4d9d32988313da24324a4cf9ecb0bf +X-next-at: 7fe29c98d7a84cdef7e95a658d5ebfcb2a8b606b Bcc: lwn@lwn.net, gitster@pobox.com -What's cooking in git.git (May 2024, #01; Wed, 1) +What's cooking in git.git (May 2024, #02; Fri, 3) -------------------------------------------------- Here are the topics that have been cooking in my tree. Commits @@ -48,263 +48,152 @@ Release tarballs are available at: https://www.kernel.org/pub/software/scm/git/ --------------------------------------------------- -[Graduated to 'master'] - -* aj/stash-staged-fix (2024-04-22) 1 commit - (merged to 'next' on 2024-04-23 at d49e9dade0) - + stash: fix "--staged" with binary files - - "git stash -S" did not handle binary files correctly, which has - been corrected. - source: - - -* ds/format-patch-rfc-and-k (2024-04-19) 1 commit - (merged to 'next' on 2024-04-23 at b3b0c5507a) - + format-patch: ensure that --rfc and -k are mutually exclusive - - The "-k" and "--rfc" options of "format-patch" will now error out - when used together, as one tells us not to add anything to the - title of the commit, and the other one tells us to add "RFC" in - addition to "PATCH". - source: <71d195c248879e7c46fac0e84c6b0a8aa90bd2c2.1713488563.git.dsimic@manjaro.org> - - -* jc/format-patch-rfc-more (2024-04-23) 2 commits - (merged to 'next' on 2024-04-23 at 9f51487974) - + format-patch: "--rfc=-(WIP)" appends to produce [PATCH (WIP)] - + format-patch: allow --rfc to optionally take a value, like --rfc=WIP - - The "--rfc" option of "git format-patch" learned to take an - optional string value to be used in place of "RFC" to tweak the - "[PATCH]" on the subject header. - source: <20240423175234.170434-1-gitster@pobox.com> - - -* js/build-fuzz-more-often (2024-04-24) 1 commit - (merged to 'next' on 2024-04-25 at 28f65d1be2) - + fuzz: link fuzz programs with `make all` on Linux - - In addition to building the objects needed, try to link the objects - that are used in fuzzer tests, to make sure at least they build - without bitrot, in Linux CI runs. - source: - - -* js/for-each-repo-keep-going (2024-04-24) 2 commits - (merged to 'next' on 2024-04-25 at d33253d919) - + maintenance: running maintenance should not stop on errors - + for-each-repo: optionally keep going on an error - - A scheduled "git maintenance" job is expected to work on all - repositories it knows about, but it stopped at the first one that - errored out. Now it keeps going. - source: - - -* la/doc-use-of-contacts-when-contributing (2024-04-18) 8 commits - (merged to 'next' on 2024-04-25 at 5102a45f63) - + SubmittingPatches: demonstrate using git-contacts with git-send-email - + SubmittingPatches: add heading for format-patch and send-email - + SubmittingPatches: dedupe discussion of security patches - + SubmittingPatches: discuss reviewers first - + SubmittingPatches: quote commands - + SubmittingPatches: mention GitGitGadget - + SubmittingPatches: clarify 'git-contacts' location - + MyFirstContribution: mention contrib/contacts/git-contacts - - Advertise "git contacts", a tool for newcomers to find people to - ask review for their patches, a bit more in our developer - documentation. - source: - - -* pw/rebase-m-signoff-fix (2024-04-18) 6 commits - (merged to 'next' on 2024-04-23 at 66374c00e2) - + rebase -m: fix --signoff with conflicts - + sequencer: store commit message in private context - + sequencer: move current fixups to private context - + sequencer: start removing private fields from public API - + sequencer: always free "struct replay_opts" - + Merge branch 'pw/t3428-cleanup' into pw/rebase-m-signoff-fix - - "git rebase --signoff" used to forget that it needs to add a - sign-off to the resulting commit when told to continue after a - conflict stops its operation. - source: - - -* xx/disable-replace-when-building-midx (2024-04-17) 1 commit - (merged to 'next' on 2024-04-23 at 6c8f41740e) - + midx: disable replace objects - - The procedure to build multi-pack-index got confused by the - replace-refs mechanism, which has been corrected by disabling the - latter. - source: - -------------------------------------------------- [New Topics] -* bb/rgb-12-bit-colors (2024-04-30) 4 commits - - fixup! t/t4026-color: add test coverage for invalid RGB colors - - color: add support for 12-bit RGB colors - - t/t4026-color: add test coverage for invalid RGB colors - - t/t4026-color: remove an extra double quote character +* jc/test-workaround-broken-mv (2024-05-02) 1 commit + - t/lib-chunk: work around broken "mv" on some vintage of macOS - Colors can now be specified with 12-bit format "#RGB" (in addition - to "#RRGGBB" that is already supported). - - Will merge to 'next' after squashing the fix-up in??? - source: <20240429164849.78509-1-dev+git@drbeat.li> - - -* ds/scalar-reconfigure-all-fix (2024-04-30) 1 commit - - scalar: avoid segfault in reconfigure --all - - Scalar fix. - - Comments? - source: - - -* ps/pseudo-ref-terminology (2024-04-30) 10 commits - - refs: refuse to write pseudorefs - - ref-filter: properly distinuish pseudo and root refs - - refs: pseudorefs are no refs - - refs: root refs can be symbolic refs - - refs: classify HEAD as a root ref - - refs: refname `is_special_ref()` to `is_pseudo_ref()` - - refs: rename `is_pseudoref()` to `is_root_ref()` - - Documentation/glossary: define root refs as refs - - Documentation/glossary: clarify limitations of pseudorefs - - Documentation/glossary: redefine pseudorefs as special refs - - Terminology to call various ref-like things are getting - straightened out. - - Under discussion. - source: - - -* dk/zsh-git-repo-path-fix (2024-04-30) 1 commit - - completion: zsh: stop leaking local cache variable - - Command line completion support for zsh (in contrib/) has been - updated to stop exposing internal state to end-user shell - interaction. + Tests that try to corrupt in-repository files in chunked format did + not work well on macOS due to its broken "mv", which has been + worked around. Will merge to 'next'. - source: + source: -* rs/diff-parseopts-cleanup (2024-05-01) 1 commit - - diff-lib: stop calling diff_setup_done() in do_diff_cache() +* jt/port-ci-whitespace-check-to-gitlab (2024-05-03) 5 commits + - gitlab-ci: add whitespace error check + - ci: make the whitespace report optional + - ci: separate whitespace check script + - github-ci: fix link to whitespace error + - ci: pre-collapse GitLab CI sections - Code clean-up to remove code that is now a noop. + The "whitespace check" task that was enabled for GitHub Actions CI + has been ported to GitLab CI. + + Will merge to 'next'? + source: <20240503172110.181326-1-jltobler@gmail.com> + + +* jc/no-default-attr-tree-in-bare (2024-05-03) 1 commit + - stop using HEAD for attributes in bare repository by default + + Git 2.43 started using the tree of HEAD as the source of attributes + in a bare repository, which has severe performance implications. + For now, revert the change, without ripping out a more explicit + support for the attr.tree configuration variable. + + Will merge to 'next'? + source: + + +* jl/git-no-advice (2024-05-03) 3 commits + - advice: add --no-advice global option + - doc: add spacing around paginate options + - doc: clean up usage documentation for --no-* opts + + A new global "--no-advice" option can be used to disable all advice + messages, which is meant to be used only in scripts. Will merge to 'next'. - source: <0e96c5a3-7b4d-4c6b-875e-d80e3eb07a00@web.de> + source: <20240503071706.78109-1-james@jamesliu.io> + + +* kn/ref-transaction-symref (2024-05-03) 7 commits + - refs: remove `create_symref` and associated dead code + - refs: rename `refs_create_symref()` to `refs_update_symref()` + - refs: use transaction in `refs_create_symref()` + - refs: add support for transactional symref updates + - refs: support symrefs in 'reference-transaction' hook + - files-backend: extract out `create_symref_lock()` + - refs: accept symref values in `ref_transaction_update()` + + Updates to symbolic refs can now be made as a part of ref + transaction. + + Will merge to 'next'? + source: <20240503124115.252413-1-knayak@gitlab.com> + + +* ma/win32-unix-domain-socket (2024-05-03) 1 commit + - win32: fix building with NO_UNIX_SOCKETS + + Build fix. + + Will merge to 'next'. + source: <20240503091427.2808390-1-mh@glandium.org> + + +* ps/config-subcommands (2024-05-03) 14 commits + - builtin/config: display subcommand help + - builtin/config: introduce "edit" subcommand + - builtin/config: introduce "remove-section" subcommand + - builtin/config: introduce "rename-section" subcommand + - builtin/config: introduce "unset" subcommand + - builtin/config: introduce "set" subcommand + - builtin/config: introduce "get" subcommand + - builtin/config: introduce "list" subcommand + - builtin/config: pull out function to handle `--null` + - builtin/config: pull out function to handle config location + - builtin/config: use `OPT_CMDMODE()` to specify modes + - builtin/config: move "fixed-value" option to correct group + - builtin/config: move option array around + - config: clarify memory ownership when preparing comment strings + + The operation mode options (like "--get") the "git config" command + uses have been deprecated and replaced with subcommands (like "git + config get"). + + Will merge to 'next'? + source: + + +* ps/refs-without-the-repository (2024-05-03) 5 commits + - refs: remove functions without ref store + - cocci: apply rules to rewrite callers of "refs" interfaces + - cocci: introduce rules to transform "refs" to pass ref store + - refs: add `exclude_patterns` parameter to `for_each_fullref_in()` + - refs: introduce missing functions that accept a `struct ref_store` + + The refs API lost functions that implicitly assumes to work on the + primary ref_store by forcing the callers to pass a ref_store as an + argument. + + Will merge to 'next'? + source: + + +* ps/reftable-write-options (2024-05-03) 11 commits + - refs/reftable: allow configuring geometric factor + - reftable: make the compaction factor configurable + - refs/reftable: allow disabling writing the object index + - refs/reftable: allow configuring restart interval + - reftable: use `uint16_t` to track restart interval + - refs/reftable: allow configuring block size + - reftable/dump: support dumping a table's block structure + - reftable/writer: improve error when passed an invalid block size + - reftable/writer: drop static variable used to initialize strbuf + - reftable: consistently pass write opts as value + - reftable: consistently refer to `reftable_write_options` as `opts` + + The knobs to tweak how reftable files are written have been made + available as configuration variables. + + Needs review. + source: + + +* tb/attr-limits (2024-05-03) 1 commit + - attr.c: move ATTR_MAX_FILE_SIZE check into read_attr_from_buf() + + The maximum size of attribute files is enforced more consistently. + + Will merge to 'next'. + source: <28f6267709db78ba526d7ed9fc4a734674697c70.1714763555.git.me@ttaylorr.com> -------------------------------------------------- -[Cooking] - -* rh/complete-symbolic-ref (2024-04-25) 3 commits - - completion: add docs on how to add subcommand completions - - completion: improve docs for using __git_complete - - completion: add 'symbolic-ref' - - Command line completion script (in contrib/) learned to complete - "git symbolic-ref" a bit better (you need to enable plumbing - commands to be completed with GIT_COMPLETION_SHOW_ALL_COMMANDS). - - Will merge to 'next'. - source: <20240425101845.708554-3-rhi@pengutronix.de> - - -* jt/doc-submitting-rerolled-series (2024-04-25) 1 commit - - doc: clarify practices for submitting updated patch versions - - Developer doc update. - - Will merge to 'next'. - source: <20240425213404.133660-1-jltobler@gmail.com> - - -* bc/zsh-compatibility (2024-04-26) 2 commits - - vimdiff: make script and tests work with zsh - - t4046: avoid continue in &&-chain for zsh - - zsh can pretend to be a normal shell pretty well except for some - glitches that we tickle in some of our scripts. Work them around - so that "vimdiff" and our test suite works well enough with it. - - Will merge to 'next'. - source: <20240426221154.2194139-1-sandals@crustytoothpaste.net> - - -* jc/rev-parse-fatal-doc (2024-05-01) 1 commit - - rev-parse: document how --is-* options work outside a repository - - Doc update. - - Comments? - source: - - -* ps/undecided-is-not-necessarily-sha1 (2024-04-30) 13 commits - - repository: stop setting SHA1 as the default object hash - - oss-fuzz/commit-graph: set up hash algorithm - - builtin/shortlog: don't set up revisions without repo - - builtin/diff: explicitly set hash algo when there is no repo - - builtin/bundle: abort "verify" early when there is no repository - - builtin/blame: don't access potentially unitialized `the_hash_algo` - - builtin/rev-parse: allow shortening to more than 40 hex characters - - remote-curl: fix parsing of detached SHA256 heads - - attr: fix BUG() when parsing attrs outside of repo - - attr: don't recompute default attribute source - - parse-options-cb: only abbreviate hashes when hash algo is known - - path: move `validate_headref()` to its only user - - path: harden validation of HEAD with non-standard hashes - - Before discovering the repository details, We used to assume SHA-1 - as the "default" hash function, which has been corrected. Hopefully - this will smoke out codepaths that rely on such an unwarranted - assumptions. - - Comments? - source: - - -* rj/add-p-typo-reaction (2024-04-30) 2 commits - - add-patch: response to unknown command - - add-patch: do not show UI messages on stderr - - When the user responds to a prompt given by "git add -p" with an - unsupported command, list of available commands were given, which - was too much if the user knew what they wanted to type but merely - made a typo. Now the user gets a much shorter error message. - - Will merge to 'next'. - source: <952a9514-3cf1-4601-8f0d-db57adc750c3@gmail.com> - - -* ps/the-index-is-no-more (2024-04-18) 6 commits - - repository: drop `initialize_the_repository()` - - repository: drop `the_index` variable - - builtin/clone: stop using `the_index` - - repository: initialize index in `repo_init()` - - builtin: stop using `the_index` - - t/helper: stop using `the_index` - - The singleton index_state instance "the_index" has been eliminated - by always instantiating "the_repository" and replacing references - to "the_index" with references to its .index member. - - Will merge to 'next'. - source: - +[Graduated to 'master'] * kn/update-ref-symrefs (2024-04-26) 7 commits - ref: support symrefs in 'reference-transaction' hook @@ -321,26 +210,195 @@ Release tarballs are available at: cf. source: <20240426152449.228860-1-knayak@gitlab.com> +-------------------------------------------------- +[Cooking] + +* bb/rgb-12-bit-colors (2024-05-02) 3 commits + (merged to 'next' on 2024-05-02 at 7fe29c98d7) + + color: add support for 12-bit RGB colors + + t/t4026-color: add test coverage for invalid RGB colors + + t/t4026-color: remove an extra double quote character + + The color parsing code learned to handle 12-bit RGB colors, spelled + as "#RGB" (in addition to "#RRGGBB" that is already supported). + + Will merge to 'master'. + source: <20240502110331.6347-1-dev+git@drbeat.li> + + +* ds/scalar-reconfigure-all-fix (2024-04-30) 1 commit + - scalar: avoid segfault in reconfigure --all + + Scalar fix. + + Comments? + source: + + +* ps/pseudo-ref-terminology (2024-05-02) 10 commits + - refs: refuse to write pseudorefs + - ref-filter: properly distinuish pseudo and root refs + - refs: pseudorefs are no refs + - refs: root refs can be symbolic refs + - refs: classify HEAD as a root ref + - refs: refname `is_special_ref()` to `is_pseudo_ref()` + - refs: rename `is_pseudoref()` to `is_root_ref()` + - Documentation/glossary: define root refs as refs + - Documentation/glossary: clarify limitations of pseudorefs + - Documentation/glossary: redefine pseudorefs as special refs + + Terminology to call various ref-like things are getting + straightened out. + + Comments? + source: + + +* dk/zsh-git-repo-path-fix (2024-04-30) 1 commit + (merged to 'next' on 2024-05-02 at 0446d8e63a) + + completion: zsh: stop leaking local cache variable + + Command line completion support for zsh (in contrib/) has been + updated to stop exposing internal state to end-user shell + interaction. + + Will merge to 'master'. + source: + + +* rs/diff-parseopts-cleanup (2024-05-01) 1 commit + (merged to 'next' on 2024-05-02 at cd9779c175) + + diff-lib: stop calling diff_setup_done() in do_diff_cache() + + Code clean-up to remove code that is now a noop. + + Will merge to 'master'. + source: <0e96c5a3-7b4d-4c6b-875e-d80e3eb07a00@web.de> + + +* rh/complete-symbolic-ref (2024-04-25) 3 commits + (merged to 'next' on 2024-05-01 at 7020ecebe7) + + completion: add docs on how to add subcommand completions + + completion: improve docs for using __git_complete + + completion: add 'symbolic-ref' + + Command line completion script (in contrib/) learned to complete + "git symbolic-ref" a bit better (you need to enable plumbing + commands to be completed with GIT_COMPLETION_SHOW_ALL_COMMANDS). + + Will merge to 'master'. + source: <20240425101845.708554-3-rhi@pengutronix.de> + + +* jt/doc-submitting-rerolled-series (2024-04-25) 1 commit + (merged to 'next' on 2024-05-01 at 1c5865f11c) + + doc: clarify practices for submitting updated patch versions + + Developer doc update. + + Will merge to 'master'. + source: <20240425213404.133660-1-jltobler@gmail.com> + + +* bc/zsh-compatibility (2024-04-26) 2 commits + (merged to 'next' on 2024-05-02 at 10222b2472) + + vimdiff: make script and tests work with zsh + + t4046: avoid continue in &&-chain for zsh + + zsh can pretend to be a normal shell pretty well except for some + glitches that we tickle in some of our scripts. Work them around + so that "vimdiff" and our test suite works well enough with it. + + Will merge to 'master'. + source: <20240426221154.2194139-1-sandals@crustytoothpaste.net> + + +* jc/rev-parse-fatal-doc (2024-05-01) 1 commit + - rev-parse: document how --is-* options work outside a repository + + Doc update. + + Comments? + source: + + +* ps/undecided-is-not-necessarily-sha1 (2024-04-30) 13 commits + . repository: stop setting SHA1 as the default object hash + . oss-fuzz/commit-graph: set up hash algorithm + . builtin/shortlog: don't set up revisions without repo + . builtin/diff: explicitly set hash algo when there is no repo + . builtin/bundle: abort "verify" early when there is no repository + . builtin/blame: don't access potentially unitialized `the_hash_algo` + . builtin/rev-parse: allow shortening to more than 40 hex characters + . remote-curl: fix parsing of detached SHA256 heads + . attr: fix BUG() when parsing attrs outside of repo + . attr: don't recompute default attribute source + . parse-options-cb: only abbreviate hashes when hash algo is known + . path: move `validate_headref()` to its only user + . path: harden validation of HEAD with non-standard hashes + + Before discovering the repository details, We used to assume SHA-1 + as the "default" hash function, which has been corrected. Hopefully + this will smoke out codepaths that rely on such an unwarranted + assumptions. + + Seems to break t0003 with a NULL the_repository. + + Ejected out of 'seen' for now. + source: + + +* rj/add-p-typo-reaction (2024-04-30) 2 commits + (merged to 'next' on 2024-05-01 at 3016062ebf) + + add-patch: response to unknown command + + add-patch: do not show UI messages on stderr + + When the user responds to a prompt given by "git add -p" with an + unsupported command, list of available commands were given, which + was too much if the user knew what they wanted to type but merely + made a typo. Now the user gets a much shorter error message. + + Will merge to 'master'. + source: <952a9514-3cf1-4601-8f0d-db57adc750c3@gmail.com> + + +* ps/the-index-is-no-more (2024-04-18) 6 commits + (merged to 'next' on 2024-05-01 at 7b9a0ab760) + + repository: drop `initialize_the_repository()` + + repository: drop `the_index` variable + + builtin/clone: stop using `the_index` + + repository: initialize index in `repo_init()` + + builtin: stop using `the_index` + + t/helper: stop using `the_index` + + The singleton index_state instance "the_index" has been eliminated + by always instantiating "the_repository" and replacing references + to "the_index" with references to its .index member. + + Will merge to 'master'. + source: + * ps/ci-test-with-jgit (2024-04-12) 13 commits - - t0612: add tests to exercise Git/JGit reftable compatibility - - t0610: fix non-portable variable assignment - - t06xx: always execute backend-specific tests - - ci: install JGit dependency - - ci: make Perforce binaries executable for all users - - ci: merge scripts which install dependencies - - ci: fix setup of custom path for GitLab CI - - ci: merge custom PATH directories - - ci: convert "install-dependencies.sh" to use "/bin/sh" - - ci: drop duplicate package installation for "linux-gcc-default" - - ci: skip sudo when we are already root - - ci: expose distro name in dockerized GitHub jobs - - ci: rename "runs_on_pool" to "distro" + (merged to 'next' on 2024-05-01 at 35e293e618) + + t0612: add tests to exercise Git/JGit reftable compatibility + + t0610: fix non-portable variable assignment + + t06xx: always execute backend-specific tests + + ci: install JGit dependency + + ci: make Perforce binaries executable for all users + + ci: merge scripts which install dependencies + + ci: fix setup of custom path for GitLab CI + + ci: merge custom PATH directories + + ci: convert "install-dependencies.sh" to use "/bin/sh" + + ci: drop duplicate package installation for "linux-gcc-default" + + ci: skip sudo when we are already root + + ci: expose distro name in dockerized GitHub jobs + + ci: rename "runs_on_pool" to "distro" Tests to ensure interoperability between reftable written by jgit and our code have been added and enabled in CI. - Will merge to 'next'. + Will merge to 'master'. source: @@ -403,28 +461,29 @@ Release tarballs are available at: * bc/credential-scheme-enhancement (2024-04-16) 16 commits - - credential: add method for querying capabilities - - credential-cache: implement authtype capability - - t: add credential tests for authtype - - credential: add support for multistage credential rounds - - t5563: refactor for multi-stage authentication - - docs: set a limit on credential line length - - credential: enable state capability - - credential: add an argument to keep state - - http: add support for authtype and credential - - docs: indicate new credential protocol fields - - credential: add a field called "ephemeral" - - credential: gate new fields on capability - - credential: add a field for pre-encoded credentials - - http: use new headers for each object request - - remote-curl: reset headers on new request - - credential: add an authtype field + (merged to 'next' on 2024-05-01 at 789ec5bd35) + + credential: add method for querying capabilities + + credential-cache: implement authtype capability + + t: add credential tests for authtype + + credential: add support for multistage credential rounds + + t5563: refactor for multi-stage authentication + + docs: set a limit on credential line length + + credential: enable state capability + + credential: add an argument to keep state + + http: add support for authtype and credential + + docs: indicate new credential protocol fields + + credential: add a field called "ephemeral" + + credential: gate new fields on capability + + credential: add a field for pre-encoded credentials + + http: use new headers for each object request + + remote-curl: reset headers on new request + + credential: add an authtype field The credential helper protocol, together with the HTTP layer, have been enhanced to support authentication schemes different from username & password pair, like Bearer and NTLM. - Will merge to 'next'. + Will merge to 'master'. source: <20240417000240.3611948-1-sandals@crustytoothpaste.net> @@ -462,7 +521,7 @@ Release tarballs are available at: source: -* la/hide-trailer-info (2024-04-26) 11 commits +* la/hide-trailer-info (2024-05-02) 11 commits - trailer unit tests: inspect iterator contents - trailer: document parse_trailers() usage - trailer: retire trailer_info_get() from API @@ -477,9 +536,8 @@ Release tarballs are available at: The trailer API has been reshuffled a bit. - Expecting a hopefully final reroll. - cf. - source: + Will merge to 'next'? + source: * ds/doc-config-reflow (2024-03-14) 1 commit @@ -544,7 +602,7 @@ Release tarballs are available at: The "test-tool" has been taught to run testsuite tests in parallel, bypassing the need to use the "prove" tool. - Will merge to 'next'? + Will merge to 'next' together with js/cmake-with-test-tool? source: