Subject: Re: [RFD] not grep but not log -S

From: Mirko Faina <[email-masked]>
Date: Tue, 14 Apr 2026 00:04:39 +0200

On Mon, Apr 13, 2026 at 02:19:49PM -0700, Junio C Hamano wrote:
> may give something close to what I want, but it makes me feel dirty
> that I have to _guess_ how many is sufficient.

If you know when it is introduced and when it goes away you don't have
to guess at all. You should be able to log start..end (and filtering the
appropiate subject line).

    topic=jc/test-set-e-clean
    git log $(git log --oneline -S$topic --reverse whats-cooking.txt | \
        head -n1 | cut -d \  -f 1)~1..$(git log --oneline -S$topic \
        --max-count=1 whats-cooking.txt | cut -d \  -f 1)

I know it's a bit long but this way you won't have to guess (and I'm
assuming is going in a script anyway). The log command to get the first
and last occurrence would go on their own line as well.

    last=$(git log --oneline -Sjc/test-set-e-clean --max-count=1 \
        whats-cooking.txt | cut -d \  -f 1)
    first=$(git log --oneline -Sjc/test-set-e-clean --reverse \
        whats-cooking.txt | head -n1 | cut -d \  -f 1)
    git log $first~1..$last

I would've used --max-count=1 to get just the first occurrence instead
of using 'head', but '--reverse', '-S' and '--max-count' don't interact
in the way a user might obviously presume (and I'm assuming it's a bug).

P.S. sorry if I end up in your inbox twice, I forgot to cc the list.