threads / discuss / 28830

How to find a commit that introduces (not removes) a string?

Subject: How to find a commit that introduces (not removes) a string?

## tl;dr

4 messages between Nov 3, 2011 and Nov 4, 2011.

replies: 3people: 3as markdown or json

Sebastian Schuberth· Nov 3, 2011, 09:50 UTC · lore
Hi all,
I know about git log's -S / -G, but I'm unable to make these search through *introduced* strings only. Is there a way to do so?
Thanks!
PS: I also read [1], but although the author claims to be interested in introduced strings only, he seems to be satisfied with -G, which slightly puzzles me.
[1] http://stackoverflow.com/questions/5816134/git-finding-a-commit-that-introduced-a-string
-- 
Sebastian Schuberth
Neal Kreitzinger· Nov 3, 2011, 15:56 UTC · re: Sebastian Schuberth · lore

Re: How to find a commit that introduces (not removes) a string?

On 11/3/2011 4:50 AM, Sebastian Schuberth wrote:
Show 10 quoted lines
> Hi all,
>
> I know about git log's -S / -G, but I'm unable to make these search through *introduced* strings only. Is there a way to do so?
>
> Thanks!
>
> PS: I also read [1], but although the author claims to be interested in introduced strings only, he seems to be satisfied with -G, which slightly puzzles me.
>
> [1] http://stackoverflow.com/questions/5816134/git-finding-a-commit-that-introduced-a-string
>

If you are using linux, here is git diff command I use to find leftover debug statements. I imagine the -S option will work the same in git log. I pipe the results into grep to filter the results to show only the additions. (I'm using git 1.7.1)

$ git diff --unified=0 -S"DEBUG" <commit> <commit> -- <path> | grep -e "diff --" -e "+" | grep -v -e "@@" -e "+++"

maybe you will find this helpful.

v/r, neal

Vijay Lakshminarayanan· Nov 3, 2011, 16:13 UTC · re: Sebastian Schuberth · lore

Re: How to find a commit that introduces (not removes) a string?

Sebastian Schuberth <sschuberth@gmail.com> writes:
> Hi all,
>
> I know about git log's -S / -G, but I'm unable to make these search through *introduced* strings only. Is there a way to do so?
This appears to work:
$ for ref in `git log -SWORD --pretty=format:"%h"` ; do 
    git log -1 -p $ref | grep WORD | grep -E '^[+]' > /dev/null ; 
    if [ $? -eq 0 ]; then 
        echo $ref; 
    fi ;
  done

substitute WORD for what you're looking for. Note that it is repeated twice.

Show 5 quoted lines
> Thanks!
>
> PS: I also read [1], but although the author claims to be interested in introduced strings only, he seems to be satisfied with -G, which slightly puzzles me.
>
> [1] http://stackoverflow.com/questions/5816134/git-finding-a-commit-that-introduced-a-string
-- 
Cheers
~vijay
Sebastian Schuberth· Nov 4, 2011, 10:59 UTC · re: Sebastian Schuberth · lore

Re: How to find a commit that introduces (not removes) a string?

On 03.11.2011 10:50, Sebastian Schuberth wrote:
> I know about git log's -S / -G, but I'm unable to make these search through *introduced* strings only. Is there a way to do so?
Thanks for your suggestions. However, I ended up simply doing
$ git diff --no-color FROM..TO | grep ^+[^+] | grep WORD
which works well for my case.
-- 
Sebastian Schuberth

← back to recent threads