From: Junio C Hamano Date: Thu, 29 Apr 2021 08:08:20 +0000 (+0900) Subject: What's cooking (2021/04 #06) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8658c7522b55f300d4e48d65007ee851a688d019;p=thirdparty%2Fgit.git What's cooking (2021/04 #06) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 0594c49eaa..5bef71df02 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 (Apr 2021, #05; Mon, 19) -X-master-at: b0c09ab8796fb736efa432b8e817334f3e5ee75a -X-next-at: 90b4fd31cda88325bdebf89b7d407491b176f853 +Subject: What's cooking in git.git (Apr 2021, #06; Thu, 29) +X-master-at: 311531c9de557d25ac087c1637818bd2aad6eb3a +X-next-at: 47e6f1690178d77508c72e3fec1411a0ca706661 -What's cooking in git.git (Apr 2021, #05; Mon, 19) +What's cooking in git.git (Apr 2021, #06; Thu, 29) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are @@ -12,6 +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. +I am still catching up with the updates of various topics that +happened during my absense, and I'd expect new patches will still +take more time to be queued in 'seen' (as by definition I haven't +seen many of them ;-). + 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. @@ -43,58 +48,66 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* ah/merge-ort-ubsan-fix (2021-04-12) 1 commit - (merged to 'next' on 2021-04-13 at 41713a32bd) - + merge-ort: only do pointer arithmetic for non-empty lists - - Code clean-up for merge-ort backend. - - -* en/ort-perf-batch-10 (2021-03-18) 8 commits - (merged to 'next' on 2021-04-07 at 9826d89311) - + diffcore-rename: determine which relevant_sources are no longer relevant - + merge-ort: record the reason that we want a rename for a file - + diffcore-rename: add computation of number of unknown renames - + diffcore-rename: check if we have enough renames for directories early on - + diffcore-rename: only compute dir_rename_count for relevant directories - + merge-ort: record the reason that we want a rename for a directory - + merge-ort, diffcore-rename: tweak dirs_removed and relevant_source type - + diffcore-rename: take advantage of "majority rules" to skip more renames - (this branch is used by en/ort-perf-batch-11 and en/ort-readiness.) - - Various rename detection optimization to help "ort" merge strategy - backend. - - -* en/ort-readiness (2021-03-20) 13 commits - (merged to 'next' on 2021-04-08 at 20283a3f10) - + Add testing with merge-ort merge strategy - + t6423: mark remaining expected failure under merge-ort as such - + Revert "merge-ort: ignore the directory rename split conflict for now" - + merge-recursive: add a bunch of FIXME comments documenting known bugs - + merge-ort: write $GIT_DIR/AUTO_MERGE whenever we hit a conflict - + t: mark several submodule merging tests as fixed under merge-ort - + merge-ort: implement CE_SKIP_WORKTREE handling with conflicted entries - + t6428: new test for SKIP_WORKTREE handling and conflicts - + merge-ort: support subtree shifting - + merge-ort: let renormalization change modify/delete into clean delete - + merge-ort: have ll_merge() use a special attr_index for renormalization - + merge-ort: add a special minimal index just for renormalization - + merge-ort: use STABLE_QSORT instead of QSORT where required - (this branch is used by en/ort-perf-batch-11; uses en/ort-perf-batch-10.) - - Plug the ort merge backend throughout the rest of the system, and - start testing it as a replacement for the recursive backend. +* ab/detox-gettext-tests (2021-04-13) 1 commit + (merged to 'next' on 2021-04-15 at db0da2903a) + + tests: remove all uses of test_i18cmp --------------------------------------------------- -[New Topics] + Test clean-up. -* ba/object-info (2021-04-15) 2 commits - - SQUASH??? - - object-info: support for retrieving object info - Over-the-wire protocol learns a new request type to ask for object - sizes given a list of object names. +* ab/usage-error-docs (2021-04-13) 3 commits + (merged to 'next' on 2021-04-15 at dbbbaa5eea) + + api docs: document that BUG() emits a trace2 error event + + api docs: document BUG() in api-error-handling.txt + + usage.c: don't copy/paste the same comment three times + + Documentation updates, with unrelated comment updates, too. + + +* ab/userdiff-tests (2021-04-08) 9 commits + (merged to 'next' on 2021-04-13 at 35fb0e853d) + + blame tests: simplify userdiff driver test + + blame tests: don't rely on t/t4018/ directory + + userdiff: remove support for "broken" tests + + userdiff tests: list builtin drivers via test-tool + + userdiff tests: explicitly test "default" pattern + + userdiff: add and use for_each_userdiff_driver() + + userdiff style: normalize pascal regex declaration + + userdiff style: declare patterns with consistent style + + userdiff style: re-order drivers in alphabetical order + + A bit of code clean-up and a lot of test clean-up around userdiff + area. + + +* ar/userdiff-scheme (2021-04-08) 1 commit + (merged to 'next' on 2021-04-13 at eb80d55a8c) + + userdiff: add support for Scheme + + Userdiff patterns for "Scheme" has been added. + + +* hn/reftable-tables-doc-update (2021-04-12) 1 commit + (merged to 'next' on 2021-04-13 at cdadb2c621) + + reftable: document an alternate cleanup method on Windows + + Doc updte. + + +* jc/doc-do-not-capitalize-clarification (2021-04-14) 1 commit + (merged to 'next' on 2021-04-15 at 873f7a1f84) + + doc: clarify "do not capitalize the first word" rule + + Doc update for developers. + + +* jk/pack-objects-bitmap-progress-fix (2021-04-12) 1 commit + (merged to 'next' on 2021-04-13 at bbe18a7b3a) + + pack-objects: update "nr_seen" progress based on pack-reused count + + When "git pack-objects" makes a literal copy of a part of existing + packfile using the reachability bitmaps, its update to the progress + meter was broken. * js/access-nul-emulation-on-windows (2021-04-16) 1 commit @@ -103,71 +116,251 @@ Release tarballs are available at: Portability fix. + +* jt/fetch-pack-request-fix (2021-04-08) 1 commit + (merged to 'next' on 2021-04-15 at 25c02ce3c3) + + fetch-pack: buffer object-format with other args + (this branch is used by jt/push-negotiation.) + + The response to the "object-format" capability in the fetch client + codepath were malformed, which has been corrected. It is + understandable that this bug has been hidden, as practically nobody + uses the non-standard hash function yet. + + +* sg/bugreport-fixes (2021-04-08) 1 commit + (merged to 'next' on 2021-04-16 at e93602f4df) + + Makefile: add missing dependencies of 'config-list.h' + (this branch is used by so/log-diff-merge.) + + The dependencies for config-list.h and command-list.h were broken + when the former was split out of the latter, which has been + corrected. + +-------------------------------------------------- +[New Topics] + +* ab/pathname-encoding-doc (2021-04-20) 1 commit + (merged to 'next' on 2021-04-20 at a90562c59f) + + doc: clarify the filename encoding in git diff + + Clarify that pathnames recorded in Git trees are most often (but + not necessarily) encoded in UTF-8. + Will merge to 'master'. -* zh/format-ref-array-optim (2021-04-19) 2 commits - - ref-filter: reuse output buffer - - ref-filter: get rid of show_ref_array_item +* dl/complete-stash-updates (2021-04-27) 4 commits + - git-completion.bash: consolidate cases in _git_stash() + - git-completion.bash: use $__git_cmd_idx in more places + - git-completion.bash: rename to $__git_cmd_idx + - git-completion.bash: separate some commands onto their own line + (this branch uses dl/complete-stash.) - "git (branch|tag) --format=..." has been micro-optimized. + Further update the command line completion (in contrib/) for "git + stash". - Almost there? + Will merge to 'next'? -* vs/completion-with-set-u (2021-04-16) 1 commit - - completion: avoid aliased command lookup error in nounset mode +* ab/pretty-date-format-tests (2021-04-27) 2 commits + - pretty tests: give --date/format tests a better description + - pretty tests: simplify %aI/%cI date format test + (this branch is used by zh/pretty-date-human.) - Effort to make the command line completion (in contrib/) safe with - "set -u" continues. + Tweak a few tests for "log --format=..." that show timestamps in + various formats. Will merge to 'next'. -* hn/prep-tests-for-reftable (2021-04-19) 18 commits - - t1415: set REFFILES for test specific to storage format - - t4202: mark bogus head hash test with REFFILES - - t7003: check reflog existence only for REFFILES - - t7900: mark pack-refs tests as REFFILES - - t1404: mark tests that muck with .git directly as REFFILES. - - t2017: mark --orphan/logAllRefUpdates=false test as REFFILES - - t1414: mark corruption test with REFFILES - - t1407: require REFFILES for for_each_reflog test - - test-lib: provide test prereq REFFILES - - t5304: use "reflog expire --all" to clear the reflog - - t7003: use rev-parse rather than FS inspection - - t5000: inspect HEAD using git-rev-parse - - t1301: fix typo in error message - - t1413: use tar to save and restore entire .git directory - - t1401-symbolic-ref: avoid direct filesystem access - - t5601: read HEAD using rev-parse - - t9300: check ref existence using git-rev-parse rather than FS check - - t4202: split testcase for invalid HEAD symref and HEAD hash +* ds/status-with-sparse-index (2021-04-28) 10 commits + - fsmonitor: test with sparse index + - status: use sparse-index throughout + - status: skip sparse-checkout percentage with sparse-index + - dir.c: accept a directory as part of cone-mode patterns + - unpack-trees: stop recursing into sparse directories + - unpack-trees: compare sparse directories correctly + - unpack-trees: preserve cache_bottom + - t1092: add tests for status/add and sparse files + - Merge branch 'mt/add-rm-in-sparse-checkout' into ds/status-with-sparse-index + - Merge branch 'ds/sparse-index-protections' into ds/status-with-sparse-index + (this branch uses ds/sparse-index, ds/sparse-index-protections and mt/add-rm-in-sparse-checkout.) - Preliminary clean-up of tests before the main reftable changes - hits the codebase. + "git status" codepath learned to work with sparsely populated index + without hydrating it fully. -* ps/config-env-option-with-separate-value (2021-04-19) 2 commits - - git: support separate arg for `--config-env`'s value - - git.txt: fix synopsis of `--config-env` missing the equals sign +* hn/trace-reflog-expiry (2021-04-27) 1 commit + - refs/debug: trace into reflog expiry too - "git --config-env var=val cmd" weren't accepted (only - --config-env=var=val was). + The reflog expiry machinery has been taught to emit trace events. + + Will merge to 'next'. + + +* jk/prune-with-bitmap-fix (2021-04-29) 2 commits + - prune: save reachable-from-recent objects with bitmaps + - pack-bitmap: clean up include_check after use + + When the reachability bitmap is in effect, the "do not lose + recently created objects and those that are reachable from them" + safety to protect us from races were disabled by mistake, which has + been corrected. + + Will merge to 'next'. + + +* js/merge-already-up-to-date-message-reword (2021-04-28) 1 commit + - git-merge: rewrite already up to date message + + A few variants of informational message "Already up-to-date" has + been rephrased. + + Expecting a reroll. + + +* jz/apply-3way-first-message-fix (2021-04-29) 1 commit + - apply: adjust messages to account for --3way changes + + When we swapped the order of --3way fallback, we forgot to adjust + the message we give when the first method fails and the second + method is attempted (which used to be "direct application failed + hence we try 3way", now it is the other way around). + + Will merge to 'next'. + + +* ls/fast-export-signed (2021-04-28) 3 commits + - fast-export, fast-import: implement signed-commits + - fast-export: rename --signed-tags='warn' to 'warn-verbatim' + - git-fast-import.txt: add missing LF in the BNF + + "git fast-export" offers a way to control how signed tags are + handled; the mechanism has been extended to allow specifying how + signed commits are handled as well. + + Expecting a reroll. + + +* ls/subtree (2021-04-28) 30 commits + - subtree: be stricter about validating flags + - subtree: push: allow specifying a local rev other than HEAD + - subtree: allow 'split' flags to be passed to 'push' + - subtree: allow --squash to be used with --rejoin + - subtree: give the docs a once-over + - subtree: have $indent actually affect indentation + - subtree: don't let debug and progress output clash + - subtree: add comments and sanity checks + - subtree: remove duplicate check + - subtree: parse revs in individual cmd_ functions + - subtree: use "^{commit}" instead of "^0" + - subtree: don't fuss with PATH + - subtree: use "$*" instead of "$@" as appropriate + - subtree: use more explicit variable names for cmdline args + - subtree: use git-sh-setup's `say` + - subtree: use `git merge-base --is-ancestor` + - subtree: drop support for git < 1.7 + - subtree: more consistent error propagation + - subtree: don't have loose code outside of a function + - subtree: t7900: add porcelain tests for 'pull' and 'push' + - subtree: t7900: add a test for the -h flag + - subtree: t7900: rename last_commit_message to last_commit_subject + - subtree: t7900: fix 'verify one file change per commit' + - subtree: t7900: delete some dead code + - subtree: t7900: use 'test' for string equality + - subtree: t7900: comment subtree_test_create_repo + - subtree: t7900: use consistent formatting + - subtree: t7900: use test-lib.sh's test_count + - subtree: t7900: update for having the default branch name be 'main' + - .gitignore: ignore 'git-subtree' as a build artifact + + "git subtree" updates. + + Will merge to 'next'? + Unless somebody familiar with subtree speaks up soon and causes a + reroll. + + +* mt/parallel-checkout-part-3 (2021-04-28) 7 commits + - ci: run test round with parallel-checkout enabled + - parallel-checkout: add tests related to .gitattributes + - parallel-checkout: add tests related to path collisions + - parallel-checkout: add tests for basic operations + - checkout-index: add parallel checkout support + - builtin/checkout.c: complete parallel checkout support + - make_transient_cache_entry(): optionally alloc from mem_pool + (this branch uses mt/parallel-checkout-part-2.) + + The final part of "parallel checkout". + + Waiting for a review. + + +* po/diff-patch-doc (2021-04-28) 1 commit + - doc: point to diff attribute in patch format docs + + Doc update. + + Will merge to 'next'. + + +* rj/bisect-skip-honor-terms (2021-04-28) 2 commits + - t6030: add test for git bisect skip started with --term-* arguments + - bisect--helper: use BISECT_TERMS in 'bisect skip' command + + "git bisect skip" when custom words are used for new/old did not + work, which has been corrected. + + +* tv/p4-fallback-encoding (2021-04-28) 1 commit + - add git-p4.fallbackEncoding config variable, to prevent git-p4 from crashing on non UTF-8 changeset descriptions + + "git p4" learns the fallbackEncoding configuration variable to + safely accept changeset descriptions that aren't written in UTF-8. + + Expecting a reroll. + + +* zh/pretty-date-human (2021-04-27) 1 commit + - pretty: provide human date format + (this branch uses ab/pretty-date-format-tests.) + + "git log --format=..." placeholders learned %ah/%ch placeholders to + request the --date=human output. + + Will merge to 'next'? -------------------------------------------------- [Stalled] -* dl/complete-stash (2021-03-24) 3 commits - (merged to 'next' on 2021-03-24 at ce573a99cc) - + git-completion.bash: use __gitcomp_builtin() in _git_stash() - + git-completion.bash: extract from else in _git_stash() - + git-completion.bash: pass $__git_subcommand_idx from __git_main() - - Update "git stash branch" command line completion (in contrib/). +* jh/rfc-builtin-fsmonitor (2021-04-08) 23 commits + - t7527: test status with untracked-cache and fsmonitor--daemon + - p7519: add fsmonitor--daemon + - t7527: create test for fsmonitor--daemon + - fsmonitor: force update index when fsmonitor token advances + - fsmonitor--daemon: use a cookie file to sync with file system + - fsmonitor--daemon:: introduce client delay for testing + - fsmonitor--daemon: periodically truncate list of modified files + - fsmonitor--daemon: implement handle_client callback + - fsmonitor-fs-listen-macos: implement FSEvent listener on MacOS + - fsmonitor-fs-listen-macos: add macos header files for FSEvent + - fsmonitor-fs-listen-win32: implement FSMonitor backend on Windows + - fsmonitor--daemon: create token-based changed path cache + - fsmonitor--daemon: define token-ids + - fsmonitor--daemon: add pathname classification + - fsmonitor--daemon: implement daemon command options + - fsmonitor-fs-listen-macos: stub in backend for MacOS + - fsmonitor-fs-listen-win32: stub in backend for Windows + - fsmonitor--daemon: implement client command options + - fsmonitor--daemon: add a built-in fsmonitor daemon + - fsmonitor: introduce `core.useBuiltinFSMonitor` to call the daemon via IPC + - config: FSMonitor is repository-specific + - fsmonitor-ipc: create client routines for git-fsmonitor--daemon + - Merge branch 'jh/simple-ipc' into jh/rfc-builtin-fsmonitor - On hold. Probably needs either a reroll or incremental refinements. - cf. <20210327183554.GD2271@szeder.dev> + An attempt to write and ship with a watchman equivalent tailored + for our use. * ag/merge-strategies-in-c (2021-03-17) 15 commits @@ -194,23 +387,7 @@ Release tarballs are available at: cf. -* ab/unexpected-object-type (2021-04-14) 11 commits - - fixup! object.c: stop supporting len == -1 in type_from_string_gently() - - tag: don't misreport type of tagged objects in errors - - object tests: add test for unexpected objects in tags - - object.c: add and use oid_is_type_or_die_msg() function - - object.c: add a utility function for "expected type X, got Y" - - tree.c: fix misindentation in parse_tree_gently() - - object-name.c: make dependency on object_type order more obvious - - object-file.c: make oid_object_info() return "enum object_type" - - object.c: make type_from_string() return "enum object_type" - - object.c: refactor type_from_string_gently() - - object.c: stop supporting len == -1 in type_from_string_gently() - - Error reporting upon object type mismatch has been improved - - -* ab/describe-tests-fix (2021-04-12) 5 commits +* ab/describe-tests-fix (2021-04-29) 5 commits - describe tests: support -C in "check_describe" - describe tests: fix nested "test_expect_success" call - describe tests: don't rely on err.actual from "check_describe" @@ -221,7 +398,7 @@ Release tarballs are available at: Various updates to tests around "git describe" -* ab/pickaxe-pcre2 (2021-04-12) 22 commits +* ab/pickaxe-pcre2 (2021-04-29) 22 commits - xdiff-interface: replace discard_hunk_line() with a flag - xdiff users: use designated initializers for out_line - pickaxe -G: don't special-case create/delete @@ -293,15 +470,84 @@ Release tarballs are available at: -------------------------------------------------- [Cooking] -* ab/detox-gettext-tests (2021-04-13) 1 commit - (merged to 'next' on 2021-04-15 at db0da2903a) - + tests: remove all uses of test_i18cmp +* dl/complete-stash (2021-03-24) 3 commits + (merged to 'next' on 2021-03-24 at ce573a99cc) + + git-completion.bash: use __gitcomp_builtin() in _git_stash() + + git-completion.bash: extract from else in _git_stash() + + git-completion.bash: pass $__git_subcommand_idx from __git_main() + (this branch is used by dl/complete-stash-updates.) - Test clean-up. + The command line completion (in contrib/) for "git stash" has been + updated. + + Wait until dl/complete-stash-updates matures. + + +* ba/object-info (2021-04-20) 1 commit + - object-info: support for retrieving object info + + Over-the-wire protocol learns a new request type to ask for object + sizes given a list of object names. + + +* zh/format-ref-array-optim (2021-04-20) 2 commits + - ref-filter: reuse output buffer + - ref-filter: get rid of show_ref_array_item + + "git (branch|tag) --format=..." has been micro-optimized. + + Will merge to 'next'? + + +* vs/completion-with-set-u (2021-04-16) 1 commit + (merged to 'next' on 2021-04-20 at 179933f961) + + completion: avoid aliased command lookup error in nounset mode + + Effort to make the command line completion (in contrib/) safe with + "set -u" continues. Will merge to 'master'. +* hn/prep-tests-for-reftable (2021-04-28) 21 commits + - t1415: set REFFILES for test specific to storage format + - t4202: mark bogus head hash test with REFFILES + - t7003: check reflog existence only for REFFILES + - t7900: mark pack-refs tests as REFFILES + - t1404: mark tests that muck with .git directly as REFFILES. + - t2017: mark --orphan/logAllRefUpdates=false test as REFFILES + - t1414: mark corruption test with REFFILES + - t1407: require REFFILES for for_each_reflog test + - test-lib: provide test prereq REFFILES + - t5304: use "reflog expire --all" to clear the reflog + - t5304: restyle: trim empty lines, drop ':' before > + - t7003: use rev-parse rather than FS inspection + - t5000: inspect HEAD using git-rev-parse + - t5000: reformat indentation to the latest fashion + - t1301: fix typo in error message + - t1413: use tar to save and restore entire .git directory + - t1401-symbolic-ref: avoid direct filesystem access + - t5601: read HEAD using rev-parse + - t9300: check ref existence using test-helper rather than a file system check + - t/helper/ref-store: initialize oid in resolve-ref + - t4202: split testcase for invalid HEAD symref and HEAD hash + + Preliminary clean-up of tests before the main reftable changes + hits the codebase. + + +* ps/config-env-option-with-separate-value (2021-04-19) 2 commits + - git: support separate arg for `--config-env`'s value + - git.txt: fix synopsis of `--config-env` missing the equals sign + + "git --config-env var=val cmd" weren't accepted (only + --config-env=var=val was). + + Will merge to 'next'. + possibly with minimum fix-up? + cf. + + * ab/fsck-unexpected-type (2021-04-13) 6 commits - fsck: report invalid object type-path combinations - fsck: report invalid types recorded in objects @@ -313,16 +559,7 @@ Release tarballs are available at: "git fsck" has been taught to report mismatch between expected and actual types of an object better. - -* ab/usage-error-docs (2021-04-13) 3 commits - (merged to 'next' on 2021-04-15 at dbbbaa5eea) - + api docs: document that BUG() emits a trace2 error event - + api docs: document BUG() in api-error-handling.txt - + usage.c: don't copy/paste the same comment three times - - Documentation updates, with unrelated comment updates, too. - - Will merge to 'master'. + Expecting a reroll. * jk/promisor-optim (2021-04-13) 3 commits @@ -345,7 +582,6 @@ Release tarballs are available at: + diff-merges: adapt -m to enable default diff format + diff-merges: refactor set_diff_merges() + diff-merges: introduce --diff-merges=on - (this branch uses sg/bugreport-fixes.) "git log" learned "--diff-merges=