From: Junio C Hamano Date: Thu, 9 Jul 2020 21:36:11 +0000 (-0700) Subject: What's cooking (2020/07 #02) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06118b88e0965fbc1e2dc34774a641886cbb9181;p=thirdparty%2Fgit.git What's cooking (2020/07 #02) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 273279ebf0..8fb37488ce 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, #01; Mon, 6) -X-master-at: 4a0fcf9f760c9774be77f51e1e88a7499b53d2e2 -X-next-at: b3809f4674cea6e2f5db8a478a39b85851690c7d +Subject: What's cooking in git.git (Jul 2020, #02; Thu, 9) +X-master-at: bd42bbe1a46c0fe486fc33e82969275e27e4dc19 +X-next-at: f9edc3c819edc268d3a429d06d1efb8fa957866b -What's cooking in git.git (Jul 2020, #01; Mon, 6) +What's cooking in git.git (Jul 2020, #02; Thu, 9) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are @@ -12,10 +12,11 @@ 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. -We are about to tag the -rc0 "preview" and enter pre-release freeze -period. The change to let users name the initial branch that gets -prepared in a newly created repository has now been merged to be -included in the upcoming release. +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. You can find the changes described here in the integration branches of the repositories listed at @@ -25,228 +26,190 @@ repositories listed at -------------------------------------------------- [Graduated to 'master'] -* ak/commit-graph-to-slab (2020-06-17) 4 commits - (merged to 'next' on 2020-06-25 at 9a10ae18d3) - + commit-graph: minimize commit_graph_data_slab access - + commit: move members graph_pos, generation to a slab - + commit-graph: introduce commit_graph_data_slab - + object: drop parsed_object_pool->commit_count - - A few fields in "struct commit" that do not have to always be - present have been moved to commit slabs. - - -* bc/http-push-flagsfix (2020-06-23) 1 commit - (merged to 'next' on 2020-06-25 at 1dabb1f61b) - + http-push: ensure unforced pushes fail when data would be lost - - The code to push changes over "dumb" HTTP had a bad interaction - with the commit reachability code due to incorrect allocation of - object flag bits, which has been corrected. - - -* bc/sha-256-cvs-svn-updates (2020-06-22) 14 commits - (merged to 'next' on 2020-06-25 at e0d1c87fcf) - + git-cvsexportcommit: port to SHA-256 - + git-cvsimport: port to SHA-256 - + git-cvsserver: port to SHA-256 - + git-svn: set the OID length based on hash algorithm - + perl: make SVN code hash independent - + perl: make Git::IndexInfo work with SHA-256 - + perl: create and switch variables for hash constants - + t/lib-git-svn: make hash size independent - + t9101: make hash independent - + t9104: make hash size independent - + t9100: make test work with SHA-256 - + t9108: make test hash independent - + t9168: make test hash independent - + t9109: make test hash independent - (this branch uses bc/sha-256-part-2.) - - CVS/SVN interface have been prepared for SHA-256 transition - - -* bc/sha-256-part-2 (2020-06-19) 44 commits - (merged to 'next' on 2020-06-22 at dc153f366d) - + remote-testgit: adapt for object-format - + bundle: detect hash algorithm when reading refs - + t5300: pass --object-format to git index-pack - + t5704: send object-format capability with SHA-256 - + t5703: use object-format serve option - + t5702: offer an object-format capability in the test - + t/helper: initialize the repository for test-sha1-array - + remote-curl: avoid truncating refs with ls-remote - + t1050: pass algorithm to index-pack when outside repo - + builtin/index-pack: add option to specify hash algorithm - + remote-curl: detect algorithm for dumb HTTP by size - + builtin/ls-remote: initialize repository based on fetch - + t5500: make hash independent - + serve: advertise object-format capability for protocol v2 - + connect: parse v2 refs with correct hash algorithm - + connect: pass full packet reader when parsing v2 refs - + Documentation/technical: document object-format for protocol v2 - + t1302: expect repo format version 1 for SHA-256 - + builtin/show-index: provide options to determine hash algo - + t5302: modernize test formatting - + packfile: compute and use the index CRC offset - + t3200: mark assertion with SHA1 prerequisite - + setup: set the_repository's hash algo when checking format - + fetch-pack: parse and advertise the object-format capability - + t5562: pass object-format in synthesized test data - + builtin/clone: initialize hash algorithm properly - + remote-curl: implement object-format extensions - + transport-helper: implement object-format extensions - + docs: update remote helper docs for object-format extensions - + builtin/receive-pack: detect when the server doesn't support our hash - + connect: detect algorithm when fetching refs - + fetch-pack: detect when the server doesn't support our hash - + connect: make parse_feature_value extern - + send-pack: detect when the server doesn't support our hash - + connect: add function to detect supported v1 hash functions - + transport: add a hash algorithm member - + pkt-line: add a member for hash algorithm - + connect: add function to fetch value of a v2 server capability - + connect: add function to parse multiple v1 capability values - + remote: advertise the object-format capability on the server side - + wrapper: add function to compare strings with different NUL termination - + connect: have ref processing code take struct packet_reader - + Documentation: document v1 protocol object-format capability - + t1050: match object ID paths in a hash-insensitive way - (this branch is used by bc/sha-256-cvs-svn-updates.) - - SHA-256 migration work continues. - - -* cb/is-descendant-of (2020-06-23) 1 commit - (merged to 'next' on 2020-06-25 at ca0eaddf5e) - + commit-reach: avoid is_descendant_of() shim - - Code clean-up. - - -* dl/test-must-fail-fixes-5 (2020-06-24) 4 commits - (merged to 'next' on 2020-06-29 at efe53a7588) - + lib-submodule-update: pass 'test_must_fail' as an argument - + lib-submodule-update: prepend "git" to $command - + lib-submodule-update: consolidate --recurse-submodules - + lib-submodule-update: add space after function name - - The effort to avoid using test_must_fail on non-git command continues. - - -* en/sparse-status (2020-06-22) 3 commits - (merged to 'next' on 2020-06-25 at 404403a075) - + git-prompt: include sparsity state as well - + git-prompt: document how in-progress operations affect the prompt - + wt-status: show sparse checkout status as well - - "git status" learned to report the status of sparse checkout. - - -* es/get-worktrees-unsort (2020-06-22) 2 commits - (merged to 'next' on 2020-06-25 at 732d93a36d) - + worktree: drop get_worktrees() unused 'flags' argument - + worktree: drop get_worktrees() special-purpose sorting option - - API cleanup for get_worktrees() - - -* es/worktree-code-cleanup (2020-06-24) 1 commit - (merged to 'next' on 2020-06-29 at 91ffd85a31) - + worktree: avoid dead-code in conditional - - Code cleanup. - - -* jk/fast-export-anonym-alt (2020-06-25) 11 commits - (merged to 'next' on 2020-06-29 at 8a8d83e2ca) - + fast-export: use local array to store anonymized oid - + fast-export: anonymize "master" refname - + fast-export: allow seeding the anonymized mapping - + fast-export: add a "data" callback parameter to anonymize_str() - + fast-export: move global "idents" anonymize hashmap into function - + fast-export: use a flex array to store anonymized entries - + fast-export: stop storing lengths in anonymized hashmaps - + fast-export: tighten anonymize_mem() interface to handle only strings - + fast-export: store anonymized oids as hex strings - + fast-export: use xmemdupz() for anonymizing oids - + t9351: derive anonymized tree checks from original repo +* 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 - "git fast-export --anonymize" learned to take customized mapping to - allow its users to tweak its output more usable for debugging. + Doc/usage update. -* jl/complete-git-prune (2020-06-22) 1 commit - (merged to 'next' on 2020-06-25 at 64f30b8b41) - + bash-completion: add git-prune into bash completion +* 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 - Add "git prune" to the completion (in contrib/), which could be - typed by end-users from the command line. + Recent update to "git diff" meant as a code clean-up introduced a + bug in its error handling code, which has been corrected. -* js/default-branch-name (2020-06-30) 10 commits - (merged to 'next' on 2020-07-01 at c38d766581) - + contrib: subtree: adjust test to change in fmt-merge-msg - (merged to 'next' on 2020-06-25 at 8f962f9219) - + testsvn: respect `init.defaultBranch` - + remote: use the configured default branch name when appropriate - + clone: use configured default branch name when appropriate - + init: allow setting the default for the initial branch name via the config - + init: allow specifying the initial branch name for the new repository - + docs: add missing diamond brackets - + submodule: fall back to remote's HEAD for missing remote..branch - + send-pack/transport-helper: avoid mentioning a particular branch - + fmt-merge-msg: stop treating `master` specially +* 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 - The name of the primary branch in existing repositories, and the - default name used for the first branch in newly created - repositories, is made configurable, so that we can eventually wean - ourselves off of the hardcoded 'master'. + "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. -* js/diff-files-i-t-a-fix-for-difftool (2020-07-01) 2 commits - (merged to 'next' on 2020-07-01 at cf5d18635c) - + difftool -d: ensure that intent-to-add files are handled correctly - + diff-files --raw: show correct post-image of intent-to-add files +* 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 - "git difftool" has trouble dealing with paths added to the index - with the intent-to-add bit. + Typofix. -* js/pu-to-seen (2020-06-25) 3 commits - (merged to 'next' on 2020-06-25 at 06c9e5a885) - + tests: reference `seen` wherever `pu` was referenced - + docs: adjust the technical overview for the rename `pu` -> `seen` - + docs: adjust for the recent rename of `pu` to `seen` +* 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 + + "git checkout" failed to catch an error from fstat() after updating + a path in the working tree. + + +* 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 - The documentation and some tests have been adjusted for the recent - renaming of "pu" branch to "seen". + "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). -* mk/pb-pretty-email-without-domain-part-fix (2020-06-23) 1 commit - (merged to 'next' on 2020-06-25 at 81a3aca46b) - + doc: fix author vs. committer copy/paste error +* 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 - Docfix. + "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. -* ps/ref-transaction-hook (2020-06-19) 1 commit - (merged to 'next' on 2020-06-22 at 3a23dcdbdc) - + refs: implement reference transaction hook +* 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 - A new hook. + 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. -* rs/pack-bits-in-object-better (2020-06-24) 1 commit - (merged to 'next' on 2020-06-25 at b3cb296341) - + revision: reallocate TOPO_WALK object flags +* vs/completion-with-set-u (2020-07-01) 1 commit + (merged to 'next' on 2020-07-06 at 72b1eca511) + + completion: nounset mode fixes - By renumbering object flag bits, "struct object" managed to lose - bloated inter-field padding. + 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] +* 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. + + +* 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. + + Will cook in 'next'. + + +* 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. + + Will merge to 'master'. + +-------------------------------------------------- +[Stalled] + +* dr/push-remoteref-fix (2020-04-23) 1 commit + - remote.c: fix handling of %(push:remoteref) + + The "%(push:remoteref)" placeholder in the "--format=" argument of + "git format-patch" (and friends) only showed what got explicitly + configured, not what ref at the receiving end would be updated when + "git push" was used, as it ignored the default behaviour (e.g. update + the same ref as the source). + + Expecting a reroll. + cf. <20200416152145.wp2zeibxmuyas6y6@feanor> + + +* mr/bisect-in-c-2 (2020-07-08) 13 commits + . bisect--helper: retire `--bisect-autostart` subcommand + . bisect--helper: retire `--write-terms` subcommand + . bisect--helper: retire `--check-expected-revs` subcommand + . bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in C + . bisect--helper: retire `--next-all` subcommand + . bisect--helper: retire `--bisect-clean-state` subcommand + . bisect--helper: finish porting `bisect_start()` to C + . bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in C + . bisect: call 'clear_commit_marks_all()' in 'bisect_next_all()' + . bisect--helper: reimplement `bisect_autostart` shell function in C + . bisect--helper: introduce new `write_in_file()` function + . bisect--helper: use '-res' in 'cmd_bisect__helper' return + . bisect--helper: BUG() in cmd_*() on invalid subcommand + + Rewrite of the remainder of "git bisect" script in C continues. + + Needs more work. + + +* mk/use-size-t-in-zlib (2018-10-15) 1 commit + - zlib.c: use size_t for size + + The wrapper to call into zlib followed our long tradition to use + "unsigned long" for sizes of regions in memory, which have been + updated to use "size_t". + +-------------------------------------------------- +[Cooking] + * bw/fail-cloning-into-non-empty (2020-07-06) 1 commit - git clone: don't clone into non-empty directory @@ -259,75 +222,50 @@ repositories listed at cf. -* 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. - - Will merge to 'master'. - - -* cc/pretty-contents-size (2020-07-06) 2 commits - - ref-filter: add support for %(contents:size) - - Documentation: clarify %(contents:XXXX) doc +* 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 "git for-each-ref --format=<>" learned %(contents:size). Expecting a reroll. - with clarified semantics and tests with various object types - cf. + breaks a test on macOS + cf. -* ls/mergetool-meld-auto-merge (2020-07-06) 1 commit - - Support auto-merge for meld to follow the vim-diff behavior +* ls/mergetool-meld-auto-merge (2020-07-08) 1 commit + - mergetool: mergetool: update meld backend to allow using '--auto-merge' The 'meld' backend of the "git mergetool" learned to give the underlying 'meld' the '--auto-merge' option, which would help reduce the amount of text that requires manual merging. - Expecting a reroll. - with final fixes and readability improvements. - cf. - -* pb/log-rev-list-doc (2020-07-06) 4 commits - - rev-list-description.txt: fix Asciidoc syntax +* 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 "git help log" has been enhanced by sharing more material from the documentation for the underlying "git rev-list" command. - Expecting a reroll. - with reordering the last one to make it preparatory clean-up. - cf. - cf. - - -* 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 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. - - Will merge to 'master'. - -* ta/wait-on-aliased-commands-upon-signal (2020-07-06) 2 commits - - Wait for child on signal death for aliases to externals - - Wait for child on signal death for aliases to builtins +* 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). - Expecting a reroll. - with improved log messages. - cf. <20200706211403.GB85133@coredump.intra.peff.net> + Will merge to 'master'. * tb/upload-pack-filters (2020-07-06) 4 commits @@ -344,62 +282,6 @@ repositories listed at cf. -* vs/completion-with-set-u (2020-07-01) 1 commit - (merged to 'next' on 2020-07-06 at 72b1eca511) - + completion: nounset mode fixes - - 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. - - Will merge to 'master'. - --------------------------------------------------- -[Stalled] - -* dr/push-remoteref-fix (2020-04-23) 1 commit - - remote.c: fix handling of %(push:remoteref) - - The "%(push:remoteref)" placeholder in the "--format=" argument of - "git format-patch" (and friends) only showed what got explicitly - configured, not what ref at the receiving end would be updated when - "git push" was used, as it ignored the default behaviour (e.g. update - the same ref as the source). - - Expecting a reroll. - cf. <20200416152145.wp2zeibxmuyas6y6@feanor> - - -* mr/bisect-in-c-2 (2020-04-23) 12 commits - - bisect--helper: retire `--bisect-autostart` subcommand - - bisect--helper: retire `--write-terms` subcommand - - bisect--helper: retire `--check-expected-revs` subcommand - - bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in C - - bisect--helper: retire `--next-all` subcommand - - bisect--helper: retire `--bisect-clean-state` subcommand - - bisect--helper: finish porting `bisect_start()` to C - - bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in C - - bisect--helper: reimplement `bisect_autostart` shell function in C - - bisect--helper: introduce new `write_in_file()` function - - bisect--helper: use '-res' in 'cmd_bisect__helper' return - - bisect--helper: fix `cmd_*()` function switch default return - - Rewrite of the remainder of "git bisect" script in C continues. - - Expecting a response to reviews. - cf. - - -* mk/use-size-t-in-zlib (2018-10-15) 1 commit - - zlib.c: use size_t for size - - The wrapper to call into zlib followed our long tradition to use - "unsigned long" for sizes of regions in memory, which have been - updated to use "size_t". - --------------------------------------------------- -[Cooking] - * mt/hash-to-hex-thread-safety (2020-06-26) 2 commits - hex: make hash_to_hex_algop() and friends thread-safe - compat/win32/pthread: add pthread_once() @@ -423,18 +305,6 @@ repositories listed at Needs tests. -* 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 - - "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). - - Will merge to 'master'. - - * 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 @@ -451,7 +321,7 @@ repositories listed at Updates to the changed-paths bloom filter. - Will merge to 'master'. + Will cook in 'next'. * ss/cmake-build (2020-06-26) 8 commits @@ -470,6 +340,7 @@ repositories listed at * sg/commit-graph-cleanups (2020-06-08) 10 commits + (merged to 'next' on 2020-07-06 at 15c9d77eb9) + commit-graph: simplify write_commit_graph_file() #2 + commit-graph: simplify write_commit_graph_file() #1 + commit-graph: simplify parse_commit_graph() #2 @@ -485,10 +356,7 @@ repositories listed at The changed-path Bloom filter is improved using ideas from an independent implementation. - Under review. - cf. <20200627155610.GN2898@szeder.dev> - cf. <20200627163335.GO2898@szeder.dev> - cf. <20200627155348.GM2898@szeder.dev> + Will cook in 'next'. * es/config-hooks (2020-05-21) 4 commits