From: Junio C Hamano Date: Thu, 16 Jul 2020 22:56:20 +0000 (-0700) Subject: What's cooking (2020/07 #03) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=112afbc7b3d5744e83f486359d09323e1b20b022;p=thirdparty%2Fgit.git What's cooking (2020/07 #03) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 8fb37488ce..33681d0463 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Jul 2020, #02; Thu, 9) -X-master-at: bd42bbe1a46c0fe486fc33e82969275e27e4dc19 -X-next-at: f9edc3c819edc268d3a429d06d1efb8fa957866b +Subject: What's cooking in git.git (Jul 2020, #03; Thu, 16) +X-master-at: b6a658bd00c9c29e07f833cabfc0ef12224e277a +X-next-at: 85f634d5a6a972c5a89293a1aca2a0a727cb6315 -What's cooking in git.git (Jul 2020, #02; Thu, 9) +What's cooking in git.git (Jul 2020, #03; Thu, 16) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are @@ -12,11 +12,13 @@ only in 'seen' (formerly 'pu'---proposed updates) while commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -The tip of the 'master' branch has been tagged as 'v2.28.0-rc0', as -the preview of upcoming release. From here on, let's focus mostly -on stabilizing what will be in the upcoming 2.28 release and less on -polishing topics not yet in 'next' or starting new ones, so that we -can have a solid release by the end of the month. +Git 2.28-rc1 has not been tagged yet. Hopefully the three patches +in jn/v0-with-extensions-fix can gain enough support to get merged +tomorrow for the real -rc1. + +As I promised, I am not paying much attention to topics that are not +relevant to the upcoming release, so the comments on the topics may +be left stale. You can find the changes described here in the integration branches of the repositories listed at @@ -26,146 +28,189 @@ repositories listed at -------------------------------------------------- [Graduated to 'master'] -* cc/cat-file-usage-update (2020-07-01) 1 commit - (merged to 'next' on 2020-07-06 at 270769a009) - + cat-file: add missing [=] to usage/synopsis - - Doc/usage update. +* ct/diff-with-merge-base-clarification (2020-07-13) 2 commits + (merged to 'next' on 2020-07-15 at 041807cbbd) + + git-diff.txt: reorder possible usages + + git-diff.txt: don't mark required argument as optional + Doc update. -* ct/diff-with-merge-base-clarification (2020-07-08) 1 commit - (merged to 'next' on 2020-07-08 at fc1ab4a479) - + diff: check for merge bases before assigning sym->base - Recent update to "git diff" meant as a code clean-up introduced a - bug in its error handling code, which has been corrected. +* sg/commit-graph-progress-fix (2020-07-09) 2 commits + (merged to 'next' on 2020-07-09 at 3a9f916ca4) + + commit-graph: fix "Writing out commit graph" progress counter + + commit-graph: fix progress of reachable commits + The code to produce progress output from "git commit-graph --write" + had a few breakages, which have been fixed. -* jn/eject-fetch-write-commit-graph-out-of-experimental (2020-07-08) 1 commit - (merged to 'next' on 2020-07-08 at 1f7cf947f8) - + experimental: default to fetch.writeCommitGraph=false - "fetch.writeCommitGraph" was enabled when "feature.experimental" is - asked for, but it was found to be a bit too risky even for bold - folks in its current shape. The configuration has been ejected, at - least for now, from the "experimental" feature set. +* ta/wait-on-aliased-commands-upon-signal (2020-07-07) 2 commits + (merged to 'next' on 2020-07-09 at de8bde9182) + + Wait for child on signal death for aliases to externals + + Wait for child on signal death for aliases to builtins + When an aliased command, whose output is piped to a pager by git, + gets killed by a signal, the pager got into a funny state, which + has been corrected (again). -* ma/rebase-doc-typofix (2020-07-09) 1 commit - (merged to 'next' on 2020-07-09 at 6bf0e26bee) - + git-rebase.txt: fix description list separator - Typofix. +* tb/commit-graph-no-check-oids (2020-07-15) 1 commit + (merged to 'next' on 2020-07-15 at d97ae59198) + + commit-graph: fix "Collecting commits from input" progress line + Fix to the code to produce progress bar, which is new in the + upcoming release. -* mt/entry-fstat-fallback-fix (2020-07-09) 1 commit - (merged to 'next' on 2020-07-09 at fa0dce39d2) - + entry: check for fstat() errors after checkout +-------------------------------------------------- +[New Topics] - "git checkout" failed to catch an error from fstat() after updating - a path in the working tree. +* jn/v0-with-extensions-fix (2020-07-16) 3 commits + (merged to 'next' on 2020-07-16 at 85f634d5a6) + + verify_repository_format(): complain about new extensions in v0 repo + + repository: allow repository format upgrade with extensions + + Revert "check_repository_format_gently(): refuse extensions for old repositories" + + In 2.28-rc0, we corrected a bug that some repository extensions are + honored by mistake even in a version 0 repositories (these + configuration variables in extensions.* namespace were supposed to + have special meaning in repositories whose version numbers are 1 or + higher), but this was a bit too big a change. + + Will merge to 'master' before -rc1. + + +* bc/sha-256-part-3 (2020-07-15) 39 commits + - t: remove test_oid_init in tests + - docs: add documentation for extensions.objectFormat + - ci: run tests with SHA-256 + - t: make SHA1 prerequisite depend on default hash + - t: allow testing different hash algorithms via environment + - t: add test_oid option to select hash algorithm + - Enable SHA-256 support by default + - setup: add support for reading extensions.objectformat + - bundle: add new version for use with SHA-256 + - builtin/verify-pack: implement an --object-format option + - http-fetch: set up git directory before parsing pack hashes + - t0410: mark test with SHA1 prerequisite + - t5308: make test work with SHA-256 + - t9700: make hash size independent + - t9500: ensure that algorithm info is preserved in config + - t9350: make hash size independent + - t9301: make hash size independent + - t9300: use $ZERO_OID instead of hard-coded object ID + - t9300: abstract away SHA-1-specific constants + - t8011: make hash size independent + - t8003: make hash size independent + - t8002: make hash size independent + - t7508: use $ZERO_OID instead of hard-coded constant + - t7506: avoid checking for SHA-1-specific constants + - t7405: make hash size independent + - t7400: make hash size independent + - t7102: abstract away SHA-1-specific constants + - t7201: abstract away SHA-1-specific constants + - t7063: make hash size independent + - t7003: compute appropriate length constant + - t6501: avoid hard-coded objects + - t6500: specify test values for SHA-256 + - t6301: make hash size independent + - t6101: make hash size independent + - t6100: make hash size independent + - t3404: prepare 'short SHA-1 collision' tests for SHA-256 + - t3305: make hash agnostic + - t1001: use $ZERO_OID + - t: make test-bloom initialize repository + + The final leg of SHA-256 transition. + + +* jk/tests-timestamp-fix (2020-07-15) 6 commits + (merged to 'next' on 2020-07-16 at 2c69e97b92) + + t9100: stop depending on commit timestamps + (merged to 'next' on 2020-07-14 at 66ee0e6b45) + + test-lib: set deterministic default author/committer date + + t9100: explicitly unset GIT_COMMITTER_DATE + + t5539: make timestamp requirements more explicit + + t9700: loosen ident timezone regex + (merged to 'next' on 2020-07-09 at 633bcd552f) + + t6000: use test_tick consistently + The test framework has been updated so that most tests will run + with predictable (artificial) timestamps. -* ra/send-email-in-reply-to-from-command-line-wins (2020-07-01) 1 commit - (merged to 'next' on 2020-07-06 at 3892a1ab88) - + send-email: restore --in-reply-to superseding behavior + Will cook in 'next'. - "git send-email --in-reply-to=" did not use the In-Reply-To: - header with the value given from the command line, and let it be - overridden by the value on In-Reply-To: header in the messages - being sent out (if exists). +* jc/no-update-fetch-head (2020-07-13) 1 commit + - fetch: optionally allow disabling FETCH_HEAD update -* rs/line-log-until (2020-07-06) 1 commit - (merged to 'next' on 2020-07-06 at 84d6bc67fa) - + revision: disable min_age optimization with line-log + "git fetch" learned the "--[no-]write-fetch-head" option to + optionally stop describing what was fetched in FETCH_HEAD. - "git log -Lx,y:path --before=date" lost track of where the range - should be because it didn't take the changes made by the youngest - commits that are omitted from the output into account. +* mp/complete-show-color-moved (2020-07-15) 1 commit + - completion: add show --color-moved[-ws] -* tb/fix-persistent-shallow (2020-07-08) 1 commit - (merged to 'next' on 2020-07-08 at ef1709f4bb) - + commit.c: don't persist substituted parents when unshallowing + Command line completion (in contrib/) update. - When "fetch.writeCommitGraph" configuration is set in a shallow - repository and a fetch moves the shallow boundary, we wrote out - broken commit-graph files that do not match the reality, which has - been corrected. +* hn/reftable-prep-part-2 (2020-07-16) 3 commits + - Make HEAD a PSEUDOREF rather than PER_WORKTREE. + - Modify pseudo refs through ref backend storage + - t1400: use git rev-parse for testing PSEUDOREF existence + (this branch uses hn/reftable.) -* vs/completion-with-set-u (2020-07-01) 1 commit - (merged to 'next' on 2020-07-06 at 72b1eca511) - + completion: nounset mode fixes + Further preliminary change to refs API. - The command line completion support (in contrib/) used to be - prepared to work with "set -u" but recent changes got a bit more - sloppy. This has been corrected. --------------------------------------------------- -[New Topics] +* jt/avoid-lazy-fetching-upon-have-check (2020-07-16) 1 commit + - upload-pack: do not lazy-fetch "have" objects -* dl/test-must-fail-fixes-6 (2020-07-07) 6 commits - - test-lib-functions: restrict test_must_fail usage - - t9400: don't use test_must_fail with cvs - - t9834: remove use of `test_might_fail p4` - - t7107: don't use test_must_fail() - - t5324: reorder `run_with_limited_open_files test_might_fail` - - t3701: stop using `env` in force_color() + Fetching from a lazily cloned repository resulted at the server + side in attempts to lazy fetch objects that the client side has, + many of which will not be available from the third-party anyway. - Dev support to limit the use of test_must_fail to only git commands. + Will merge to 'next'. -* ds/maintenance (2020-07-07) 21 commits - - midx: use start_delayed_progress() - - maintenance: add pack-files auto condition - - maintenance: create auto condition for loose-objects - - maintenance: add auto condition for commit-graph task - - maintenance: use pointers to check --auto - - maintenance: create maintenance..enabled config - - maintenance: auto-size pack-files batch - - maintenance: add pack-files task - - maintenance: add loose-objects task - - maintenance: add fetch task - - maintenance: take a lock on the objects directory - - maintenance: add --task option - - maintenance: add commit-graph task - - maintenance: initialize task array and hashmap - - maintenance: replace run_auto_gc() - - maintenance: add --quiet option - - maintenance: create basic maintenance runner - - gc: drop the_repository in log location - - gc: use repo config - - gc: use repository in too_many_loose_objects() - - gc: use the_repository less often +* rc/add-index-entry-optim-fix (2020-07-16) 1 commit + - read-cache: remove bogus shortcut - A "git gc"'s big brother has been introduced to take care of more - repository maintenance tasks, not limited to the object database - cleaning. + Fix to an ancient bug caused by an over-eager attempt for + optimization. +-------------------------------------------------- +[Stalled] -* jk/t6000-timestamp-fix (2020-07-07) 1 commit - (merged to 'next' on 2020-07-09 at 633bcd552f) - + t6000: use test_tick consistently +* jx/proc-receive-hook (2020-05-18) 11 commits + - doc: add documentation for the proc-receive hook + - transport: parse report options for tracking refs + - t5411: test updates of remote-tracking branches + - receive-pack: new config receive.procReceiveRefs + - refs.c: refactor to reuse ref_is_hidden() + - receive-pack: feed report options to post-receive + - doc: add document for capability report-status-v2 + - New capability "report-status-v2" for git-push + - receive-pack: add new proc-receive hook + - t5411: add basic test cases for proc-receive hook + - transport: not report a non-head push as a branch - Test update. + "git receive-pack" that accepts requests by "git push" learned to + outsource most of the ref updates to the new "proc-receive" hook. - Will cook in 'next'. + Needs review. -* sg/commit-graph-progress-fix (2020-07-09) 2 commits - (merged to 'next' on 2020-07-09 at 3a9f916ca4) - + commit-graph: fix "Writing out commit graph" progress counter - + commit-graph: fix progress of reachable commits +* mf/submodule-summary-with-correct-repository (2020-06-24) 2 commits + - submodule: use submodule repository when preparing summary + - revision: use repository from rev_info when parsing commits - The code to produce progress output from "git commit-graph --write" - had a few breakages, which have been fixed. + "git diff/show" on a change that involves a submodule used to read + the information on commits in the submodule from a wrong repository + and gave a wrong information when the commit-graph is involved. - Will merge to 'master'. + Needs tests. --------------------------------------------------- -[Stalled] * dr/push-remoteref-fix (2020-04-23) 1 commit - remote.c: fix handling of %(push:remoteref) @@ -210,34 +255,69 @@ repositories listed at -------------------------------------------------- [Cooking] -* bw/fail-cloning-into-non-empty (2020-07-06) 1 commit - - git clone: don't clone into non-empty directory +* dl/test-must-fail-fixes-6 (2020-07-07) 6 commits + - test-lib-functions: restrict test_must_fail usage + - t9400: don't use test_must_fail with cvs + - t9834: remove use of `test_might_fail p4` + - t7107: don't use test_must_fail() + - t5324: reorder `run_with_limited_open_files test_might_fail` + - t3701: stop using `env` in force_color() + + Dev support to limit the use of test_must_fail to only git commands. + + +* ds/maintenance (2020-07-07) 21 commits + - midx: use start_delayed_progress() + - maintenance: add pack-files auto condition + - maintenance: create auto condition for loose-objects + - maintenance: add auto condition for commit-graph task + - maintenance: use pointers to check --auto + - maintenance: create maintenance..enabled config + - maintenance: auto-size pack-files batch + - maintenance: add pack-files task + - maintenance: add loose-objects task + - maintenance: add fetch task + - maintenance: take a lock on the objects directory + - maintenance: add --task option + - maintenance: add commit-graph task + - maintenance: initialize task array and hashmap + - maintenance: replace run_auto_gc() + - maintenance: add --quiet option + - maintenance: create basic maintenance runner + - gc: drop the_repository in log location + - gc: use repo config + - gc: use repository in too_many_loose_objects() + - gc: use the_repository less often + + A "git gc"'s big brother has been introduced to take care of more + repository maintenance tasks, not limited to the object database + cleaning. + + +* bw/fail-cloning-into-non-empty (2020-07-10) 1 commit + (merged to 'next' on 2020-07-14 at a52b5ce7ab) + + git clone: don't clone into non-empty directory "git clone --separate-git-dir=$elsewhere" used to stomp on the contents of the existing directory $elsewhere, which has been taught to fail when $elsewhere is not an empty directory. - Expecting a reroll. - with improved commit log message. - cf. + Will cook in 'next'. -* cc/pretty-contents-size (2020-07-07) 5 commits - . SQUASH??? - . ref-filter: add support for %(contents:size) - . t6300: test refs pointing to tree and blob - . Documentation: clarify 'complete message' - . Documentation: clarify %(contents:XXXX) doc +* cc/pretty-contents-size (2020-07-16) 3 commits + - ref-filter: add support for %(contents:size) + - t6300: test refs pointing to tree and blob + - Documentation: clarify %(contents:XXXX) doc "git for-each-ref --format=<>" learned %(contents:size). - Expecting a reroll. - breaks a test on macOS - cf. + Will merge to 'next'. -* ls/mergetool-meld-auto-merge (2020-07-08) 1 commit - - mergetool: mergetool: update meld backend to allow using '--auto-merge' +* ls/mergetool-meld-auto-merge (2020-07-12) 2 commits + - SQUASH??? + - Support auto-merge for meld to follow the vim-diff behavior The 'meld' backend of the "git mergetool" learned to give the underlying 'meld' the '--auto-merge' option, which would help @@ -245,27 +325,18 @@ repositories listed at * pb/log-rev-list-doc (2020-07-08) 6 commits - - git-log.txt: include rev-list-description.txt - - git-rev-list.txt: move description to separate file - - git-rev-list.txt: tweak wording in set operations - - git-rev-list.txt: fix Asciidoc syntax - - revisions.txt: describe 'rev1 rev2 ...' meaning for ranges - - git-log.txt: add links to 'rev-list' and 'diff' docs + (merged to 'next' on 2020-07-14 at f1104dfb77) + + git-log.txt: include rev-list-description.txt + + git-rev-list.txt: move description to separate file + + git-rev-list.txt: tweak wording in set operations + + git-rev-list.txt: fix Asciidoc syntax + + revisions.txt: describe 'rev1 rev2 ...' meaning for ranges + + git-log.txt: add links to 'rev-list' and 'diff' docs "git help log" has been enhanced by sharing more material from the documentation for the underlying "git rev-list" command. - -* ta/wait-on-aliased-commands-upon-signal (2020-07-07) 2 commits - (merged to 'next' on 2020-07-09 at de8bde9182) - + Wait for child on signal death for aliases to externals - + Wait for child on signal death for aliases to builtins - - When an aliased command, whose output is piped to a pager by git, - gets killed by a signal, the pager got into a funny state, which - has been corrected (again). - - Will merge to 'master'. + Will cook in 'next'. * tb/upload-pack-filters (2020-07-06) 4 commits @@ -278,8 +349,9 @@ repositories listed at configurable to selectively allow or reject object filtering specification used for partial cloning. - Waiting for reviews. + Waiting for reviews to settle. cf. + cf. <20200710022609.GC39052@syl.lan> * mt/hash-to-hex-thread-safety (2020-06-26) 2 commits @@ -294,17 +366,6 @@ repositories listed at cf. -* mf/submodule-summary-with-correct-repository (2020-06-24) 2 commits - - submodule: use submodule repository when preparing summary - - revision: use repository from rev_info when parsing commits - - "git diff/show" on a change that involves a submodule used to read - the information on commits in the submodule from a wrong repository - and gave a wrong information when the commit-graph is involved. - - Needs tests. - - * ds/commit-graph-bloom-updates (2020-07-01) 10 commits (merged to 'next' on 2020-07-06 at 177e6b362e) + commit-graph: check all leading directories in changed path Bloom filters @@ -370,7 +431,7 @@ repositories listed at What's the status of this one? Abandoned? -* pw/rebase-i-more-options (2020-06-26) 5 commits +* pw/rebase-i-more-options (2020-07-16) 5 commits - rebase: add --reset-author-date - rebase -i: support --ignore-date - sequencer: rename amend_author to author_to_free @@ -397,39 +458,18 @@ repositories listed at cf. -* jx/proc-receive-hook (2020-05-18) 11 commits - - doc: add documentation for the proc-receive hook - - transport: parse report options for tracking refs - - t5411: test updates of remote-tracking branches - - receive-pack: new config receive.procReceiveRefs - - refs.c: refactor to reuse ref_is_hidden() - - receive-pack: feed report options to post-receive - - doc: add document for capability report-status-v2 - - New capability "report-status-v2" for git-push - - receive-pack: add new proc-receive hook - - t5411: add basic test cases for proc-receive hook - - transport: not report a non-head push as a branch - - "git receive-pack" that accepts requests by "git push" learned to - outsource most of the ref updates to the new "proc-receive" hook. - - Needs review. - - -* hn/reftable (2020-07-06) 4 commits - - Treat BISECT_HEAD as a pseudo ref - - checkout: add '\n' to reflog message - - t3432: use git-reflog to inspect the reflog for HEAD - - lib-t6000.sh: write tag using git-update-ref +* hn/reftable (2020-07-10) 4 commits + (merged to 'next' on 2020-07-14 at e524883fec) + + reflog: cleanse messages in the refs.c layer + + bisect: treat BISECT_HEAD as a pseudo ref + + t3432: use git-reflog to inspect the reflog for HEAD + + lib-t6000.sh: write tag using git-update-ref + (this branch is used by hn/reftable-prep-part-2.) Preliminary clean-up of the refs API in preparation for adding a new refs backend "reftable". - Expecting a reroll. - The second one should be dropped, and possibly replaced with a - patch that moves message normalization from backends to the more - generic layer. - cf. + Will cook in 'next'. -------------------------------------------------- [Discarded] @@ -472,3 +512,31 @@ repositories listed at debugging using the anonymized output hsa been added. Superseded by 'jk/fast-export-anonym-alt'. + + +* jk/t6000-timestamp-fix (2020-07-07) 1 commit + (merged to 'next' on 2020-07-09 at 633bcd552f) + + t6000: use test_tick consistently + + Test update. + + Now it is part of jk/tests-timestamp-fix with a larger scope. + + +* ds/upgrade-with-existing-extension (2020-07-14) 2 commits + . config: provide extra detail about worktree config + . setup: tweak upgrade policy to grandfather worktreeconfig + (this branch is used by jc/upgrade-v0-fixup.) + + In 2.28-rc0, we corrected a bug that some repository extensions are + honored by mistake even in a version 0 repositories (these + configuration variables in extensions.* namespace were supposed to + have special meaning in repositories whose version numbers are 1 or + higher), but this was a bit too big a change. + + Superseded by jn/v0-with-extensions-fix + + +* jc/upgrade-v0-fixup (2020-07-15) 1 commit + . setup: grandfather other extensions that used to be honored by mistake + (this branch uses ds/upgrade-with-existing-extension.)