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

4 messages from 2011-11-03 to 2011-11-04. Participants: Sebastian Schuberth, Neal Kreitzinger, Vijay Lakshminarayanan.
Thread: https://gitlist.dev/t/28830

## Sebastian Schuberth, 2011-11-03 09:50

Subject: How to find a commit that introduces (not removes) a string?
Message-ID: <j8to8h$vqd$1@dough.gmane.org>
URL: https://gitlist.dev/e/j8to8h%24vqd%241%40dough.gmane.org

```
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, 2011-11-03 15:56

Subject: Re: How to find a commit that introduces (not removes) a string?
Message-ID: <4EB2B9A7.5090909@gmail.com>
URL: https://gitlist.dev/e/4EB2B9A7.5090909%40gmail.com
In-Reply-To: <j8to8h$vqd$1@dough.gmane.org>

```
On 11/3/2011 4:50 AM, Sebastian Schuberth wrote:
> 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, 2011-11-03 16:13

Subject: Re: How to find a commit that introduces (not removes) a string?
Message-ID: <87zkgdgp5q.fsf@gmail.com>
URL: https://gitlist.dev/e/87zkgdgp5q.fsf%40gmail.com
In-Reply-To: <j8to8h$vqd$1@dough.gmane.org>

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

> 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, 2011-11-04 10:59

Subject: Re: How to find a commit that introduces (not removes) a string?
Message-ID: <4EB3C588.501@gmail.com>
URL: https://gitlist.dev/e/4EB3C588.501%40gmail.com
In-Reply-To: <j8to8h$vqd$1@dough.gmane.org>

```
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

```
