{"thread":{"id":"55523","subject":"What's cooking in git.git (Apr 2021, #05; Mon, 19)","startedAt":"2021-04-19T23:25:51Z","lastAt":"2021-04-23T14:41:19Z","messageCount":10,"participants":["Junio C Hamano","Matheus Tavares Bernardino","Ævar Arnfjörð Bjarmason","Jeff Hostetler","brian m. carlson","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"422356","messageId":"xmqqtuo17t6t.fsf@gitster.g","threadId":"55523","inReplyTo":null,"subject":"What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-04-19T23:25:46Z","receivedAt":"2021-04-19T23:25:51Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'seen' (formerly 'pu'---proposed updates) while commits prefixed\nwith '+' are in 'next'.  The ones marked with '.' do not appear in any of\nthe integration branches, but I am still holding onto them.\n\nIt will be a bit slower week than usual, since I am planning to go\noffline for a week or so starting around Apr 21st.\n\nCopies of the source code to Git live in many repositories, and the\nfollowing is a list of the ones I push into or their mirrors.  Some\nrepositories have only a subset of branches.\n\nWith maint, master, next, seen, todo:\n\n\tgit://git.kernel.org/pub/scm/git/git.git/\n\tgit://repo.or.cz/alt-git.git/\n\thttps://kernel.googlesource.com/pub/scm/git/git/\n\thttps://github.com/git/git/\n\thttps://gitlab.com/git-vcs/git/\n\nWith all the integration branches and topics broken out:\n\n\thttps://github.com/gitster/git/\n\nEven though the preformatted documentation in HTML and man format\nare not sources, they are published in these repositories for\nconvenience (replace \"htmldocs\" with \"manpages\" for the manual\npages):\n\n\tgit://git.kernel.org/pub/scm/git/git-htmldocs.git/\n\thttps://github.com/gitster/git-htmldocs.git/\n\nRelease tarballs are available at:\n\n\thttps://www.kernel.org/pub/software/scm/git/\n\n--------------------------------------------------\n[Graduated to 'master']\n\n* ah/merge-ort-ubsan-fix (2021-04-12) 1 commit\n  (merged to 'next' on 2021-04-13 at 41713a32bd)\n + merge-ort: only do pointer arithmetic for non-empty lists\n\n Code clean-up for merge-ort backend.\n\n\n* en/ort-perf-batch-10 (2021-03-18) 8 commits\n  (merged to 'next' on 2021-04-07 at 9826d89311)\n + diffcore-rename: determine which relevant_sources are no longer relevant\n + merge-ort: record the reason that we want a rename for a file\n + diffcore-rename: add computation of number of unknown renames\n + diffcore-rename: check if we have enough renames for directories early on\n + diffcore-rename: only compute dir_rename_count for relevant directories\n + merge-ort: record the reason that we want a rename for a directory\n + merge-ort, diffcore-rename: tweak dirs_removed and relevant_source type\n + diffcore-rename: take advantage of \"majority rules\" to skip more renames\n (this branch is used by en/ort-perf-batch-11 and en/ort-readiness.)\n\n Various rename detection optimization to help \"ort\" merge strategy\n backend.\n\n\n* en/ort-readiness (2021-03-20) 13 commits\n  (merged to 'next' on 2021-04-08 at 20283a3f10)\n + Add testing with merge-ort merge strategy\n + t6423: mark remaining expected failure under merge-ort as such\n + Revert \"merge-ort: ignore the directory rename split conflict for now\"\n + merge-recursive: add a bunch of FIXME comments documenting known bugs\n + merge-ort: write $GIT_DIR/AUTO_MERGE whenever we hit a conflict\n + t: mark several submodule merging tests as fixed under merge-ort\n + merge-ort: implement CE_SKIP_WORKTREE handling with conflicted entries\n + t6428: new test for SKIP_WORKTREE handling and conflicts\n + merge-ort: support subtree shifting\n + merge-ort: let renormalization change modify/delete into clean delete\n + merge-ort: have ll_merge() use a special attr_index for renormalization\n + merge-ort: add a special minimal index just for renormalization\n + merge-ort: use STABLE_QSORT instead of QSORT where required\n (this branch is used by en/ort-perf-batch-11; uses en/ort-perf-batch-10.)\n\n Plug the ort merge backend throughout the rest of the system, and\n start testing it as a replacement for the recursive backend.\n\n--------------------------------------------------\n[New Topics]\n\n* ba/object-info (2021-04-15) 2 commits\n - SQUASH???\n - object-info: support for retrieving object info\n\n Over-the-wire protocol learns a new request type to ask for object\n sizes given a list of object names.\n\n\n* js/access-nul-emulation-on-windows (2021-04-16) 1 commit\n  (merged to 'next' on 2021-04-16 at 3017437e51)\n + msvc: avoid calling `access(\"NUL\", flags)`\n\n Portability fix.\n\n Will merge to 'master'.\n\n\n* zh/format-ref-array-optim (2021-04-19) 2 commits\n - ref-filter: reuse output buffer\n - ref-filter: get rid of show_ref_array_item\n\n \"git (branch|tag) --format=...\" has been micro-optimized.\n\n Almost there?\n\n\n* vs/completion-with-set-u (2021-04-16) 1 commit\n - completion: avoid aliased command lookup error in nounset mode\n\n Effort to make the command line completion (in contrib/) safe with\n \"set -u\" continues.\n\n Will merge to 'next'.\n\n\n* hn/prep-tests-for-reftable (2021-04-19) 18 commits\n - t1415: set REFFILES for test specific to storage format\n - t4202: mark bogus head hash test with REFFILES\n - t7003: check reflog existence only for REFFILES\n - t7900: mark pack-refs tests as REFFILES\n - t1404: mark tests that muck with .git directly as REFFILES.\n - t2017: mark --orphan/logAllRefUpdates=false test as REFFILES\n - t1414: mark corruption test with REFFILES\n - t1407: require REFFILES for for_each_reflog test\n - test-lib: provide test prereq REFFILES\n - t5304: use \"reflog expire --all\" to clear the reflog\n - t7003: use rev-parse rather than FS inspection\n - t5000: inspect HEAD using git-rev-parse\n - t1301: fix typo in error message\n - t1413: use tar to save and restore entire .git directory\n - t1401-symbolic-ref: avoid direct filesystem access\n - t5601: read HEAD using rev-parse\n - t9300: check ref existence using git-rev-parse rather than FS check\n - t4202: split testcase for invalid HEAD symref and HEAD hash\n\n Preliminary clean-up of tests before the main reftable changes\n hits the codebase.\n\n\n* ps/config-env-option-with-separate-value (2021-04-19) 2 commits\n - git: support separate arg for `--config-env`'s value\n - git.txt: fix synopsis of `--config-env` missing the equals sign\n\n \"git --config-env var=val cmd\" weren't accepted (only\n --config-env=var=val was).\n\n--------------------------------------------------\n[Stalled]\n\n* dl/complete-stash (2021-03-24) 3 commits\n  (merged to 'next' on 2021-03-24 at ce573a99cc)\n + git-completion.bash: use __gitcomp_builtin() in _git_stash()\n + git-completion.bash: extract from else in _git_stash()\n + git-completion.bash: pass $__git_subcommand_idx from __git_main()\n\n Update \"git stash branch<TAB>\" command line completion (in contrib/).\n\n On hold.  Probably needs either a reroll or incremental refinements.\n cf. <20210327183554.GD2271@szeder.dev>\n\n\n* ag/merge-strategies-in-c (2021-03-17) 15 commits\n - sequencer: use the \"octopus\" merge strategy without forking\n - sequencer: use the \"resolve\" strategy without forking\n - merge: use the \"octopus\" strategy without forking\n - merge: use the \"resolve\" strategy without forking\n - merge-octopus: rewrite in C\n - merge-recursive: move better_branch_name() to merge.c\n - merge-resolve: rewrite in C\n - merge-one-file: rewrite in C\n - update-index: move add_cacheinfo() to read-cache.c\n - merge-index: add a new way to invoke `git-merge-one-file'\n - merge-index: drop the index\n - merge-index: libify merge_one_path() and merge_all()\n - t6060: add tests for removed files\n - t6060: modify multiple files to expose a possible issue with merge-index\n - t6407: modernise tests\n\n The resolve and octopus merge strategy backends have been rewritten\n in C.\n\n Expecting a (hopefully final) reroll.\n cf. <nycvar.QRO.7.76.6.2103241142220.50@tvgsbejvaqbjf.bet>\n\n\n* ab/unexpected-object-type (2021-04-14) 11 commits\n - fixup! object.c: stop supporting len == -1 in type_from_string_gently()\n - tag: don't misreport type of tagged objects in errors\n - object tests: add test for unexpected objects in tags\n - object.c: add and use oid_is_type_or_die_msg() function\n - object.c: add a utility function for \"expected type X, got Y\"\n - tree.c: fix misindentation in parse_tree_gently()\n - object-name.c: make dependency on object_type order more obvious\n - object-file.c: make oid_object_info() return \"enum object_type\"\n - object.c: make type_from_string() return \"enum object_type\"\n - object.c: refactor type_from_string_gently()\n - object.c: stop supporting len == -1 in type_from_string_gently()\n\n Error reporting upon object type mismatch has been improved\n\n\n* ab/describe-tests-fix (2021-04-12) 5 commits\n - describe tests: support -C in \"check_describe\"\n - describe tests: fix nested \"test_expect_success\" call\n - describe tests: don't rely on err.actual from \"check_describe\"\n - describe tests: refactor away from glob matching\n - describe tests: improve test for --work-tree & --dirty\n (this branch uses ab/test-lib-updates.)\n\n Various updates to tests around \"git describe\"\n\n\n* ab/pickaxe-pcre2 (2021-04-12) 22 commits\n - xdiff-interface: replace discard_hunk_line() with a flag\n - xdiff users: use designated initializers for out_line\n - pickaxe -G: don't special-case create/delete\n - pickaxe -G: terminate early on matching lines\n - xdiff-interface: allow early return from xdiff_emit_line_fn\n - xdiff-interface: prepare for allowing early return\n - pickaxe -S: slightly optimize contains()\n - pickaxe: rename variables in has_changes() for brevity\n - pickaxe -S: support content with NULs under --pickaxe-regex\n - pickaxe: assert that we must have a needle under -G or -S\n - pickaxe: refactor function selection in diffcore-pickaxe()\n - perf: add performance test for pickaxe\n - pickaxe/style: consolidate declarations and assignments\n - diff.h: move pickaxe fields together again\n - pickaxe: die when --find-object and --pickaxe-all are combined\n - pickaxe: die when -G and --pickaxe-regex are combined\n - pickaxe tests: add missing test for --no-pickaxe-regex being an error\n - pickaxe tests: test for -G, -S and --find-object incompatibility\n - pickaxe tests: add test for \"log -S\" not being a regex\n - pickaxe tests: add test for diffgrep_consume() internals\n - pickaxe tests: refactor to use test_commit --append --printf\n - grep/pcre2 tests: reword comments referring to kwset\n (this branch uses ab/test-lib-updates.)\n\n Rewrite the backend for \"diff -G/-S\" to use pcre2 engine when\n available.\n\n\n* es/config-hooks (2021-03-10) 36 commits\n . run-command: stop thinking about hooks\n . git-send-email: use 'git hook run' for 'sendemail-validate'\n . bugreport: use hook_exists instead of find_hook\n . receive-pack: convert receive hooks to hook.h\n . post-update: use hook.h library\n . proc-receive: acquire hook list from hook.h\n . receive-pack: convert 'update' hook to hook.h\n . reference-transaction: look for hooks in config\n . transport: convert pre-push hook to use config\n . hook: convert 'post-rewrite' hook to config\n . hooks: convert 'post-checkout' hook to hook library\n . git-p4: use 'git hook' to run hooks\n . receive-pack: convert push-to-checkout hook to hook.h\n . read-cache: convert post-index-change hook to use config\n . rebase: teach pre-rebase to use hook.h\n . gc: use hook library for pre-auto-gc hook\n . merge: use config-based hooks for post-merge hook\n . am: convert applypatch hooks to use config\n . commit: use config-based hooks\n . hooks: allow callers to capture output\n . run-command: allow capturing of collated output\n . hook: provide stdin by string_list or callback\n . run-command: add stdin callback for parallelization\n . hook: allow specifying working directory for hooks\n . hook: allow parallel hook execution\n . run-command: allow stdin for run_processes_parallel\n . hook: support passing stdin to hooks\n . hook: introduce hook_exists()\n . hook: add 'run' subcommand\n . parse-options: parse into strvec\n . hook: implement hookcmd.<name>.skip\n . hook: teach hook.runHookDir\n . hook: include hookdir hook in list\n . hook: add list command\n . hook: scaffolding for git-hook subcommand\n . doc: propose hooks managed by the config\n\n The \"hooks defined in config\" topic.\n\n--------------------------------------------------\n[Cooking]\n\n* ab/detox-gettext-tests (2021-04-13) 1 commit\n  (merged to 'next' on 2021-04-15 at db0da2903a)\n + tests: remove all uses of test_i18cmp\n\n Test clean-up.\n\n Will merge to 'master'.\n\n\n* ab/fsck-unexpected-type (2021-04-13) 6 commits\n - fsck: report invalid object type-path combinations\n - fsck: report invalid types recorded in objects\n - object-store.h: move read_loose_object() below 'struct object_info'\n - fsck: don't hard die on invalid object types\n - fsck tests: refactor one test to use a sub-repo\n - cache.h: move object functions to object-store.h\n\n \"git fsck\" has been taught to report mismatch between expected and\n actual types of an object better.\n\n\n* ab/usage-error-docs (2021-04-13) 3 commits\n  (merged to 'next' on 2021-04-15 at dbbbaa5eea)\n + api docs: document that BUG() emits a trace2 error event\n + api docs: document BUG() in api-error-handling.txt\n + usage.c: don't copy/paste the same comment three times\n\n Documentation updates, with unrelated comment updates, too.\n\n Will merge to 'master'.\n\n\n* jk/promisor-optim (2021-04-13) 3 commits\n  (merged to 'next' on 2021-04-15 at 41f303ef9b)\n + revision: avoid parsing with --exclude-promisor-objects\n + lookup_unknown_object(): take a repository argument\n + is_promisor_object(): free tree buffer after parsing\n (this branch is used by rs/repack-without-loosening-promised-objects.)\n\n Handling of \"promisor packs\" that allows certain objects to be\n missing and lazily retrievable has been optimized (a bit).\n\n Will merge to 'master'.\n\n\n* so/log-diff-merge (2021-04-16) 5 commits\n  (merged to 'next' on 2021-04-17 at 6c1eba8ee3)\n + doc/diff-options: document new --diff-merges features\n + diff-merges: introduce log.diffMerges config variable\n + diff-merges: adapt -m to enable default diff format\n + diff-merges: refactor set_diff_merges()\n + diff-merges: introduce --diff-merges=on\n (this branch uses sg/bugreport-fixes.)\n\n \"git log\" learned \"--diff-merges=<style>\" option, with an\n associated configuration variable log.diffMerges.\n\n Will merge to 'master'.\n\n\n* rs/repack-without-loosening-promised-objects (2021-04-19) 1 commit\n - repack: avoid loosening promisor objects in partial clones\n (this branch uses jk/promisor-optim.)\n\n \"git repack -A -d\" in a partial clone unnecessarily loosened\n objects in promisor pack.\n\n Almost there.\n cf. <20210419191553.581877-1-jonathantanmy@google.com>\n cf. <xmqqa6pt98j4.fsf@gitster.g>\n\n\n* jc/doc-do-not-capitalize-clarification (2021-04-14) 1 commit\n  (merged to 'next' on 2021-04-15 at 873f7a1f84)\n + doc: clarify \"do not capitalize the first word\" rule\n\n Doc update for developers.\n\n Will merge to 'master'.\n\n\n* mt/pkt-write-errors (2021-04-15) 1 commit\n  (merged to 'next' on 2021-04-16 at 4a82d89ff3)\n + pkt-line: do not report packet write errors twice\n\n When packet_write() fails, we gave an extra error message\n unnecessarily, which has been corrected.\n\n Will merge to 'master'.\n\n\n* ow/push-quiet-set-upstream (2021-04-15) 1 commit\n  (merged to 'next' on 2021-04-16 at 9466d4ef38)\n + transport: respect verbosity when setting upstream\n\n \"git push --quiet --set-upstream\" was not quiet when setting the\n upstream branch configuration, which has been corrected.\n\n Will merge to 'master'.\n\n\n* jt/fetch-pack-request-fix (2021-04-08) 1 commit\n  (merged to 'next' on 2021-04-15 at 25c02ce3c3)\n + fetch-pack: buffer object-format with other args\n (this branch is used by jt/push-negotiation.)\n\n Will merge to 'master'.\n\n\n* jt/push-negotiation (2021-04-08) 6 commits\n - send-pack: support push negotiation\n - fetch: teach independent negotiation (no packfile)\n - fetch-pack: refactor command and capability write\n - fetch-pack: refactor add_haves()\n - fetch-pack: refactor process_acks()\n - Merge branch 'jt/fetch-pack-request-fix' into jt/push-negotiation\n (this branch uses jt/fetch-pack-request-fix.)\n\n \"git push\" learns to discover common ancestor with the receiving\n end over protocol v2.\n\n Waiting for reviews.\n\n\n* ab/doc-lint (2021-04-10) 7 commits\n - docs: fix linting issues due to incorrect relative section order\n - doc lint: lint relative section order\n - doc lint: lint and fix missing \"GIT\" end sections\n - doc lint: fix bugs in, simplify and improve lint script\n - doc lint: Perl \"strict\" and \"warnings\" in lint-gitlink.perl\n - Documentation/Makefile: make doc.dep dependencies a variable again\n - Documentation/Makefile: make $(wildcard howto/*.txt) a var\n\n Dev support.\n\n Waiting for reviews to conclude.\n\n\n* ab/rebase-no-reschedule-failed-exec (2021-04-10) 2 commits\n - rebase: don't override --no-reschedule-failed-exec with config\n - rebase tests: camel-case rebase.rescheduleFailedExec consistently\n\n \"git rebase --[no-]reschedule-failed-exec\" did not work well with\n its configuration variable, which has been corrected.\n\n Waiting for reviews to conclude.\n\n\n* ah/plugleaks (2021-04-10) 9 commits\n - builtin/rm: avoid leaking pathspec and seen\n - builtin/rebase: release git_format_patch_opt too\n - builtin/for-each-ref: free filter and UNLEAK sorting.\n - builtin/checkout: clear pending objects after diffing\n - builtin/check-ignore: clear_pathspec before returning\n - builtin/bugreport: don't leak prefixed filename\n - branch: FREE_AND_NULL instead of NULL'ing real_ref\n - bloom: clear each bloom_key after use\n - wt-status: fix multiple small leaks\n\n Plug various leans reported by LSAN.\n\n Waiting for reroll.\n What is queued here is a subset of the original series that\n looked (at least to me) to be obviously correct.\n\n\n* bc/hash-transition-interop-part-1 (2021-04-19) 17 commits\n - http-push: set algorithm when reading object ID\n - fixup! hash: provide per-algorithm null OIDs\n - hex: print objects using the hash algorithm member\n - hex: default to the_hash_algo on zero algorithm value\n - builtin/pack-objects: avoid using struct object_id for pack hash\n - commit-graph: don't store file hashes as struct object_id\n - builtin/show-index: set the algorithm for object IDs\n - hash: provide per-algorithm null OIDs\n - hash: set and copy algo field in struct object_id\n - cache: compare the entire buffer for struct object_id\n - builtin/pack-redundant: avoid casting buffers to struct object_id\n - Use the final_oid_fn to finalize hashing of object IDs\n - hash: add a function to finalize object IDs\n - Always use oidread to read into struct object_id\n - cache: add an algo member to struct object_id\n - builtin/hash-object: allow literally hashing with a given algorithm\n - sha1-file: allow hashing objects literally with any algorithm\n\n SHA-256 transition.\n\n Expecting a reroll.\n cf. <YHzmjhLy2QjDefXy@camp.crustytoothpaste.net>\n\n\n* ps/rev-list-object-type-filter (2021-04-19) 8 commits\n - rev-list: allow filtering of provided items\n - pack-bitmap: implement combined filter\n - pack-bitmap: implement object type filter\n - list-objects: implement object type filter\n - list-objects: support filtering by tag and commit\n - list-objects: move tag processing into its own function\n - revision: mark commit parents as NOT_USER_GIVEN\n - uploadpack.txt: document implication of `uploadpackfilter.allow`\n\n \"git rev-list\" learns the \"--filter=object:type=<type>\" option,\n which can be used to exclude objects of the given kind from the\n packfile generated by pack-objects.\n\n Will merge to 'next'?\n cf. <cover.1618832437.git.ps@pks.im>\n\n\n* tb/multi-pack-bitmaps (2021-04-10) 23 commits\n - p5326: perf tests for MIDX bitmaps\n - p5310: extract full and partial bitmap tests\n - midx: respect 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP'\n - t7700: update to work with MIDX bitmap test knob\n - t5319: don't write MIDX bitmaps in t5319\n - t5310: disable GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP\n - t5326: test multi-pack bitmap behavior\n - t/helper/test-read-midx.c: add --checksum mode\n - t5310: move some tests to lib-bitmap.sh\n - pack-bitmap: write multi-pack bitmaps\n - pack-bitmap: read multi-pack bitmaps\n - pack-bitmap.c: introduce 'bitmap_is_preferred_refname()'\n - pack-bitmap.c: introduce 'nth_bitmap_object_oid()'\n - pack-bitmap.c: introduce 'bitmap_num_objects()'\n - midx: respect 'core.multiPackIndex' when writing\n - midx: clear auxiliary .rev after replacing the MIDX\n - midx: make a number of functions non-static\n - Documentation: describe MIDX-based bitmaps\n - Documentation: build 'technical/bitmap-format' by default\n - pack-bitmap-write.c: free existing bitmaps\n - pack-bitmap-write.c: gracefully fail to write non-closed bitmaps\n - pack-bitmap.c: harden 'test_bitmap_walk()' to check type bitmaps\n - Merge branch 'tb/pack-preferred-tips-to-give-bitmap' into tb/multi-pack-bitmaps\n\n The reachability bitmap file used to be generated only for a single\n pack, but now we've learned to generate bitmaps for history that\n span across multiple packfiles.\n\n Waiting for reviews.\n cf. <cover.1617991824.git.me@ttaylorr.com>\n\n\n* ab/svn-tests-set-e-fix (2021-04-12) 2 commits\n - svn tests: refactor away a \"set -e\" in test body\n - svn tests: remove legacy re-setup from init-clone test\n\n Test clean-up.\n\n Waiting for reviews.\n cf. <87mttx121j.fsf@evledraar.gmail.com>\n\n\n* ab/test-lib-updates (2021-04-12) 16 commits\n - test-lib-functions: remove last two parameter count assertions\n - Revert and amend \"test-lib-functions: assert correct parameter count\"\n - test-lib-functions: use \"return 1\" instead of \"false\"\n - test-lib-functions: normalize test_path_is_missing() debugging\n - test-lib: modernize test_create_repo() function\n - test-lib: do not show advice about init.defaultBranch under --verbose\n - test-lib: reformat argument list in test_create_repo()\n - submodule tests: use symbolic-ref --short to discover branch name\n - test-lib functions: add --printf option to test_commit\n - describe tests: convert setup to use test_commit\n - test-lib functions: add an --annotated-tag option to \"test_commit\"\n - test-lib-functions: document test_commit --no-tag\n - test-lib-functions: reword \"test_commit --append\" docs\n - test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable\n - test-lib: bring $remove_trash out of retirement\n - check-non-portable-shell: complain about \"test\" a/-o instead of &&/||\n (this branch is used by ab/describe-tests-fix and ab/pickaxe-pcre2.)\n\n Test clean-up.\n\n Waiting for review discussion to conclude.\n\n\n* ao/p4-avoid-decoding (2021-04-12) 2 commits\n - git-p4: do not decode data from perforce by default\n - git-p4: avoid decoding more data from perforce\n\n \"git p4\" in Python-2 days used to accept a lot more kinds of data\n from Perforce server as uninterrupted byte sequence, but after\n switching to Python-3, too many things are expected to be in UTF-8,\n which broke traditional use cases.\n\n Waiting for reviews.\n\n\n* hn/refs-trace-errno (2021-04-12) 1 commit\n - refs: print errno for read_raw_ref if GIT_TRACE_REFS is set\n\n Show errno in the trace output in the error codepath that calls\n read_raw_ref method.\n\n Waiting for reviews to conclude.\n cf. <xmqq4kgbb2ic.fsf@gitster.g>\n\n\n* hn/reftable-tables-doc-update (2021-04-12) 1 commit\n  (merged to 'next' on 2021-04-13 at cdadb2c621)\n + reftable: document an alternate cleanup method on Windows\n\n Doc updte.\n\n Will merge to 'master'.\n\n\n* jk/pack-objects-bitmap-progress-fix (2021-04-12) 1 commit\n  (merged to 'next' on 2021-04-13 at bbe18a7b3a)\n + pack-objects: update \"nr_seen\" progress based on pack-reused count\n\n When \"git pack-objects\" makes a literal copy of a part of existing\n packfile using the reachability bitmaps, its update to the progress\n meter was broken.\n\n Will merge to 'master'.\n\n\n* ma/t0091-bugreport-fix (2021-04-12) 1 commit\n - t0091-bugreport.sh: actually verify some content of report\n\n Test fix.\n\n Expecting a reroll.\n cf. <YHYZTLl90rkWWVOr@google.com>, <87a6q22dei.fsf@evledraar.gmail.com>\n\n\n* ps/config-global-override (2021-04-19) 3 commits\n - config: allow overriding of global and system configuration\n - config: unify code paths to get global config paths\n - config: rename `git_etc_config()`\n\n Replace GIT_CONFIG_NOSYSTEM mechanism to decline from reading the\n system-wide configuration file with GIT_CONFIG_SYSTEM that lets\n users specify from which file to read the system-wide configuration\n (setting it to an empty file would essentially be the same as\n setting NOSYSTEM), and introduce GIT_CONFIG_GLOBAL to override the\n per-user configuration in $HOME/.gitconfig.\n\n Will merge to 'next'?\n Reverted from 'next' to fix GIT_CONFIG_NOSYSTEM regression.\n\n\n* ds/maintenance-prefetch-fix (2021-04-16) 4 commits\n  (merged to 'next' on 2021-04-16 at 0a1818e235)\n + maintenance: respect remote.*.skipFetchAll\n + maintenance: use 'git fetch --prefetch'\n + fetch: add --prefetch option\n + maintenance: simplify prefetch logic\n\n The prefetch task in \"git maintenance\" assumed that \"git fetch\"\n from any remote would fetch all its local branches, which would\n fetch too much if the user is interested in only a subset of\n branches there.\n\n Will merge to 'master'.\n\n\n* mr/bisect-in-c-4 (2021-04-11) 4 commits\n - bisect--helper: retire `--bisect-next-check` subcommand\n - bisect--helper: reimplement `bisect_run` shell function in C\n - bisect--helper: reimplement `bisect_visualize()`shell function in C\n - run-command: make `exists_in_PATH()` non-static\n\n The codepaths involved in running \"git bisect visualize\" and \"git\n bisect run\" has been rewritten in C.\n\n Expecting a reroll.\n cf. <xmqq35vwh8qk.fsf@gitster.g>, <xmqqy2doftrj.fsf@gitster.g>\n May want to boost the test coverage.\n\n\n* sg/bugreport-fixes (2021-04-08) 1 commit\n  (merged to 'next' on 2021-04-16 at e93602f4df)\n + Makefile: add missing dependencies of 'config-list.h'\n (this branch is used by so/log-diff-merge.)\n\n The dependencies for config-list.h and command-list.h were broken\n when the former was split out of the latter, which has been\n corrected.\n\n Will merge to 'master'.\n\n\n* mt/add-rm-in-sparse-checkout (2021-04-08) 7 commits\n - rm: honor sparse checkout patterns\n - add: warn when asked to update SKIP_WORKTREE entries\n - refresh_index(): add flag to ignore SKIP_WORKTREE entries\n - pathspec: allow to ignore SKIP_WORKTREE entries on index matching\n - add: make --chmod and --renormalize honor sparse checkouts\n - t3705: add tests for `git add` in sparse checkouts\n - add: include magic part of pathspec on --refresh error\n\n \"git add\" and \"git rm\" learned not to touch those paths that are\n outside of sparse checkout.\n\n\n* jh/rfc-builtin-fsmonitor (2021-04-08) 23 commits\n - t7527: test status with untracked-cache and fsmonitor--daemon\n - p7519: add fsmonitor--daemon\n - t7527: create test for fsmonitor--daemon\n - fsmonitor: force update index when fsmonitor token advances\n - fsmonitor--daemon: use a cookie file to sync with file system\n - fsmonitor--daemon:: introduce client delay for testing\n - fsmonitor--daemon: periodically truncate list of modified files\n - fsmonitor--daemon: implement handle_client callback\n - fsmonitor-fs-listen-macos: implement FSEvent listener on MacOS\n - fsmonitor-fs-listen-macos: add macos header files for FSEvent\n - fsmonitor-fs-listen-win32: implement FSMonitor backend on Windows\n - fsmonitor--daemon: create token-based changed path cache\n - fsmonitor--daemon: define token-ids\n - fsmonitor--daemon: add pathname classification\n - fsmonitor--daemon: implement daemon command options\n - fsmonitor-fs-listen-macos: stub in backend for MacOS\n - fsmonitor-fs-listen-win32: stub in backend for Windows\n - fsmonitor--daemon: implement client command options\n - fsmonitor--daemon: add a built-in fsmonitor daemon\n - fsmonitor: introduce `core.useBuiltinFSMonitor` to call the daemon via IPC\n - config: FSMonitor is repository-specific\n - fsmonitor-ipc: create client routines for git-fsmonitor--daemon\n - Merge branch 'jh/simple-ipc' into jh/rfc-builtin-fsmonitor\n\n An attempt to write and ship with a watchman equivalent tailored\n for our use.\n\n Will discard.\n ... as nobody seems to be interested.\n\n\n* zh/trailer-cmd (2021-04-17) 2 commits\n - trailer: add new .cmd config option\n - docs: correct description of .command\n\n The way the command line specified by the trailer.<token>.command\n configuration variable receives the end-user supplied value was\n both error prone and misleading.  An alternative to achieve the\n same goal in a safer and more intuitive way has been added, as\n the trailer.<token>.cmd configuration variable, to replace it.\n\n Waiting for reviews to conclude.\n cf. <xmqq5z0kbl8x.fsf@gitster.g>\n\n\n* ab/userdiff-tests (2021-04-08) 9 commits\n  (merged to 'next' on 2021-04-13 at 35fb0e853d)\n + blame tests: simplify userdiff driver test\n + blame tests: don't rely on t/t4018/ directory\n + userdiff: remove support for \"broken\" tests\n + userdiff tests: list builtin drivers via test-tool\n + userdiff tests: explicitly test \"default\" pattern\n + userdiff: add and use for_each_userdiff_driver()\n + userdiff style: normalize pascal regex declaration\n + userdiff style: declare patterns with consistent style\n + userdiff style: re-order drivers in alphabetical order\n\n A bit of code clean-up and a lot of test clean-up around userdiff\n area.\n\n Will merge to 'master'.\n\n\n* ar/userdiff-scheme (2021-04-08) 1 commit\n  (merged to 'next' on 2021-04-13 at eb80d55a8c)\n + userdiff: add support for Scheme\n\n Userdiff patterns for \"Scheme\" has been added.\n\n Will merge to 'master'.\n\n\n* ds/sparse-index (2021-03-30) 21 commits\n  (merged to 'next' on 2021-04-07 at f1290a7929)\n + p2000: add sparse-index repos\n + sparse-index: loose integration with cache_tree_verify()\n + cache-tree: integrate with sparse directory entries\n + sparse-checkout: disable sparse-index\n + sparse-checkout: toggle sparse index from builtin\n + sparse-index: add index.sparse config option\n + sparse-index: check index conversion happens\n + unpack-trees: allow sparse directories\n + submodule: sparse-index should not collapse links\n + sparse-index: convert from full to sparse\n + sparse-index: add 'sdir' index extension\n + sparse-checkout: hold pattern list in index\n + unpack-trees: ensure full index\n + test-tool: don't force full index\n + test-read-cache: print cache entries with --table\n + t1092: compare sparse-checkout to sparse-index\n + sparse-index: implement ensure_full_index()\n + sparse-index: add guard to ensure full index\n + t1092: clean up script quoting\n + t/perf: add performance test for sparse operations\n + sparse-index: design doc and format update\n (this branch is used by ds/sparse-index-protections.)\n\n Both in-core and on-disk index has been updated to optionally omit\n individual entries and replace them with the tree object that\n corresponds to the directory that contains them when the \"cone\"\n mode of sparse checkout is in use.\n\n On hold, waiting for the \"protections\" topic to stablize.\n\n\n* mt/parallel-checkout-part-2 (2021-04-19) 5 commits\n - parallel-checkout: add design documentation\n - parallel-checkout: support progress displaying\n - parallel-checkout: add configuration options\n - parallel-checkout: make it truly parallel\n - unpack-trees: add basic support for parallel checkout\n\n The checkout machinery has been taught to perform the actual\n write-out of the files in parallel when able.\n\n Will merge to 'next'.\n\n\n* ds/sparse-index-protections (2021-04-14) 26 commits\n  (merged to 'next' on 2021-04-17 at f1c40f89ba)\n + name-hash: use expand_to_path()\n + sparse-index: expand_to_path()\n + name-hash: don't add directories to name_hash\n + revision: ensure full index\n + resolve-undo: ensure full index\n + read-cache: ensure full index\n + pathspec: ensure full index\n + merge-recursive: ensure full index\n + entry: ensure full index\n + dir: ensure full index\n + update-index: ensure full index\n + stash: ensure full index\n + rm: ensure full index\n + merge-index: ensure full index\n + ls-files: ensure full index\n + grep: ensure full index\n + fsck: ensure full index\n + difftool: ensure full index\n + commit: ensure full index\n + checkout: ensure full index\n + checkout-index: ensure full index\n + add: ensure full index\n + cache: move ensure_full_index() to cache.h\n + read-cache: expand on query into sparse-directory entry\n + *: remove 'const' qualifier for struct index_state\n + sparse-index: API protection strategy\n (this branch uses ds/sparse-index.)\n\n Builds on top of the sparse-index infrastructure to mark operations\n that are not ready to mark with the sparse index, causing them to\n fall back on fully-populated index that they always have worked with.\n\n Will merge to 'master'.\n\n\n* hn/reftable (2021-04-14) 21 commits\n . SQUASH??? reftable: prepare for hash-algo recorded in each oid\n . Add \"test-tool dump-reftable\" command.\n . git-prompt: prepare for reftable refs backend\n . Reftable support for git-core\n . reftable: add dump utility\n . reftable: implement stack, a mutable database of reftable files.\n . reftable: implement refname validation\n . reftable: add merged table view\n . reftable: add a heap-based priority queue for reftable records\n . reftable: reftable file level tests\n . reftable: read reftable files\n . reftable: generic interface to tables\n . reftable: write reftable files\n . reftable: a generic binary tree implementation\n . reftable: reading/writing blocks\n . reftable: (de)serialization for the polymorphic record type.\n . reftable: add blocksource, an abstraction for random access reads\n . reftable: utility functions\n . reftable: add error related functionality\n . reftable: add LICENSE\n . init-db: set the_repository->hash_algo early on\n\n The \"reftable\" backend for the refs API.\n\n Reroll exists; needs picking up.\n cf. <pull.847.v7.git.git.1618832276.gitgitgadget@gmail.com>\n\n--------------------------------------------------\n[Discarded]\n\n* ab/make-cocci-dedup (2021-03-22) 4 commits\n . Makefile/coccicheck: set SPATCH_BATCH_SIZE to 8\n . Makefile/coccicheck: allow for setting xargs concurrency\n . Makefile/coccicheck: speed up and fix bug with duplicate hunks\n . Makefile/coccicheck: add comment heading for all SPATCH flags\n\n Coccicheck update.\n\n Retracted.\n cf. <cover.1616414951.git.avarab@gmail.com>\n cf. <87k0psnzv5.fsf@evledraar.gmail.com>\n\n\n* ab/tests-cleanup-around-sha1 (2021-03-10) 4 commits\n . tests: get rid of $_x05 from the test suite\n . shortlog tests: rewrite to get rid of --abbrev=35 hardcoding\n . test-lib: remove unused $_x40 and $_z40 variables\n . git-bisect: remove unused SHA-1 $x40 shell variable\n\n Remove variables that hold regexp and glob that match fixed number\n of hexadecimal digits from the test suite.\n\n Retracted, to be replaced by another series.\n cf. <878s67o09v.fsf@evledraar.gmail.com>\n"},{"id":"422428","messageId":"CAHd-oW7n-wc+TBYjZ1sh6tPc18mB2pXyBh5L382rG72+0RGafw@mail.gmail.com","threadId":"55523","inReplyTo":"xmqqtuo17t6t.fsf@gitster.g","subject":"Re: What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"Matheus Tavares Bernardino","fromEmail":"matheus.bernardino@usp.br","sentAt":"2021-04-20T13:23:38Z","receivedAt":"2021-04-20T13:23:53Z","isPatch":false,"sender":{"key":"matheus.tavb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/12701583?v=4"},"body":"Hi, Junio\n\nOn Mon, Apr 19, 2021 at 8:25 PM Junio C Hamano <gitster@pobox.com> wrote:\n>\n> * mt/add-rm-in-sparse-checkout (2021-04-08) 7 commits\n>  - rm: honor sparse checkout patterns\n>  - add: warn when asked to update SKIP_WORKTREE entries\n>  - refresh_index(): add flag to ignore SKIP_WORKTREE entries\n>  - pathspec: allow to ignore SKIP_WORKTREE entries on index matching\n>  - add: make --chmod and --renormalize honor sparse checkouts\n>  - t3705: add tests for `git add` in sparse checkouts\n>  - add: include magic part of pathspec on --refresh error\n>\n>  \"git add\" and \"git rm\" learned not to touch those paths that are\n>  outside of sparse checkout.\n\nOops, sorry I ended up not replying to your recent message [1] about\nwhether or not this was ready for 'next'. But yeah, I don't have any\npending changes planned; I think it's ready :) Elijah also signaled he\nis OK with the current version [2].\n\n[1]: https://lore.kernel.org/git/xmqqzgxxkj8v.fsf@gitster.g/\n[2]: https://lore.kernel.org/git/CABPp-BE=KfQTj0ad3uBS90MA1EDkHFV8kXi7xbEMDcnoi-MiOg@mail.gmail.com/\n"},{"id":"422438","messageId":"87mttt2hcu.fsf@evledraar.gmail.com","threadId":"55523","inReplyTo":"xmqqtuo17t6t.fsf@gitster.g","subject":"Re: What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-04-20T13:52:33Z","receivedAt":"2021-04-20T13:52:37Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Tue, Apr 20 2021, Junio C Hamano wrote:\n\nComments on my outstanding serieses and related (you've indicated that\nthis summary was helpful, so I'll keep doing it).\n\n> * ab/unexpected-object-type (2021-04-14) 11 commits\n>  - fixup! object.c: stop supporting len == -1 in type_from_string_gently()\n>  - tag: don't misreport type of tagged objects in errors\n>  - object tests: add test for unexpected objects in tags\n>  - object.c: add and use oid_is_type_or_die_msg() function\n>  - object.c: add a utility function for \"expected type X, got Y\"\n>  - tree.c: fix misindentation in parse_tree_gently()\n>  - object-name.c: make dependency on object_type order more obvious\n>  - object-file.c: make oid_object_info() return \"enum object_type\"\n>  - object.c: make type_from_string() return \"enum object_type\"\n>  - object.c: refactor type_from_string_gently()\n>  - object.c: stop supporting len == -1 in type_from_string_gently()\n>\n>  Error reporting upon object type mismatch has been improved\n\nFor the v1 of this I see you picked up the middle of 3 serieses I\nsubmitted one on top of each other, and of course the need for the\n\"fixup!\" commit on top.\n\nI've just re-rolled these three at:\n\n * https://lore.kernel.org/git/cover-00.10-0000000000-20210420T124428Z-avarab@gmail.com\n * https://lore.kernel.org/git/cover-00.10-0000000000-20210420T125415Z-avarab@gmail.com\n * https://lore.kernel.org/git/cover-0.8-0000000000-20210420T133218Z-avarab@gmail.com\n\nHopefully you'll see fit to pick up all 3x this time. As noted before\nthese are all prep changes for some larger fsck changes where we\nmisreport object types in various cases.\n\n> * bc/hash-transition-interop-part-1 (2021-04-19) 17 commits\n>  - http-push: set algorithm when reading object ID\n>  - fixup! hash: provide per-algorithm null OIDs\n>  - hex: print objects using the hash algorithm member\n>  - hex: default to the_hash_algo on zero algorithm value\n>  - builtin/pack-objects: avoid using struct object_id for pack hash\n>  - commit-graph: don't store file hashes as struct object_id\n>  - builtin/show-index: set the algorithm for object IDs\n>  - hash: provide per-algorithm null OIDs\n>  - hash: set and copy algo field in struct object_id\n>  - cache: compare the entire buffer for struct object_id\n>  - builtin/pack-redundant: avoid casting buffers to struct object_id\n>  - Use the final_oid_fn to finalize hashing of object IDs\n>  - hash: add a function to finalize object IDs\n>  - Always use oidread to read into struct object_id\n>  - cache: add an algo member to struct object_id\n>  - builtin/hash-object: allow literally hashing with a given algorithm\n>  - sha1-file: allow hashing objects literally with any algorithm\n>\n>  SHA-256 transition.\n>\n>  Expecting a reroll.\n>  cf. <YHzmjhLy2QjDefXy@camp.crustytoothpaste.net>\n\nThis has a textual conflict (no longer a semantic one) with the above\nab/unexpected-object-type etc.\n\nAs noted in\nhttps://lore.kernel.org/git/87mttx121j.fsf@evledraar.gmail.com/ I had\nquestions about the approach in hash-object.c, in particular I have\nPOC/WIP patches that make one of brian's TODO tests pass, by doing the\n\"we are in SHA256 mode\" earlier, which is also less code as we won't\nneed to add special handling to a large part of hash-object.c (or, in\nthe future, other such commands).\n\n> * ab/describe-tests-fix (2021-04-12) 5 commits\n>  - describe tests: support -C in \"check_describe\"\n>  - describe tests: fix nested \"test_expect_success\" call\n>  - describe tests: don't rely on err.actual from \"check_describe\"\n>  - describe tests: refactor away from glob matching\n>  - describe tests: improve test for --work-tree & --dirty\n>  (this branch uses ab/test-lib-updates.)\n>\n>  Various updates to tests around \"git describe\"\n\nAs noted in my reply to the last \"What's Cooking\" at\nhttps://lore.kernel.org/git/87mttx121j.fsf@evledraar.gmail.com/ this\ndepends on ab/test-lib-updates.\n\nI've re-rolled that today at at\nhttps://lore.kernel.org/git/cover-00.12-0000000000-20210420T121833Z-avarab@gmail.com/\n\nBut AFAICT this topic is ready & needs no further changes.\n\n> * ab/pickaxe-pcre2 (2021-04-12) 22 commits\n>  - xdiff-interface: replace discard_hunk_line() with a flag\n>  - xdiff users: use designated initializers for out_line\n>  - pickaxe -G: don't special-case create/delete\n>  - pickaxe -G: terminate early on matching lines\n>  - xdiff-interface: allow early return from xdiff_emit_line_fn\n>  - xdiff-interface: prepare for allowing early return\n>  - pickaxe -S: slightly optimize contains()\n>  - pickaxe: rename variables in has_changes() for brevity\n>  - pickaxe -S: support content with NULs under --pickaxe-regex\n>  - pickaxe: assert that we must have a needle under -G or -S\n>  - pickaxe: refactor function selection in diffcore-pickaxe()\n>  - perf: add performance test for pickaxe\n>  - pickaxe/style: consolidate declarations and assignments\n>  - diff.h: move pickaxe fields together again\n>  - pickaxe: die when --find-object and --pickaxe-all are combined\n>  - pickaxe: die when -G and --pickaxe-regex are combined\n>  - pickaxe tests: add missing test for --no-pickaxe-regex being an error\n>  - pickaxe tests: test for -G, -S and --find-object incompatibility\n>  - pickaxe tests: add test for \"log -S\" not being a regex\n>  - pickaxe tests: add test for diffgrep_consume() internals\n>  - pickaxe tests: refactor to use test_commit --append --printf\n>  - grep/pcre2 tests: reword comments referring to kwset\n>  (this branch uses ab/test-lib-updates.)\n>\n>  Rewrite the backend for \"diff -G/-S\" to use pcre2 engine when\n>  available.\n\nFrom my last reply to WC above:\n\n    Ditto for this series, i.e. it needed ab/test-lib-updates. There's\n    no outstanding comments on it, but of course that could just mean\n    \"not enough review\".\n\n    If anyone here cares about \"git log -G\" performance review this,\n    because it doesn't make it better, but is needed for a series of\n    mine that does improve it.\n\n> * ab/detox-gettext-tests (2021-04-13) 1 commit\n>   (merged to 'next' on 2021-04-15 at db0da2903a)\n>  + tests: remove all uses of test_i18cmp\n>\n>  Test clean-up.\n>\n>  Will merge to 'master'.\n\nThanks.\n\n> * ab/fsck-unexpected-type (2021-04-13) 6 commits\n>  - fsck: report invalid object type-path combinations\n>  - fsck: report invalid types recorded in objects\n>  - object-store.h: move read_loose_object() below 'struct object_info'\n>  - fsck: don't hard die on invalid object types\n>  - fsck tests: refactor one test to use a sub-repo\n>  - cache.h: move object functions to object-store.h\n>\n>  \"git fsck\" has been taught to report mismatch between expected and\n>  actual types of an object better.\n\nJeff King: *re-poke* per the mention the last WC: I.e. did you review\nthis?\n\n> * ab/usage-error-docs (2021-04-13) 3 commits\n>   (merged to 'next' on 2021-04-15 at dbbbaa5eea)\n>  + api docs: document that BUG() emits a trace2 error event\n>  + api docs: document BUG() in api-error-handling.txt\n>  + usage.c: don't copy/paste the same comment three times\n>\n>  Documentation updates, with unrelated comment updates, too.\n>\n>  Will merge to 'master'.\n\nThanks.\n\n> * ab/doc-lint (2021-04-10) 7 commits\n>  - docs: fix linting issues due to incorrect relative section order\n>  - doc lint: lint relative section order\n>  - doc lint: lint and fix missing \"GIT\" end sections\n>  - doc lint: fix bugs in, simplify and improve lint script\n>  - doc lint: Perl \"strict\" and \"warnings\" in lint-gitlink.perl\n>  - Documentation/Makefile: make doc.dep dependencies a variable again\n>  - Documentation/Makefile: make $(wildcard howto/*.txt) a var\n>\n>  Dev support.\n>\n>  Waiting for reviews to conclude.\n\nFrom my last reply to WC above:\n\n    FWIW I think the earlier version of this got thorough reviews, this\n    version is the same with trivial changes, plus two patches at the\n    end to add another lint check for doc section order:\n    https://lore.kernel.org/git/patch-6.7-8c294afe2a-20210409T145728Z-avarab@gmail.com/\n\n> * ab/rebase-no-reschedule-failed-exec (2021-04-10) 2 commits\n>  - rebase: don't override --no-reschedule-failed-exec with config\n>  - rebase tests: camel-case rebase.rescheduleFailedExec consistently\n>\n>  \"git rebase --[no-]reschedule-failed-exec\" did not work well with\n>  its configuration variable, which has been corrected.\n>\n>  Waiting for reviews to conclude.\n\nFrom my last reply to WC above:\n\n    Phillip Wood helped this along, and it looks good to him now:\n    https://lore.kernel.org/git/63774b95-7de2-b160-385b-6c7d99e867ed@gmail.com/\n\n> * ab/svn-tests-set-e-fix (2021-04-12) 2 commits\n>  - svn tests: refactor away a \"set -e\" in test body\n>  - svn tests: remove legacy re-setup from init-clone test\n>\n>  Test clean-up.\n>\n>  Waiting for reviews.\n>  cf. <87mttx121j.fsf@evledraar.gmail.com>\n\nFrom my last reply to WC above:\n\n    Eric Wong looked the pre-split v1 of this over and it looked good to\n    him: https://lore.kernel.org/git/20210228211407.GA3214@dcvr/\n\n    The v1 has no changes except the specific s/touch /> / pointed out\n    to him, and a commit message update:\n    https://lore.kernel.org/git/cover-0.2-00000000000-20210412T113247Z-avarab@gmail.com/\n\n> * ab/test-lib-updates (2021-04-12) 16 commits\n>  - test-lib-functions: remove last two parameter count assertions\n>  - Revert and amend \"test-lib-functions: assert correct parameter count\"\n>  - test-lib-functions: use \"return 1\" instead of \"false\"\n>  - test-lib-functions: normalize test_path_is_missing() debugging\n>  - test-lib: modernize test_create_repo() function\n>  - test-lib: do not show advice about init.defaultBranch under --verbose\n>  - test-lib: reformat argument list in test_create_repo()\n>  - submodule tests: use symbolic-ref --short to discover branch name\n>  - test-lib functions: add --printf option to test_commit\n>  - describe tests: convert setup to use test_commit\n>  - test-lib functions: add an --annotated-tag option to \"test_commit\"\n>  - test-lib-functions: document test_commit --no-tag\n>  - test-lib-functions: reword \"test_commit --append\" docs\n>  - test-lib tests: remove dead GIT_TEST_FRAMEWORK_SELFTEST variable\n>  - test-lib: bring $remove_trash out of retirement\n>  - check-non-portable-shell: complain about \"test\" a/-o instead of &&/||\n>  (this branch is used by ab/describe-tests-fix and ab/pickaxe-pcre2.)\n>\n>  Test clean-up.\n>\n>  Waiting for review discussion to conclude.\n\nI think with my re-roll today at\nhttps://lore.kernel.org/git/cover-00.12-0000000000-20210420T121833Z-avarab@gmail.com/\nthere's no further outstanding issues.\n\n> * ab/userdiff-tests (2021-04-08) 9 commits\n>   (merged to 'next' on 2021-04-13 at 35fb0e853d)\n>  + blame tests: simplify userdiff driver test\n>  + blame tests: don't rely on t/t4018/ directory\n>  + userdiff: remove support for \"broken\" tests\n>  + userdiff tests: list builtin drivers via test-tool\n>  + userdiff tests: explicitly test \"default\" pattern\n>  + userdiff: add and use for_each_userdiff_driver()\n>  + userdiff style: normalize pascal regex declaration\n>  + userdiff style: declare patterns with consistent style\n>  + userdiff style: re-order drivers in alphabetical order\n>\n>  A bit of code clean-up and a lot of test clean-up around userdiff\n>  area.\n>\n>  Will merge to 'master'.\n\nThanks.\n"},{"id":"422439","messageId":"e4bae5e3-48c2-d982-ca78-7f3ed4002a37@jeffhostetler.com","threadId":"55523","inReplyTo":"xmqqtuo17t6t.fsf@gitster.g","subject":"Re: What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"Jeff Hostetler","fromEmail":"git@jeffhostetler.com","sentAt":"2021-04-20T14:28:40Z","receivedAt":"2021-04-20T14:28:44Z","isPatch":false,"sender":{"key":"git@jeffhostetler.com","avatar":null},"body":"\n\nOn 4/19/21 7:25 PM, Junio C Hamano wrote:\n> \n> * jh/rfc-builtin-fsmonitor (2021-04-08) 23 commits\n>   - t7527: test status with untracked-cache and fsmonitor--daemon\n>   - p7519: add fsmonitor--daemon\n>   - t7527: create test for fsmonitor--daemon\n>   - fsmonitor: force update index when fsmonitor token advances\n>   - fsmonitor--daemon: use a cookie file to sync with file system\n>   - fsmonitor--daemon:: introduce client delay for testing\n>   - fsmonitor--daemon: periodically truncate list of modified files\n>   - fsmonitor--daemon: implement handle_client callback\n>   - fsmonitor-fs-listen-macos: implement FSEvent listener on MacOS\n>   - fsmonitor-fs-listen-macos: add macos header files for FSEvent\n>   - fsmonitor-fs-listen-win32: implement FSMonitor backend on Windows\n>   - fsmonitor--daemon: create token-based changed path cache\n>   - fsmonitor--daemon: define token-ids\n>   - fsmonitor--daemon: add pathname classification\n>   - fsmonitor--daemon: implement daemon command options\n>   - fsmonitor-fs-listen-macos: stub in backend for MacOS\n>   - fsmonitor-fs-listen-win32: stub in backend for Windows\n>   - fsmonitor--daemon: implement client command options\n>   - fsmonitor--daemon: add a built-in fsmonitor daemon\n>   - fsmonitor: introduce `core.useBuiltinFSMonitor` to call the daemon via IPC\n>   - config: FSMonitor is repository-specific\n>   - fsmonitor-ipc: create client routines for git-fsmonitor--daemon\n>   - Merge branch 'jh/simple-ipc' into jh/rfc-builtin-fsmonitor\n> \n>   An attempt to write and ship with a watchman equivalent tailored\n>   for our use.\n> \n>   Will discard.\n>   ... as nobody seems to be interested.\n\nI'd like to ask that we give this a little more time.\n\nIs there something I could do to make it easier to review\nor more interesting to the community?\n\nI hesitant to spam the list with a non-RFC/V2 until\nthis one has seen at least a little high-level review.\n\nThanks\nJeff\n\n\n"},{"id":"422483","messageId":"xmqq1rb44n7e.fsf@gitster.g","threadId":"55523","inReplyTo":"87mttt2hcu.fsf@evledraar.gmail.com","subject":"Re: What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-04-20T22:15:33Z","receivedAt":"2021-04-20T22:15:36Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n\n>> * ab/describe-tests-fix (2021-04-12) 5 commits\n>> ...\n>>  (this branch uses ab/test-lib-updates.)\n>> * ab/pickaxe-pcre2 (2021-04-12) 22 commits\n>> ...\n>>  (this branch uses ab/test-lib-updates.)\n>> * ab/test-lib-updates (2021-04-12) 16 commits\n>> ...\n>>  (this branch is used by ab/describe-tests-fix and ab/pickaxe-pcre2.)\n>>\n>>  Test clean-up.\n>>\n>>  Waiting for review discussion to conclude.\n>\n> I think with my re-roll today at\n> https://lore.kernel.org/git/cover-00.12-0000000000-20210420T121833Z-avarab@gmail.com/\n> there's no further outstanding issues.\n\nOK, let's hope this to be the final version that is stable enough\nfor others to build on.\n\nThanks.\n"},{"id":"422496","messageId":"YH9gPt410QBRjG59@camp.crustytoothpaste.net","threadId":"55523","inReplyTo":"87mttt2hcu.fsf@evledraar.gmail.com","subject":"Re: What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2021-04-20T23:14:06Z","receivedAt":"2021-04-20T23:14:13Z","isPatch":false,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On 2021-04-20 at 13:52:33, Ævar Arnfjörð Bjarmason wrote:\n> This has a textual conflict (no longer a semantic one) with the above\n> ab/unexpected-object-type etc.\n> \n> As noted in\n> https://lore.kernel.org/git/87mttx121j.fsf@evledraar.gmail.com/ I had\n> questions about the approach in hash-object.c, in particular I have\n> POC/WIP patches that make one of brian's TODO tests pass, by doing the\n> \"we are in SHA256 mode\" earlier, which is also less code as we won't\n> need to add special handling to a large part of hash-object.c (or, in\n> the future, other such commands).\n\nI'm going to drop those first two patches for now, since I plan to\nimplement them in a different way in the future.\n-- \nbrian m. carlson (he/him or they/them)\nHouston, Texas, US\n"},{"id":"422506","messageId":"xmqqk0ow1plt.fsf@gitster.g","threadId":"55523","inReplyTo":"87mttt2hcu.fsf@evledraar.gmail.com","subject":"Re: What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-04-20T23:51:58Z","receivedAt":"2021-04-20T23:52:03Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n\n> On Tue, Apr 20 2021, Junio C Hamano wrote:\n>\n> Comments on my outstanding serieses and related (you've indicated that\n> this summary was helpful, so I'll keep doing it).\n>\n>> * ab/unexpected-object-type (2021-04-14) 11 commits\n>> ...\n> I've just re-rolled these three at:\n>\n>  * https://lore.kernel.org/git/cover-00.10-0000000000-20210420T124428Z-avarab@gmail.com\n>  * https://lore.kernel.org/git/cover-00.10-0000000000-20210420T125415Z-avarab@gmail.com\n>  * https://lore.kernel.org/git/cover-0.8-0000000000-20210420T133218Z-avarab@gmail.com\n\nUnfortunately, I didn't get to these three.  In the meantime, I'd\nexpect you to try merging these three into 'seen' once it gets\npublished today, and invite others who have topics not in 'next' but\nin 'seen' to also do so.  By doing so, you'd see what interactions,\nif any, are expected with the other topics in-flight.  I'd hope them\nto be minimal---the old ab/unexpected-object-type had only one \"yes,\nthat might be nice standalone if you are not working together with\nother people, but we didn't have to make this change and we would\nhave saved having to do an evil merge to resolve this conflict if we\ndidn't\"---as the old topic is tenatively ejected, the evil merge is\ngone for now from 'seen', which is good ;-).\n\nAnyway, without these three, but with the few topics that depends on\nupdated test-lib-updates topioc, the integration of the topics in\n'seen' for today's cycle has been smooth.  The test-lib-updates\nstill had the same few niggles in its early parts I pointed out in\nan earlier round, though.  Among the topics from you, I'd think that\none would be the highest priority, simply because many other topics\nare taken hostage to it.  It matters to me a lot, as I'd be the one\nwho ends up having to remember what depends on what else, and having\nto rebase them on top of each other.  The sooner that topic solidifies,\nthe better for other topics that depend on it.\n\nThanks.\n\n\n"},{"id":"422546","messageId":"87tuo02gdd.fsf@evledraar.gmail.com","threadId":"55523","inReplyTo":"YH9gPt410QBRjG59@camp.crustytoothpaste.net","subject":"Re: What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-04-21T08:26:06Z","receivedAt":"2021-04-21T08:26:12Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Wed, Apr 21 2021, brian m. carlson wrote:\n\n> On 2021-04-20 at 13:52:33, Ævar Arnfjörð Bjarmason wrote:\n>> This has a textual conflict (no longer a semantic one) with the above\n>> ab/unexpected-object-type etc.\n>> \n>> As noted in\n>> https://lore.kernel.org/git/87mttx121j.fsf@evledraar.gmail.com/ I had\n>> questions about the approach in hash-object.c, in particular I have\n>> POC/WIP patches that make one of brian's TODO tests pass, by doing the\n>> \"we are in SHA256 mode\" earlier, which is also less code as we won't\n>> need to add special handling to a large part of hash-object.c (or, in\n>> the future, other such commands).\n>\n> I'm going to drop those first two patches for now, since I plan to\n> implement them in a different way in the future.\n\nUsing something like the:\n\n    git --object-format=sha256 <cmd>\n\nApproch I suggsted in\nhttps://lore.kernel.org/git/8735vq2l8a.fsf@evledraar.gmail.com/ ?\n\nIn any case having something like the OPT_OBJECT_FORMAT() I added in\nthat WIP patch would make sense wouldn't it, to reduce the duplication\nof current \"object-format\". It would also save each current caller from\ndoing the \"unknown\" and other sanity checks, since they could rely on\nparse_options() having died in that case.\n"},{"id":"422638","messageId":"YICoGeaxHdf6pemo@camp.crustytoothpaste.net","threadId":"55523","inReplyTo":"87tuo02gdd.fsf@evledraar.gmail.com","subject":"Re: What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2021-04-21T22:32:57Z","receivedAt":"2021-04-21T22:33:36Z","isPatch":false,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On 2021-04-21 at 08:26:06, Ævar Arnfjörð Bjarmason wrote:\n> Using something like the:\n> \n>     git --object-format=sha256 <cmd>\n> \n> Approch I suggsted in\n> https://lore.kernel.org/git/8735vq2l8a.fsf@evledraar.gmail.com/ ?\n\nYes, I generally like that approach and will likely adopt it with some\nmodifications.  For example, I think we'll still need some sanity checks\nto be sure that we're not allowing users to specify a totally different\nalgorithm from what's in the repo when working with the repo because\nthat will likely break things in a variety of ways.\n\nWhat I want to do right now is figure out what additional changes are\ngoing to be required and in which programs these changes should be made,\nand that requires that I do more work in the series so I can have a\nbetter idea of what's involved.  Since that's going to take some time,\nI'm going to drop those patches so I can get the rest of the series in\nshape.\n\n> In any case having something like the OPT_OBJECT_FORMAT() I added in\n> that WIP patch would make sense wouldn't it, to reduce the duplication\n> of current \"object-format\". It would also save each current caller from\n> doing the \"unknown\" and other sanity checks, since they could rely on\n> parse_options() having died in that case.\n\nI agree that's a nice improvement and would be happy to see it come in\nindependent of my changes.  I'll probably pick it up sooner or later if\nyou don't get to it first.\n-- \nbrian m. carlson (he/him or they/them)\nHouston, Texas, US\n"},{"id":"422757","messageId":"YILciIL/WtNWdOPF@coredump.intra.peff.net","threadId":"55523","inReplyTo":"87mttt2hcu.fsf@evledraar.gmail.com","subject":"Re: What's cooking in git.git (Apr 2021, #05; Mon, 19)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2021-04-23T14:41:12Z","receivedAt":"2021-04-23T14:41:19Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Apr 20, 2021 at 03:52:33PM +0200, Ævar Arnfjörð Bjarmason wrote:\n\n> > * ab/fsck-unexpected-type (2021-04-13) 6 commits\n> >  - fsck: report invalid object type-path combinations\n> >  - fsck: report invalid types recorded in objects\n> >  - object-store.h: move read_loose_object() below 'struct object_info'\n> >  - fsck: don't hard die on invalid object types\n> >  - fsck tests: refactor one test to use a sub-repo\n> >  - cache.h: move object functions to object-store.h\n> >\n> >  \"git fsck\" has been taught to report mismatch between expected and\n> >  actual types of an object better.\n> \n> Jeff King: *re-poke* per the mention the last WC: I.e. did you review\n> this?\n\nI hadn't, but I just did. I had some organizational nits to pick in the\nmiddle, but there's something really wrong with the cat-file changes in\npatch 5. I stopped there for now, because at least one of us is really\nconfused. ;)\n\n-Peff\n"}]}