From e09a8b5320fdf7f57c11d82be40635b64f318e20 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 5 Jan 2022 14:55:07 -0800 Subject: [PATCH] What's cooking (2022/01 #02) --- whats-cooking.txt | 705 ++++++++++++++++++++++------------------------ 1 file changed, 339 insertions(+), 366 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 506e7f16cc..466c172710 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,12 +1,22 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Jan 2022, #01; Mon, 3) -X-master-at: dcc0cd074f0c639a0df20461a301af6d45bd582e -X-next-at: 194610f4cf2df839ebfd040c5da187c8c0162620 +Subject: What's cooking in git.git (Jan 2022, #02; Wed, 5) +X-master-at: e83ba647f7c61cf945690d6a0bd8c172a6498dc8 +X-next-at: 24525b3c66f3a5878e67d92b3e0fd082dc1d905e -What's cooking in git.git (Jan 2022, #01; Mon, 3) +What's cooking in git.git (Jan 2022, #02; Wed, 5) -------------------------------------------------- +It's a bit early to publish another issue of this report, but a +bunch of topics have graduated to 'master' and a handful of topics +have joined 'next', so here is the second installment of the month. + +About 25 topics are cooking in 'next', all of which hopefully can be +in the upcoming release. Those not yet in may need bumping, but it +was expected to be a slow cycle due to end-of-year holidays, so it +is also OK to give them enough time to get polished into good enough +shape, rather than merging them prematurely. + Here are the topics that have been cooking in my tree. Commits prefixed with '+' are in 'next' (being in 'next' is a sign that a topic is stable enough to be used and are candidate to be in a @@ -18,11 +28,6 @@ useful"). Do not read too much into a topic being in (or not in) 'seen'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -Hopefully this will be the last issue of "What's cooking" report of -this year. Please expect my tree will be slow moving this week and -whereever you are on the globe, relax and enjoy the remainder of -this year. - 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 repositories have only a subset of branches. @@ -54,103 +59,252 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* en/sparse-checkout-set (2021-12-23) 11 commits - (merged to 'next' on 2021-12-25 at 510f9eba9a) - + sparse-checkout: remove stray trailing space - (merged to 'next' on 2021-12-21 at 36a98aed11) - + clone: avoid using deprecated `sparse-checkout init` - + Documentation: clarify/correct a few sparsity related statements - + git-sparse-checkout.txt: update to document init/set/reapply changes - + sparse-checkout: enable reapply to take --[no-]{cone,sparse-index} - + sparse-checkout: enable `set` to initialize sparse-checkout mode - + sparse-checkout: split out code for tweaking settings config - + sparse-checkout: disallow --no-stdin as an argument to set - + sparse-checkout: add sanity-checks on initial sparsity state - + sparse-checkout: break apart functions for sparse_checkout_(set|add) - + sparse-checkout: pass use_stdin as a parameter instead of as a global - - The "init" and "set" subcommands in "git sparse-checkout" have been - unified for a better user experience and performance. - source: - - -* es/test-chain-lint (2021-12-13) 19 commits - (merged to 'next' on 2021-12-21 at d6f56f3248) - + t6000-t9999: detect and signal failure within loop - + t5000-t5999: detect and signal failure within loop - + t4000-t4999: detect and signal failure within loop - + t0000-t3999: detect and signal failure within loop - + tests: simplify by dropping unnecessary `for` loops - + tests: apply modern idiom for exiting loop upon failure - + tests: apply modern idiom for signaling test failure - + tests: fix broken &&-chains in `{...}` groups - + tests: fix broken &&-chains in `$(...)` command substitutions - + tests: fix broken &&-chains in compound statements - + tests: use test_write_lines() to generate line-oriented output - + tests: simplify construction of large blocks of text - + t9107: use shell parameter expansion to avoid breaking &&-chain - + t6300: make `%(raw:size) --shell` test more robust - + t5516: drop unnecessary subshell and command invocation - + t4202: clarify intent by creating expected content less cleverly - + t1020: avoid aborting entire test script when one test fails - + t1010: fix unnoticed failure on Windows - + t/lib-pager: use sane_unset() to avoid breaking &&-chain - - Broken &&-chains in the test scripts have been corrected. - source: <20211209051115.52629-1-sunshine@sunshineco.com> - - -* jc/unleak-log (2021-12-16) 1 commit - (merged to 'next' on 2021-12-21 at c39506ec86) - + format-patch: mark rev_info with UNLEAK - - "git format-patch" uses a single rev_info instance and then exits. - Mark the structure with UNLEAK() macro to squelch leak sanitizer. - source: - - -* ns/tmp-objdir (2021-12-08) 2 commits - (merged to 'next' on 2021-12-21 at d316ff36fc) - + tmp-objdir: disable ref updates when replacing the primary odb - + tmp-objdir: new API for creating temporary writable databases - (this branch is used by en/remerge-diff.) - - New interface into the tmp-objdir API to help in-core use of the - quarantine feature. - source: +* ds/repack-fixlets (2021-12-20) 2 commits + (merged to 'next' on 2021-12-27 at 8f8474ae84) + + repack: make '--quiet' disable progress + + repack: respect kept objects with '--write-midx -b' + + Two fixes around "git repack". + source: + + +* en/keep-cwd (2021-12-09) 11 commits + (merged to 'next' on 2021-12-27 at 7cd8f7fdc0) + + t2501: simplify the tests since we can now assume desired behavior + + dir: new flag to remove_dir_recurse() to spare the original_cwd + + dir: avoid incidentally removing the original_cwd in remove_path() + + stash: do not attempt to remove startup_info->original_cwd + + rebase: do not attempt to remove startup_info->original_cwd + + clean: do not attempt to remove startup_info->original_cwd + + symlinks: do not include startup_info->original_cwd in dir removal + + unpack-trees: add special cwd handling + + unpack-trees: refuse to remove startup_info->original_cwd + + setup: introduce startup_info->original_cwd + + t2501: add various tests for removing the current working directory + + Many git commands that deal with working tree files try to remove a + directory that becomes empty (i.e. "git switch" from a branch that + has the directory to another branch that does not would attempt + remove all files in the directory and the directory itself). This + drops users into an unfamiliar situation if the command was run in + a subdirectory that becomes subject to removal due to the command. + The commands have been taught to keep an empty directory if it is + the directory they were started in to avoid surprising users. + source: + + +* gh/gpg-doc-markup-fix (2021-12-17) 1 commit + (merged to 'next' on 2021-12-27 at 7988d71a27) + + docs: add missing colon to Documentation/config/gpg.txt + + Doc markup fix. + source: <20211217161718.15767-1-greg@hurrell.net> + + +* jc/flex-array-definition (2021-12-08) 1 commit + (merged to 'next' on 2021-12-27 at 9db6a814b7) + + flex-array: simplify compiler-specific workaround + + The conditions to choose different definitions of the FLEX_ARRAY + macro for vendor compilers has been simplified to make it easier to + maintain. + source: + + +* jc/merge-detached-head-name (2021-12-20) 1 commit + (merged to 'next' on 2021-12-27 at 01f9fe17b9) + + merge: allow to pretend a merge is made into a different branch + + The default merge message prepared by "git merge" records the name + of the current branch; the name can be overridden with a new option + to allow users to pretend a merge is made on a different branch. + source: + + +* jc/t4204-do-not-write-git-on-upstream-of-pipe (2021-12-16) 1 commit + (merged to 'next' on 2021-12-27 at dc2c5db807) + + t4204 is not sanitizer clean at all + + Test fixes. + source: + + +* jh/p4-rcs-expansion-in-bytestring (2021-12-16) 5 commits + (merged to 'next' on 2021-12-27 at 650cb248ea) + + git-p4: resolve RCS keywords in bytes not utf-8 + + git-p4: open temporary patch file for write only + + git-p4: add raw option to read_pipelines + + git-p4: pre-compile RCS keyword regexes + + git-p4: use with statements to close files after use in patchRCSKeywords + + The RCS keyword substitution in "git p4" used to be done assuming + that the contents are UTF-8 text, which can trigger decoding + errors. We now treat the contents as a bytestring for robustness + and correctness. + source: <20211216134619.2048348-1-jholdsworth@nvidia.com> + + +* jk/ssh-signing-doc-markup-fix (2021-12-15) 1 commit + (merged to 'next' on 2021-12-27 at 2188dc2023) + + doc/config: mark ssh allowedSigners example as literal + + Docfix. + source: + + +* jv/use-larger-buffer-in-upload-pack (2021-12-15) 1 commit + (merged to 'next' on 2021-12-27 at 3a1afc1ef8) + + upload-pack.c: increase output buffer size + + "git upload-pack" (the other side of "git fetch") used a 8kB buffer + but most of its payload came on 64kB "packets". The buffer size + has been enlarged so that such a packet fits. + source: <20211214194626.33814-1-jacob@gitlab.com> + + +* km/help-prompt-fix (2021-12-16) 1 commit + (merged to 'next' on 2021-12-27 at a16d8fa62a) + + help: make auto-correction prompt more consistent + + Among some code paths that ask an yes/no question, only one place + gave a prompt that looked different from the others, which has been + updated to match what the others create. + source: + + +* pw/diff-color-moved-fix (2021-12-09) 15 commits + (merged to 'next' on 2021-12-27 at 443dd9f97f) + + diff --color-moved: intern strings + + diff: use designated initializers for emitted_diff_symbol + + diff --color-moved-ws=allow-indentation-change: improve hash lookups + + diff --color-moved: stop clearing potential moved blocks + + diff --color-moved: shrink potential moved blocks as we go + + diff --color-moved: unify moved block growth functions + + diff --color-moved: call comparison function directly + + diff --color-moved-ws=allow-indentation-change: simplify and optimize + + diff: simplify allow-indentation-change delta calculation + + diff --color-moved: avoid false short line matches and bad zebra coloring + + diff --color-moved=zebra: fix alternate coloring + + diff --color-moved: rewind when discarding pmb + + diff --color-moved: factor out function + + diff --color-moved: clear all flags on blocks that are too short + + diff --color-moved: add perf tests + + Correctness and performance update to "diff --color-moved" feature. + source: + + +* rs/daemon-plug-leak (2021-12-20) 1 commit + (merged to 'next' on 2021-12-27 at 55b058a8bb) + + daemon: plug memory leak on overlong path + + Plug a memory leak. + source: <5b151dc3-d4c7-29d3-71ed-a79033693d5d@web.de> + + +* rs/log-invert-grep-with-headers (2021-12-17) 1 commit + (merged to 'next' on 2021-12-27 at 861648fe8c) + + log: let --invert-grep only invert --grep + + "git log --invert-grep --author=" used to exclude commits + written by the given author, but now "--invert-grep" only affects + the matches made by the "--grep=" option. + source: + + +* rs/pcre2-utf (2021-12-20) 2 commits + (merged to 'next' on 2021-12-27 at 5dc740c331) + + grep/pcre2: factor out literal variable + + grep/pcre2: use PCRE2_UTF even with ASCII patterns + + "git grep --perl-regexp" failed to match UTF-8 characters with + wildcard when the pattern consists only of ASCII letters, which has + been corrected. + source: <5fa6962e-3c1c-6dbc-f6d7-589151a9baec@web.de> + + +* rs/t4202-invert-grep-test-fix (2021-12-17) 1 commit + (merged to 'next' on 2021-12-27 at b09cee1626) + + t4202: fix patternType setting in --invert-grep test + + Test fix. + source: <79dcebc0-e569-cc8a-4702-c572b062ed6d@web.de> + + +* xw/am-empty (2021-12-15) 3 commits + (merged to 'next' on 2021-12-27 at 562e1552f6) + + am: support --allow-empty to record specific empty patches + + am: support --empty=