To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Nov 2021, #04; Sun, 14)
+Subject: What's cooking in git.git (Nov 2021, #05; Fri, 19)
X-master-at: cd3e606211bb1cf8bc57f7d76bab98cc17a150bc
-X-next-at: ca35af825273b98fc8dc11527488952f5db8eb80
+X-next-at: b44f4d0eb0c6319e109b5f54df97d96d0d6b46fd
-What's cooking in git.git (Nov 2021, #04; Sun, 14)
+What's cooking in git.git (Nov 2021, #05; Fri, 19)
--------------------------------------------------
Here are the topics that have been cooking in my tree. Commits
'seen'. The ones marked with '.' do not appear in any of the
integration branches, but I am still holding onto them.
-Git 2.34 (final) has been tagged with a few more regression fixes.
+The tip of the 'master' branch is still at v2.34.0.
-As we have been fairly aggressive to deliberately merge down many
-topics that are under-reviewed, mostly due to reviewer fatigue and
-limited reviewer bandwidth, it was expected that we'd see unexpected
-breakages after things are in 'master', and it was quite nice to see
-people found and squashed these problems fairly quickly.
-
-Thank you all for finding, reporting and fixing them so quickly.
-Before starting to queue new topics for the next cycle or merging
-down topics in-flight, we'd wait about a week to see if people
-encounter any more issues, and after that we'd restart the usual
-cycle.
+A few topics for regression fixes have been merged to 'next' and
+will be merged to 'master' shortly. There are many topics listed as
+"New" that are in 'seen', but I haven't read many of them (and I
+shouldn't have anyway, before dealing with regression fixes) and
+haven't gave any summary comments in this report, either, yet.
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
https://www.kernel.org/pub/software/scm/git/
--------------------------------------------------
-[Graduated to 'master']
+[New Topics]
-* ab/fsck-unexpected-type (2021-11-11) 2 commits
- (merged to 'next' on 2021-11-11 at f8c9666880)
- + object-file: free(*contents) only in read_loose_object() caller
- + object-file: fix SEGV on free() regression in v2.34.0-rc2
+* ab/checkout-branch-info-leakfix (2021-11-18) 1 commit
+ - checkout: fix "branch info" memory leaks
- Regression fix.
+ Leakfix.
+ Will merge to 'next'.
-* ds/no-usable-cron-on-macos (2021-11-10) 1 commit
- (merged to 'next' on 2021-11-10 at 18eb9c13bc)
- + maintenance: disable cron on macOS
- "git maintenance run" learned to use system supplied scheduler
- backend, but cron on macOS turns out to be unusable for this
- purpose.
+* ab/make-dependency (2021-11-18) 24 commits
+ - Makefile: move ".SUFFIXES" rule to shared.mak
+ - Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)
+ - Makefile: disable GNU make built-in wildcard rules
+ - Makefile: use $(file) I/O instead of "FORCE" when possible
+ - Makefile: correct the dependency graph of hook-list.h
+ - Makefiles: add and use wildcard "mkdir -p" template
+ - Makefile: use $(wspfx) for $(QUIET...) in shared.mak
+ - Makefile: add "$(QUIET)" boilerplate to shared.mak
+ - Makefile: add a "TRACK_template" for GIT-*{FLAGS,DEFINES,...}
+ - Makefile: re-add and use the "shellquote" macros
+ - Makefile: move $(comma), $(empty) and $(space) to shared.mak
+ - Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it
+ - Makefile: stop needing @@GIT_VERSION@@ in *.perl scripts
+ - Makefile: create a GIT-PYTHON-DEFINES, like "PERL"
+ - Makefile: correct "GIT-PERL-{DEFINES,HEADER}" dependency graph
+ - Makefile: adjust Perl-related comments & whitespace
+ - Makefile: change "ifndef NO_PERL" to "ifdef NO_PERL"
+ - Makefile: guard Perl-only variable assignments
+ - Makefile: remove "mv $@ $@+" dance redundant to .DELETE_ON_ERROR
+ - Makefile: clean perl/build/ even with NO_PERL=Y
+ - Makefile: use "=" not ":=" for po/* and perl/*
+ - Makefile: don't set up "perl/build" rules under NO_PERL=Y
+ - Makefile: don't invoke msgfmt with --statistics
+ - Merge branch 'ab/sh-retire-helper-functions' into ab/make-dependency
+ (this branch uses ab/sh-retire-helper-functions.)
+
+
+* ah/advice-pull-has-no-preference-between-rebase-and-merge (2021-11-19) 1 commit
+ - pull: don't say that merge is "the default strategy"
+
+ The advice message given by "git pull" when the user hasn't made a
+ choice between merge and rebase still said that the merge is the
+ default, which no longer is the case. This has been corrected.
+ Will merge to 'next'.
-* jc/fix-pull-ff-only-when-already-up-to-date (2021-10-29) 1 commit
- (merged to 'next' on 2021-10-29 at ad4753e668)
- + pull: --ff-only should make it a noop when already-up-to-date
- "git pull --ff-only" and "git pull --rebase --ff-only" should make
- it a no-op to attempt pulling from a remote that is behind us, but
- instead the command errored out by saying it was impossible to
- fast-forward, which may technically be true, but not a useful thing
- to diagnose as an error. This has been corrected.
+* ds/fetch-pull-with-sparse-index (2021-11-18) 3 commits
+ - ls-files: add --sparse option
+ - fetch/pull: use the sparse index
+ - Merge branch 'ld/sparse-diff-blame' into ds/fetch-pull-with-sparse-index
+ (this branch uses ld/sparse-diff-blame and vd/sparse-reset.)
-* jk/ssh-signing-fix (2021-11-10) 1 commit
- (merged to 'next' on 2021-11-10 at b6195caa04)
- + t/lib-gpg: avoid broken versions of ssh-keygen
+* ev/pull-already-up-to-date-is-noop (2021-11-18) 1 commit
+ (merged to 'next' on 2021-11-19 at 2d8f0cd000)
+ + pull: should be noop when already-up-to-date
- Reject OpenSSH 8.7 whose "ssh-keygen -Y find-principals" is
- unusable from running the ssh signature tests.
+ "git pull" with any strategy when the other side is behind us
+ should succeed as it is a no-op, but doesn't.
+ Will merge to 'master'.
-* js/simple-ipc-cygwin-socket-fix (2021-11-10) 1 commit
- (merged to 'next' on 2021-11-10 at 00788f076f)
- + simple-ipc: work around issues with Cygwin's Unix socket emulation
- The way Cygwin emulates a unix-domain socket, on top of which the
- simple-ipc mechanism is implemented, can race with the program on
- the other side that wants to use the socket, and briefly make it
- appear as a regular file before lstat(2) starts reporting it as a
- socket. We now have a workaround on the side that connects to a
- unix domain socket.
+* fs/ssh-signing-other-keytypes (2021-11-19) 2 commits
+ - ssh signing: make sign/amend test more resilient
+ - ssh signing: support non ssh-* keytypes
-* js/trace2-raise-format-version (2021-11-11) 1 commit
- (merged to 'next' on 2021-11-11 at e7144ad963)
- + trace2: increment event format version
+* fs/test-prereq (2021-11-18) 2 commits
+ - test-lib: introduce required prereq for test runs
+ - test-lib: show missing prereq summary
- When we added a new event type to trace2 event stream, we forgot to
- raise the format version number, which has been corrected.
+* jk/t5319-midx-corruption-test-deflake (2021-11-18) 1 commit
+ - t5319: corrupt more bytes of the midx checksum
-* ps/connectivity-optim (2021-11-11) 1 commit
- (merged to 'next' on 2021-11-11 at 8b3dccbd68)
- + Revert "connected: do not sort input revisions"
+ Test fix.
- Regression fix.
---------------------------------------------------
-[New Topics]
+* js/trace2-avoid-recursive-errors (2021-11-18) 1 commit
+ - trace2: disable tr2_dst before warning on write errors
-* rj/receive-pack-avoid-sigpipe-during-status-reporting (2021-11-10) 1 commit
- - receive-pack: ignore SIGPIPE while reporting status to client
+ trace2 error code path fix.
- When the "git push" command is killed while the receiving end is
- trying to report what happened to the ref update proposals, the
- latter used to die, due to SIGPIPE. The code now ignores SIGPIPE
- to increase our chances to run the post-receive hook after it
- happens.
+* pw/xdiff-classify-record-in-histogram (2021-11-18) 3 commits
+ - xdiff: simplify comparison
+ - xdiff: avoid unnecessary memory allocations
+ - diff histogram: intern strings
-* ab/parse-options-cleanup (2021-11-10) 1 commit
- - parse-options.c: use "enum parse_opt_result" for parse_nodash_opt()
+ "diff --histogram" optimization.
- Change the type of an internal function to return an enum (instead
- of int) and replace -2 that was used to signal an error with -1.
+* rs/mergesort (2021-11-18) 1 commit
+ - mergesort: avoid left shift overflow
-* cw/protocol-v2-doc-fix (2021-11-11) 1 commit
- - protocol-v2.txt: align delim-pkt spec with usage
+ Bitop fix for 32-bit boxes.
- Doc update.
- Will merge to 'next'.
+* xw/am-empty (2021-11-19) 3 commits
+ - SQUASH???
+ - am: support --empty=<option> to handle empty patches
+ - doc: git-format-patch: describe the option --always
-* jt/pack-header-lshift-overflow (2021-11-11) 1 commit
- - packfile: avoid overflowing shift during decode
+* hk/ci-checkwhitespace-commentfix (2021-11-19) 1 commit
+ - ci(check-whitespace): update stale file top comments
- The code to decode the length of packed object size has been
- corrected.
+ Comment fix.
- Will merge to 'next'.
+* hm/paint-hits-in-log-grep (2021-11-19) 1 commit
+ (merged to 'next' on 2021-11-19 at e146d25c7c)
+ + Revert "grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data"
-* ab/update-submitting-patches (2021-11-13) 1 commit
- - SubmittingPatches: fix Asciidoc syntax in "GitHub CI" section
+ "git grep" looking in a blob that has non-UTF8 payload was
+ completely broken when linked with certain versions of PCREv2
+ library in the latest release.
- Doc fix.
+ Will merge to 'master'.
- Will merge to 'next'.
+* jk/fetch-pack-avoid-sigpipe-to-index-pack (2021-11-19) 1 commit
+ - fetch-pack: ignore SIGPIPE when writing to index-pack
-* bc/require-c99 (2021-11-14) 1 commit
- - git-compat-util: add a test balloon for C99 support
-
- Weather balloon to break people with compilers that do not support
- C99.
-
-
-* jc/c99-var-decl-in-for-loop (2021-11-14) 1 commit
- - revision: use C99 declaration of variable in for() loop
-
- Weather balloon to break comiplers that do not grok variable
- declaration in the for() loop.
+ "git fetch", when received a bad packfile, can fail with SIGPIPE.
+ This wasn't wrong per-se, but we now detect the situation and fail
+ in a more predictable way.
+ Will merge to 'next'.
-* tl/midx-docfix (2021-11-14) 1 commit
- - midx: fix a formatting issue in "multi-pack-index.txt"
+* jk/refs-g11-workaround (2021-11-19) 1 commit
+ - refs: work around gcc-11 warning with REF_HAVE_NEW
- Doc mark-up fix.
+ Workaround for a false-alarm by gcc-11
Will merge to 'next'.
which is among the topics this topic stomps on.
-* mp/absorb-submodule-git-dir-upon-deinit (2021-10-07) 1 commit
+* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit
+ - fetch: fix segfault on --set-upstream while on a detached HEAD
+
+ "git fetch --set-upstream" while on detached HEAD segfaulted
+ instead of noticing that such an operation did not make sense.
+
+ Getting tired of waiting for a reroll; will discard.
+
+--------------------------------------------------
+[Cooking]
+
+* mp/absorb-submodule-git-dir-upon-deinit (2021-11-19) 1 commit
- submodule: absorb git dir instead of dying on deinit
"git submodule deinit" for a submodule whose .git metadata
command is taught to convert such submodules to the absorbed form
as needed.
- Getting tired of waiting for a reroll; will discard.
- cf. <xmqqwnmopqqk.fsf@gitster.g>
+ Will merge to 'next'?
-* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit
- - fetch: fix segfault on --set-upstream while on a detached HEAD
+* rj/receive-pack-avoid-sigpipe-during-status-reporting (2021-11-10) 1 commit
+ - receive-pack: ignore SIGPIPE while reporting status to client
- "git fetch --set-upstream" while on detached HEAD segfaulted
- instead of noticing that such an operation did not make sense.
+ When the "git push" command is killed while the receiving end is
+ trying to report what happened to the ref update proposals, the
+ latter used to die, due to SIGPIPE. The code now ignores SIGPIPE
+ to increase our chances to run the post-receive hook after it
+ happens.
- Getting tired of waiting for a reroll; will discard.
---------------------------------------------------
-[Cooking]
+* ab/parse-options-cleanup (2021-11-10) 1 commit
+ - parse-options.c: use "enum parse_opt_result" for parse_nodash_opt()
+
+ Change the type of an internal function to return an enum (instead
+ of int) and replace -2 that was used to signal an error with -1.
+
+
+* cw/protocol-v2-doc-fix (2021-11-11) 1 commit
+ - protocol-v2.txt: align delim-pkt spec with usage
+
+ Doc update.
+
+ Will merge to 'next'.
+
+
+* jt/pack-header-lshift-overflow (2021-11-11) 1 commit
+ - packfile: avoid overflowing shift during decode
+
+ The code to decode the length of packed object size has been
+ corrected.
+
+ Will merge to 'next'.
+
+
+* ab/update-submitting-patches (2021-11-13) 1 commit
+ (merged to 'next' on 2021-11-19 at b44f4d0eb0)
+ + SubmittingPatches: fix Asciidoc syntax in "GitHub CI" section
+
+ Doc fix.
+
+ Will merge to 'master'.
+
+
+* bc/require-c99 (2021-11-18) 1 commit
+ - git-compat-util: add a test balloon for C99 support
+
+ Weather balloon to break people with compilers that do not support
+ C99.
+
+
+* jc/c99-var-decl-in-for-loop (2021-11-16) 1 commit
+ - revision: use C99 declaration of variable in for() loop
+
+ Weather balloon to break comiplers that do not grok variable
+ declaration in the for() loop.
-* ak/fetch-not-overwrite-any-current-branch (2021-11-09) 4 commits
+
+* tl/midx-docfix (2021-11-18) 1 commit
+ - midx: fix a formatting issue in "multi-pack-index.txt"
+
+ Doc mark-up fix.
+
+ Will merge to 'next'.
+
+
+* ak/protect-any-current-branch (2021-11-15) 8 commits
- branch: protect branches checked out in all worktrees
- receive-pack: protect current branch for bare repository worktree
- receive-pack: clean dead code from update_worktree()
- fetch: protect branches checked out in all worktrees
+ - worktree: simplify find_shared_symref() memory ownership model
+ - branch: lowercase error messages
+ - receive-pack: lowercase error messages
+ - fetch: lowercase error messages
"git fetch" without the "--update-head-ok" option ought to protect
a checked out branch from getting updated, to prevent the working
before the use of "git worktree" got widespread, and only checked
the branch that was checked out in the current worktree, which has
been updated.
+ (originally called ak/fetch-not-overwrite-any-current-branch)
+
+ Will merge to 'next'?
* jk/test-bitmap-fix (2021-11-05) 1 commit
+ Makefile: remove $(NO_CURL) from $(SCRIPT_DEFINES)
+ Makefile: remove $(GIT_VERSION) from $(SCRIPT_DEFINES)
+ Makefile: move git-SCRIPT-DEFINES adjacent to $(SCRIPT_DEFINES)
+ (this branch is used by ab/make-dependency.)
Make a few helper functions unused and then lose them.
Will merge to 'next'?
-* fs/ssh-signing-key-lifetime (2021-10-27) 8 commits
+* fs/ssh-signing-key-lifetime (2021-11-18) 10 commits
+ - ssh signing: verify ssh-keygen in test prereq
- ssh signing: make fmt-merge-msg consider key lifetime
- ssh signing: make verify-tag consider key lifetime
- ssh signing: make git log verify key lifetime
- ssh signing: make verify-commit consider key lifetime
- ssh signing: add key lifetime test prereqs
- ssh signing: use sigc struct to pass payload
+ - Merge branch 'ad/ssh-signing-testfix' into fs/ssh-signing-key-lifetime
- Merge branch 'fs/ssh-signing-fix' into fs/ssh-signing-key-lifetime
- Merge branch 'fs/ssh-signing' into fs/ssh-signing-key-lifetime
on, and hint/nudge contributors to read others' changes.
-* gc/remote-with-fewer-static-global-variables (2021-10-28) 6 commits
- - remote: add struct repository parameter to external functions
+* gc/remote-with-fewer-static-global-variables (2021-11-18) 5 commits
- remote: die if branch is not found in repository
- remote: remove the_repository->remote_state from static methods
- remote: use remote_state parameter internally
Will cook in 'next'.
-* js/branch-track-inherit (2021-10-18) 1 commit
+* js/branch-track-inherit (2021-11-18) 1 commit
- branch: add flags and config to inherit tracking
"git -c branch.autosetupmerge=inherit branch new old" makes "new"
to have the same upstream as the "old" branch, instead of marking
"old" itself as its upstream.
- Under discussion.
- cf. <87a6j6tbsv.fsf@gmgdl.gmail.com>
-
* jh/builtin-fsmonitor-part2 (2021-10-21) 29 commits
- t7527: test status with untracked-cache and fsmonitor--daemon
- blame: enable and test the sparse index
- diff: enable and test the sparse index
- Merge branch 'vd/sparse-reset' into ld/sparse-diff-blame
- (this branch uses vd/sparse-reset.)
+ (this branch is used by ds/fetch-pull-with-sparse-index; uses vd/sparse-reset.)
Teach diff and blame to work well with sparse index.
- sparse-index: update command for expand/collapse test
- reset: preserve skip-worktree bit in mixed reset
- reset: rename is_missing to !is_in_reset_tree
- (this branch is used by ld/sparse-diff-blame.)
+ (this branch is used by ds/fetch-pull-with-sparse-index and ld/sparse-diff-blame.)
Various operating modes of "git reset" have been made to work
better with the sparse index.
protect the fixes.
-* es/superproject-aware-submodules (2021-11-04) 4 commits
+* es/superproject-aware-submodules (2021-11-18) 5 commits
+ - submodule: use config to find superproject worktree
- submodule: record superproject gitdir during 'update'
- submodule: record superproject gitdir during absorbgitdirs
- introduce submodule.superprojectGitDir record
What's the status of this thing?
-* js/scalar (2021-10-27) 15 commits
- - scalar: accept -C and -c options before the subcommand
+* js/scalar (2021-11-19) 17 commits
- scalar: implement the `version` command
- scalar: implement the `delete` command
- scalar: teach 'reconfigure' to optionally handle all registered enlistments
- scalar: let 'unregister' handle a deleted enlistment directory gracefully
- scalar: 'unregister' stops background maintenance
- scalar: 'register' sets recommended config and starts maintenance
+ - ci: also run the `scalar` tests
+ - cmake: optionally build `scalar`, too
- scalar: create test infrastructure
- scalar: start documenting the command
- scalar: create a rudimentary executable
+ - scalar: add a README with a roadmap
Add pieces from "scalar" to contrib/.