From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA974C433ED for ; Thu, 29 Apr 2021 09:15:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B7EB46140C for ; Thu, 29 Apr 2021 09:15:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237004AbhD2JQS (ORCPT ); Thu, 29 Apr 2021 05:16:18 -0400 Received: from pb-smtp20.pobox.com ([173.228.157.52]:62489 "EHLO pb-smtp20.pobox.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231722AbhD2JQR (ORCPT ); Thu, 29 Apr 2021 05:16:17 -0400 Received: from pb-smtp20.pobox.com (unknown [127.0.0.1]) by pb-smtp20.pobox.com (Postfix) with ESMTP id 0893A12EA34; Thu, 29 Apr 2021 05:15:31 -0400 (EDT) (envelope-from junio@pobox.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to :subject:date:message-id:mime-version:content-type; s=sasl; bh=H L63MsqgJhF7/Ze1PuGOPPJZu/V/TuwNmryz5wHKCVg=; b=XH6zBAw/ke6rf3zgs Zg+JM8yDX6oVLeie1HHU1q3bMRxjx2G3sF5mNmOhp21iZyac/qCLtOPKL/txd5XN 20stafqR3tbEfO2dHRZ8N+mcbUdTi1KQ4ps0hd8+zTzHGnosftqcMNdDVgojdSpP w5Opb1ODoyVFZGkhTv3yRZr5lM= Received: from pb-smtp20.sea.icgroup.com (unknown [127.0.0.1]) by pb-smtp20.pobox.com (Postfix) with ESMTP id 0081212EA33; Thu, 29 Apr 2021 05:15:31 -0400 (EDT) (envelope-from junio@pobox.com) Received: from pobox.com (unknown [34.74.119.39]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pb-smtp20.pobox.com (Postfix) with ESMTPSA id 19AEA12EA31; Thu, 29 Apr 2021 05:15:28 -0400 (EDT) (envelope-from junio@pobox.com) From: Junio C Hamano To: git@vger.kernel.org Subject: What's cooking in git.git (Apr 2021, #06; Thu, 29) X-master-at: 311531c9de557d25ac087c1637818bd2aad6eb3a X-next-at: 47e6f1690178d77508c72e3fec1411a0ca706661 Date: Thu, 29 Apr 2021 18:15:26 +0900 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 7052219C-A8CB-11EB-9349-E43E2BB96649-77302942!pb-smtp20.pobox.com Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Here are the topics that have been cooking. Commits prefixed with '-' are 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 absence, 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. With maint, master, next, seen, todo: git://git.kernel.org/pub/scm/git/git.git/ git://repo.or.cz/alt-git.git/ https://kernel.googlesource.com/pub/scm/git/git/ https://github.com/git/git/ https://gitlab.com/git-vcs/git/ With all the integration branches and topics broken out: https://github.com/gitster/git/ Even though the preformatted documentation in HTML and man format are not sources, they are published in these repositories for convenience (replace "htmldocs" with "manpages" for the manual pages): git://git.kernel.org/pub/scm/git/git-htmldocs.git/ https://github.com/gitster/git-htmldocs.git/ Release tarballs are available at: https://www.kernel.org/pub/software/scm/git/ -------------------------------------------------- [Graduated to 'master'] * 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 Test clean-up. * 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 (merged to 'next' on 2021-04-16 at 3017437e51) + msvc: avoid calling `access("NUL", flags)` 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'. * 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.) Further update the command line completion (in contrib/) for "git stash". Will merge to 'next'? * 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.) Tweak a few tests for "log --format=..." that show timestamps in various formats. Will merge to 'next'. * 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.) "git status" codepath learned to work with sparsely populated index without hydrating it fully. * hn/trace-reflog-expiry (2021-04-27) 1 commit - refs/debug: trace into reflog expiry too 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] * 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 An attempt to write and ship with a watchman equivalent tailored for our use. * ag/merge-strategies-in-c (2021-03-17) 15 commits - sequencer: use the "octopus" merge strategy without forking - sequencer: use the "resolve" strategy without forking - merge: use the "octopus" strategy without forking - merge: use the "resolve" strategy without forking - merge-octopus: rewrite in C - merge-recursive: move better_branch_name() to merge.c - merge-resolve: rewrite in C - merge-one-file: rewrite in C - update-index: move add_cacheinfo() to read-cache.c - merge-index: add a new way to invoke `git-merge-one-file' - merge-index: drop the index - merge-index: libify merge_one_path() and merge_all() - t6060: add tests for removed files - t6060: modify multiple files to expose a possible issue with merge-index - t6407: modernise tests The resolve and octopus merge strategy backends have been rewritten in C. Expecting a (hopefully final) reroll. cf. * 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" - describe tests: refactor away from glob matching - describe tests: improve test for --work-tree & --dirty (this branch uses ab/test-lib-updates.) Various updates to tests around "git describe" * 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 - pickaxe -G: terminate early on matching lines - xdiff-interface: allow early return from xdiff_emit_line_fn - xdiff-interface: prepare for allowing early return - pickaxe -S: slightly optimize contains() - pickaxe: rename variables in has_changes() for brevity - pickaxe -S: support content with NULs under --pickaxe-regex - pickaxe: assert that we must have a needle under -G or -S - pickaxe: refactor function selection in diffcore-pickaxe() - perf: add performance test for pickaxe - pickaxe/style: consolidate declarations and assignments - diff.h: move pickaxe fields together again - pickaxe: die when --find-object and --pickaxe-all are combined - pickaxe: die when -G and --pickaxe-regex are combined - pickaxe tests: add missing test for --no-pickaxe-regex being an error - pickaxe tests: test for -G, -S and --find-object incompatibility - pickaxe tests: add test for "log -S" not being a regex - pickaxe tests: add test for diffgrep_consume() internals - pickaxe tests: refactor to use test_commit --append --printf - grep/pcre2 tests: reword comments referring to kwset (this branch uses ab/test-lib-updates.) Rewrite the backend for "diff -G/-S" to use pcre2 engine when available. * es/config-hooks (2021-03-10) 36 commits . run-command: stop thinking about hooks . git-send-email: use 'git hook run' for 'sendemail-validate' . bugreport: use hook_exists instead of find_hook . receive-pack: convert receive hooks to hook.h . post-update: use hook.h library . proc-receive: acquire hook list from hook.h . receive-pack: convert 'update' hook to hook.h . reference-transaction: look for hooks in config . transport: convert pre-push hook to use config . hook: convert 'post-rewrite' hook to config . hooks: convert 'post-checkout' hook to hook library . git-p4: use 'git hook' to run hooks . receive-pack: convert push-to-checkout hook to hook.h . read-cache: convert post-index-change hook to use config . rebase: teach pre-rebase to use hook.h . gc: use hook library for pre-auto-gc hook . merge: use config-based hooks for post-merge hook . am: convert applypatch hooks to use config . commit: use config-based hooks . hooks: allow callers to capture output . run-command: allow capturing of collated output . hook: provide stdin by string_list or callback . run-command: add stdin callback for parallelization . hook: allow specifying working directory for hooks . hook: allow parallel hook execution . run-command: allow stdin for run_processes_parallel . hook: support passing stdin to hooks . hook: introduce hook_exists() . hook: add 'run' subcommand . parse-options: parse into strvec . hook: implement hookcmd..skip . hook: teach hook.runHookDir . hook: include hookdir hook in list . hook: add list command . hook: scaffolding for git-hook subcommand . doc: propose hooks managed by the config The "hooks defined in config" topic. -------------------------------------------------- [Cooking] * 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.) 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 - object-store.h: move read_loose_object() below 'struct object_info' - fsck: don't hard die on invalid object types - fsck tests: refactor one test to use a sub-repo - cache.h: move object functions to object-store.h "git fsck" has been taught to report mismatch between expected and actual types of an object better. Expecting a reroll. * jk/promisor-optim (2021-04-13) 3 commits (merged to 'next' on 2021-04-15 at 41f303ef9b) + revision: avoid parsing with --exclude-promisor-objects + lookup_unknown_object(): take a repository argument + is_promisor_object(): free tree buffer after parsing (this branch is used by rs/repack-without-loosening-promised-objects.) Handling of "promisor packs" that allows certain objects to be missing and lazily retrievable has been optimized (a bit). Will merge to 'master'. * so/log-diff-merge (2021-04-16) 5 commits (merged to 'next' on 2021-04-17 at 6c1eba8ee3) + doc/diff-options: document new --diff-merges features + diff-merges: introduce log.diffMerges config variable + diff-merges: adapt -m to enable default diff format + diff-merges: refactor set_diff_merges() + diff-merges: introduce --diff-merges=on "git log" learned "--diff-merges=