Re: What's cooking in git.git (Mar 2021, #07; Mon, 22)
From: Junio C Hamano <hidden>
Date: 2021-03-31 00:21:43
Ævar Arnfjörð Bjarmason [off-list ref] writes:
quoted
* ab/pickaxe-pcre2 (2021-02-18) 24 commits - pickaxe -G: don't special-case create/delete - pickaxe -G: terminate early on matching lines - xdiff-interface: support early exit in xdiff_outf() - xdiff-interface: allow early return from xdiff_emit_{line,hunk}_fn - 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: 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 - test-lib functions: add --printf option to test_commit - test-lib-functions: reword "test_commit --append" docs - test-lib-functions: document and test test_commit --no-tag - grep/pcre2 tests: reword comments referring to kwset - Merge branch 'jk/rev-list-disk-usage' into ab/pickaxe-pcre2 - Merge branch 'ab/test-lib' into ab/pickaxe-pcre2 Rewrite the backend for "diff -G/-S" to use pcre2 engine when available. Ready???I think it's been ready for while, but unfortunately it hasn't gotten much/any review. The changes to the C code are all rather trivial (just the "change return; to return 0" is rather verbose).
It is a shame that this series hasn't seen any reviews. It had so many low-hanging crufts to be pointed out, netting aspiring reviewer some "review points" ;-) I think a change to tolerate -G with --pickaxe-regex combination (as the latter becomes a redundant no-op in today's world because -G cannot do fixed strings), instead of marking them incompatible, may require the "function selection" step to be rewritten, but other than that, I didn't see much that is fundamentally objectionable. The summary I wrote in the "What's cooking" report was not quite right, by the way. There is nothing pcre2 yet in these patches. They are preliminary clean-ups only. Thanks.