Subject: Re: What's cooking in git.git (Mar 2021, #07; Mon, 22)

From: Junio C Hamano <[email-masked]>
Date: Tue, 30 Mar 2021 17:20:38 -0700

Ævar Arnfjörð Bjarmason <[email-masked]> writes:

>> * 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.