To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Apr 2022, #05; Mon, 18)
+Subject: What's cooking in git.git (Apr 2022, #06; Mon, 25)
X-master-at: 6cd33dceed60949e2dbc32e3f0f5e67c4c882e1e
X-next-at: b9c8b46e9451eb1f82393119d53aa151b6f7ff83
-What's cooking in git.git (Apr 2022, #05; Mon, 18)
+What's cooking in git.git (Apr 2022, #06; Mon, 25)
--------------------------------------------------
Here are the topics that have been cooking in my tree. Commits
future release). Commits prefixed with '-' are only in 'seen',
and aren't considered "accepted" at all.
-Git 2.36 has been tagged. As usual, we'll keep the tree closed for
-a few days for anything other than brown-paper-bag bugfixes (if
-needed) and then by the end of the week hopefully we can start
-sifting what is in 'next' to those to graduate to 'master' and those
-to be kicked back to 'seen'. We'll start taking new topics probably
-next week at the earliest.
+There are a handful of regressions we managed to sneak into the 2.36
+release that we need to fix before we can move forward. For some
+reason, the release turned out to be unusually bad in the recent
+history X-<.
-cCopies of the source code to Git live in many repositories, and the
+Here are what I know about, with or without fixes that have been
+reviewed satisfactorily:
+
+ - "diff-tree --stdin <pathspec>" loses <pathspec> after showing one
+ comparison.
+ cf. <xmqqbkwpvyyc.fsf@gitster.g>
+
+ - "submodule update" without <pathspec> makes unnecessary noise
+ when skipping uninitialized submodules.
+ cf. <pull.1258.v2.git.git.1650890741430.gitgitgadget@gmail.com>
+
+ - hooks no longer is connected directly to the standard output.
+ cf. <CA+dzEBn108QoMA28f0nC8K21XT+Afua0V2Qv8XkR8rAeqUCCZw@mail.gmail.com>
+
+ - "sudo make install" does not work out-of-the-box.
+ cf. <4ef9287b-6260-9538-7c89-cffb611520ee@maurel.de>
+
+And there are some that are not recent regressions:
+
+ - "name-rev" frees some strings it still uses prematurely.
+ cf. <Ylw+M5wwUYKcLM+M@voi.aagh.net>
+
+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.
https://www.kernel.org/pub/software/scm/git/
--------------------------------------------------
-[Graduated to 'master']
+[New Topics]
-* cb/buggy-gcc-12-workaround (2022-04-15) 2 commits
- (merged to 'next' on 2022-04-15 at 48e68dd0fd)
- + config.mak.dev: alternative workaround to gcc 12 warning in http.c
- + config.mak.dev: workaround gcc 12 bug affecting "pedantic" CI job
+* ah/rebase-keep-base-fix (2022-04-21) 1 commit
+ - rebase: use correct base for --keep-base when a branch is given
- A couple of work around for CI breaking warnings from gcc 12.
- source: <20220415231342.35980-1-carenas@gmail.com>
+ "git rebase --keep-base <upstream> <branch-to-rebase>" computed the
+ commit to rebase onto incorrectly, which has been corrected.
---------------------------------------------------
-[New Topics]
+ Will merge to 'next'.
+ source: <20220421044233.894255-1-alexhenrie24@gmail.com>
+
+
+* cg/tools-for-git-doc (2022-04-21) 1 commit
+ - Documentation/ToolsForGit.txt: Tools for developing Git
+
+ A new doc that lists tips for tools to work with Git's codebase.
+
+ Thoughts?
+ source: <20220421084515.21236-2-cogoni.guillaume@gmail.com>
-* cm/reftable-0-length-memset (2022-04-15) 1 commit
- - reftable: avoid undefined behaviour breaking t0032
+
+* ea/rebase-code-simplify (2022-04-20) 1 commit
+ - rebase: simplify an assignment of options.type in cmd_rebase
Code clean-up.
- Will merge to 'next'?
- source: <20220415083058.29495-1-carenas@gmail.com>
+ Will merge to 'next'.
+ source: <20220418172721.215898-1-eantoranz@gmail.com>
+
+
+* kt/commit-graph-plug-fp-leak-on-error (2022-04-20) 1 commit
+ - commit-graph: close file before returning NULL
+
+ Fix a leak of FILE * in an error codepath.
+
+ Will merge to 'next'.
+ source: <pull.1213.git.1650302007395.gitgitgadget@gmail.com>
+
+
+* ab/valgrind-fixes (2022-04-21) 4 commits
+ - object-file: fix a unpack_loose_header() regression in 3b6a8db3b03
+ - commit-graph.c: don't assume that stat() succeeds
+ - log test: skip a failing mkstemp() test under valgrind
+ - tests: make RUNTIME_PREFIX compatible with --valgrind
+
+ A bit of test framework fixes with a few fixes to issues found by
+ valgrind.
+
+ Expecting a reroll.
+ source: <cover-0.4-00000000000-20220421T200733Z-avarab@gmail.com>
+
+
+* cb/ci-make-p4-optional (2022-04-23) 5 commits
+ - fixup! CI: use https, not http to download binaries from perforce.com
+ - CI: use https, not http to download binaries from perforce.com
+ - ci: reintroduce prevention from perforce being quarantined in macOS
+ - ci: avoid brew for installing perforce
+ - ci: make failure to find perforce more user friendly
+
+ macOS CI jobs have been occasionally flaky due to tentative version
+ skew between perforce and the homebrew packager. Instead of
+ failing the whole CI job, just let it skip the p4 tests when this
+ happens.
+
+ Expecting a reroll.
+ source: <20220423142559.32507-1-carenas@gmail.com>
+ source: <0220423142559.32507-5-carenas@gmail.com>
+
+
+* ds/midx-normalize-pathname-before-comparison (2022-04-25) 3 commits
+ - cache: use const char * for get_object_directory()
+ - multi-pack-index: use --object-dir real path
+ - midx: use real paths in lookup_multi_pack_index()
+
+ The path taken by "git multi-pack-index" command from the end user
+ was compared with path internally prepared by the tool withut first
+ normalizing, which lead to duplicated paths not being noticed,
+ which has been corrected.
+
+ Will merge to 'next'.
+ source: <pull.1221.v2.git.1650911234.gitgitgadget@gmail.com>
+
+
+* jc/show-branch-g-current (2022-04-21) 1 commit
+ - show-branch: -g and --current are incompatible
+
+ The "--current" option of "git show-branch" should have been made
+ incompatible with the "--reflog" mode, but this was not enforced,
+ which has been corrected.
+ source: <xmqqh76mf7s4.fsf_-_@gitster.g>
+
+
+* rs/external-diff-tempfile (2022-04-20) 2 commits
+ - diff: use mks_tempfile_dt()
+ - tempfile: add mks_tempfile_dt()
+
+ The temporary files fed to external diff command are now generated
+ inside a new temporary directory under the same basename.
+
+ Will merge to 'next'.
+ source: <2ad1dd80-e79f-7304-219c-db24bb269c4d@web.de>
+
+
+* ab/cc-package-fixes (2022-04-22) 1 commit
+ - CI: select CC based on CC_PACKAGE (again)
+
+ Correct choices of C compilers used in various CI jobs.
+
+ Will merge to 'next'.
+ source: <patch-v3-1.1-8b3444ecc87-20220422T092015Z-avarab@gmail.com>
+
+
+* ab/hooks-regression-fix (2022-04-21) 6 commits
+ - hook API: fix v2.36.0 regression: hooks should be connected to a TTY
+ - hook API: don't redundantly re-set "no_stdin" and "stdout_to_stderr"
+ - hook tests: fix redirection logic error in 96e7225b310
+ - run-command: add an "ungroup" option to run_process_parallel()
+ - run-command tests: test stdout of run_command_parallel()
+ - run-command API: replace run_processes_parallel_tr2() with opts struct
+
+ In Git 2.36 we revamped the way how hooks are invoked. One change
+ that is end-user visible is that the output of a hook is no longer
+ directly connected to the standard output of "git" that spawns the
+ hook, which was noticed post release. This is getting corrected.
+
+ Expecting a reroll.
+ source: <cover-0.6-00000000000-20220421T122108Z-avarab@gmail.com>
+
+
+* ar/send-email-confirm-by-default (2022-04-22) 1 commit
+ - send-email: always confirm by default
+
+ "git send-email" is changed so that by default it asks for
+ confirmation before sending each message out.
+
+ Thoughts?
+ source: <20220422083629.1404989-1-hi@alyssa.is>
+
+
+* mv/log-since-as-filter (2022-04-23) 1 commit
+ - log: "--since-as-filter" option is a non-terminating "--since" variant
+ "git log --since=X" will stop traversal upon seeing a commit that
+ is older than X, but there may be commits behind it that is younger
+ than X when the commit was created with a faulty clock. A new
+ option is added to keep digging without stopping, and instead
+ filter out commits with timestamp older than X.
+
+ Will merge to 'next'.
+ source: <YmP4TaYmSEi6GeB4@vmiklos.hu>
+
+
+* rs/name-rev-fix-free-after-use (2022-04-23) 1 commit
+ - Revert "name-rev: release unused name strings"
+
+ Regression fix for 2.36 where "git name-rev" started to sometimes
+ reference strings after they are freed.
+
+ Will merge to 'next' and then to 'master'.
+ source: <340c8810-d912-7b18-d46e-a9d43f20216a@web.de>
+
+
+* ds/do-not-call-bug-on-bad-refs (2022-04-25) 1 commit
+ - clone: die() instead of BUG() on bad refs
+
+ Code clean-up.
+
+ Will merge to 'next'.
+ source: <pull.1214.v2.git.1650894450441.gitgitgadget@gmail.com>
+
+
+* gc/submodule-update-part2 (2022-04-25) 2 commits
+ - SQUASH??? tests to protect the fix
+ - submodule--helper: fix initialization of warn_if_uninitialized
+
+ "git submodule update" without pathspec should silently skip an
+ uninitialized submodule, but it started to become noisy by mistake.
+
+ Will merge to 'next' and then to 'master'.
+ source: <pull.1258.v2.git.git.1650890741430.gitgitgadget@gmail.com>
+
+
+* jc/diff-free-must-free-only-per-iteration-resources (2022-04-25) 2 commits
+ - t4013: diff-tree --stdin with pathspec
+ - 2.36 gitk/diff-tree --stdin regression fix
+
+ "diff-tree --stdin <pathspec>" lost the pathspec for second and
+ later commits, which broke "gitk".
+
+ Will merge to 'next' and then to 'master'.
+ source: <xmqqbkwpvyyc.fsf@gitster.g>
+
+
+* vd/sparse-stash (2022-04-25) 7 commits
+ - unpack-trees: preserve index sparsity
+ - stash: merge applied stash with merge-ort
+ - merge-recursive: add merge function arg to 'merge_recursive_generic'
+ - read-cache: set sparsity when index is new
+ - sparse-index: expose 'is_sparse_index_allowed()'
+ - stash: integrate with sparse index
+ - stash: expand sparse-checkout compatibility testing
+
+ Teach "git stash" to work better with sparse index entries.
+ source: <pull.1171.git.1650908957.gitgitgadget@gmail.com>
--------------------------------------------------
[Stalled]
--------------------------------------------------
[Cooking]
+* cm/reftable-0-length-memset (2022-04-15) 1 commit
+ - reftable: avoid undefined behaviour breaking t0032
+
+ Code clean-up.
+
+ Will merge to 'next'.
+ source: <20220415083058.29495-1-carenas@gmail.com>
+
+
* sa/t1011-use-helpers (2022-04-12) 1 commit
- t1011: replace test -f with test_path_is_file
Plug the memory leaks from the trickiest API of all, the revision
walker.
- Will merge to 'next'.
+ On hold.
source: <cover-v6-00.27-00000000000-20220413T195935Z-avarab@gmail.com>
-* ab/ci-github-workflow-markup (2022-04-14) 7 commits
- - ci: call `finalize_test_case_output` a little later
- - ci: use `--github-workflow-markup` in the GitHub workflow
- - ci: optionally mark up output in the GitHub workflow
- - test(junit): avoid line feeds in XML attributes
- - tests: refactor --write-junit-xml code
- - ci: make it easier to find failed tests' logs in the GitHub workflow
- - Merge branch 'ab/ci-setup-simplify' into ab/ci-github-workflow-markup
+* ab/ci-github-workflow-markup (2022-04-21) 11 commits
+ . ci: call `finalize_test_case_output` a little later
+ . ci: use `--github-workflow-markup` in the GitHub workflow
+ . ci: optionally mark up output in the GitHub workflow
+ . test(junit): avoid line feeds in XML attributes
+ . tests: refactor --write-junit-xml code
+ . ci: make it easier to find failed tests' logs in the GitHub workflow
+ . CI: stop setting FAILED_TEST_ARTIFACTS N times
+ . CI: don't include "test-results/" in ci/print-test-failures.sh output
+ . CI: add --exit-code to ci/print-test-failures.sh
+ . CI: don't "cd" in ci/print-test-failures.sh
+ . Merge branch 'ab/ci-setup-simplify' into ab/ci-github-workflow-markup
(this branch uses ab/ci-setup-simplify.)
Build a moral equivalent of js/ci-github-workflow-markup on top of
ab/ci-setup-simplify.
-
- How well does this compare feature-wise with js/ci-github-workflow-markup?
- source: <RFC-cover-v4-0.6-00000000000-20220413T195514Z-avarab@gmail.com>
-
-
-* ab/ci-setup-simplify (2022-04-14) 29 commits
- - CI: make it easy to use ci/*.sh outside of CI
- - CI: don't use "set -x" in "ci/lib.sh" output
- - CI: set PYTHON_PATH setting for osx-{clang,gcc} into "$jobname" case
- - CI: set SANITIZE=leak in MAKEFLAGS directly
- - CI: set CC in MAKEFLAGS directly, don't add it to the environment
- - CI: add more variables to MAKEFLAGS, except under vs-build
- - CI: narrow down variable definitions in --build and --test
- - CI: only invoke ci/lib.sh as "steps" in main.yml
- - CI: pre-select test slice in Windows & VS tests
- - ci/run-test-slice.sh: replace shelling out with "echo"
- - CI: move "env" definitions into ci/lib.sh
- - CI: combine ci/install{,-docker}-dependencies.sh
- - CI: split up and reduce "ci/test-documentation.sh"
- - CI: invoke "make artifacts-tar" directly in windows-build
- - CI: check ignored unignored build artifacts in "win[+VS] build" too
- - ci/lib.sh: use "test" instead of "["
- - CI: remove "run-build-and-tests.sh", run "make [test]" directly
- - CI: export variables via a wrapper
- - CI: consistently use "export" in ci/lib.sh
- - CI: move p4 and git-lfs variables to ci/install-dependencies.sh
- - CI: have "static-analysis" run "check-builtins", not "documentation"
- - CI: have "static-analysis" run a "make ci-static-analysis" target
- - CI: don't have "git grep" invoke a pager in tree content check
- - CI/lib.sh: stop adding leading whitespace to $MAKEFLAGS
- - CI: remove unused Azure ci/* code
- - CI: remove dead "tree skipping" code
- - CI: remove more dead Travis CI support
- - CI: make "$jobname" explicit, remove fallback
- - CI: run "set -ex" early in ci/lib.sh
+ source: <RFC-cover-v5-00.10-00000000000-20220421T183001Z-avarab@gmail.com>
+
+
+* ab/ci-setup-simplify (2022-04-21) 29 commits
+ . CI: make it easy to use ci/*.sh outside of CI
+ . CI: don't use "set -x" in "ci/lib.sh" output
+ . CI: set PYTHON_PATH setting for osx-{clang,gcc} into "$jobname" case
+ . CI: set SANITIZE=leak in MAKEFLAGS directly
+ . CI: set CC in MAKEFLAGS directly, don't add it to the environment
+ . CI: add more variables to MAKEFLAGS, except under vs-build
+ . CI: narrow down variable definitions in --build and --test
+ . CI: only invoke ci/lib.sh as "steps" in main.yml
+ . CI: pre-select test slice in Windows & VS tests
+ . ci/run-test-slice.sh: replace shelling out with "echo"
+ . CI: move "env" definitions into ci/lib.sh
+ . CI: combine ci/install{,-docker}-dependencies.sh
+ . CI: split up and reduce "ci/test-documentation.sh"
+ . CI: invoke "make artifacts-tar" directly in windows-build
+ . CI: check ignored unignored build artifacts in "win[+VS] build" too
+ . CI: make ci/{lib,install-dependencies}.sh POSIX-compatible
+ . CI: remove "run-build-and-tests.sh", run "make [test]" directly
+ . CI: export variables via a wrapper
+ . CI: consistently use "export" in ci/lib.sh
+ . CI: move p4 and git-lfs variables to ci/install-dependencies.sh
+ . CI: have "static-analysis" run "check-builtins", not "documentation"
+ . CI: have "static-analysis" run a "make ci-static-analysis" target
+ . CI: don't have "git grep" invoke a pager in tree content check
+ . CI/lib.sh: stop adding leading whitespace to $MAKEFLAGS
+ . CI: remove unused Azure ci/* code
+ . CI: remove dead "tree skipping" code
+ . CI: remove more dead Travis CI support
+ . CI: make "$jobname" explicit, remove fallback
+ . CI: run "set -ex" early in ci/lib.sh
(this branch is used by ab/ci-github-workflow-markup.)
Drive more actions done in CI via the Makefile instead of shell
commands sprinkled in .github/workflows/main.yml
-
- Will merge to 'next'?
- source: <cover-v3-00.29-00000000000-20220413T194847Z-avarab@gmail.com>
+ source: <cover-v5-00.29-00000000000-20220421T181526Z-avarab@gmail.com>
* kf/p4-multiple-remotes (2022-03-21) 1 commit
source: <pull.1134.v5.git.1648616734.gitgitgadget@gmail.com>
-* en/sparse-cone-becomes-default (2022-03-13) 9 commits
+* en/sparse-cone-becomes-default (2022-04-21) 9 commits
- Documentation: some sparsity wording clarifications
- git-sparse-checkout.txt: mark non-cone mode as deprecated
- - git-sparse-checkout.txt: flesh out non-cone mode pattern discussion a bit
+ - git-sparse-checkout.txt: flesh out pattern set sections a bit
- git-sparse-checkout.txt: add a new EXAMPLES section
- git-sparse-checkout.txt: shuffle some sections and mark as internal
- git-sparse-checkout.txt: update docs for deprecation of 'init'
Deprecate non-cone mode of the sparse-checkout feature.
Will merge to 'next'?
- source: <pull.1148.v2.git.1647054681.gitgitgadget@gmail.com>
+ source: <pull.1148.v3.git.1650594746.gitgitgadget@gmail.com>
* tb/cruft-packs (2022-03-02) 17 commits
* js/ci-github-workflow-markup (2022-03-01) 9 commits
- . ci: call `finalize_test_case_output` a little later
- . ci: use `--github-workflow-markup` in the GitHub workflow
- . ci: optionally mark up output in the GitHub workflow
- . test(junit): avoid line feeds in XML attributes
- . tests: refactor --write-junit-xml code
- . ci/run-build-and-tests: add some structure to the GitHub workflow output
- . ci: make it easier to find failed tests' logs in the GitHub workflow
- . ci/run-build-and-tests: take a more high-level view
- . ci: fix code style
+ - ci: call `finalize_test_case_output` a little later
+ - ci: use `--github-workflow-markup` in the GitHub workflow
+ - ci: optionally mark up output in the GitHub workflow
+ - test(junit): avoid line feeds in XML attributes
+ - tests: refactor --write-junit-xml code
+ - ci/run-build-and-tests: add some structure to the GitHub workflow output
+ - ci: make it easier to find failed tests' logs in the GitHub workflow
+ - ci/run-build-and-tests: take a more high-level view
+ - ci: fix code style
Update the GitHub workflow support to make it quicker to get to the
failing test.
- Waiting for discussion to settle.
- cf. <220309.86tuc6lwpj.gmgdl@evledraar.gmail.com>
- cf. <220302.86mti87cj2.gmgdl@evledraar.gmail.com>
- cf. <30dbc8fb-a1db-05bc-3dcb-070e11cf4715@gmail.com>
+ Expecting a reroll.
+ cf. <52382f7c-5b6a-63b6-2eb2-26c12f31f529@gmail.com>
source: <pull.1117.v2.git.1646130289.gitgitgadget@gmail.com>
source: <20220217225408.GB7@edef91d97c94>
-* tk/simple-autosetupmerge (2022-02-25) 2 commits
- - t3200: tests for new branch.autosetupmerge option "simple"
+* tk/simple-autosetupmerge (2022-04-22) 1 commit
- merge: new autosetupmerge option 'simple' for matching branches
"git -c branch.autosetupmerge=simple branch $A $B" will set the $B
as $A's upstream only when $A and $B shares the same name, and "git
-c push.default=simple" on branch $A would push to update the
branch $A at the remote $B came from.
-
- Needs review.
- source: <pull.1161.v2.git.1645815142.gitgitgadget@gmail.com>
+ source: <pull.1161.v4.git.1647843442911.gitgitgadget@gmail.com>
* tk/untracked-cache-with-uall (2022-04-01) 2 commits
source: <pull.985.v6.git.1648742535.gitgitgadget@gmail.com>
-* jh/builtin-fsmonitor-part3 (2022-03-25) 28 commits
+* jh/builtin-fsmonitor-part3 (2022-04-22) 29 commits
+ - fsmonitor--daemon: allow --super-prefix argument
- t7527: test Unicode NFC/NFD handling on MacOS
- t/lib-unicode-nfc-nfd: helper prereqs for testing unicode nfc/nfd
- fsmonitor: on macOS also emit NFC spelling for NFD pathname
- Merge branch 'jh/builtin-fsmonitor-part2' into jh/builtin-fsmonitor-part3
More fsmonitor--daemon.
- source: <pull.1143.v4.git.1648140680.gitgitgadget@gmail.com>
+ source: <pull.1143.v6.git.1650662994.gitgitgadget@gmail.com>
* js/bisect-in-c (2022-02-23) 14 commits