threads / discuss / 8252

git log -S problem

Subject: git log -S problem

## tl;dr

4 messages between May 20, 2007 and May 21, 2007.

replies: 3people: 2as markdown or json

Johannes Sixt· May 20, 2007, 19:15 UTC · lore
There is something odd with -S of git log. Try this in your git.git:

$ git log --pretty=oneline -Sbuiltin-merge-base -- Makefile 71dfbf224ff980f4085f75868dc409118418731e Make merge-base a built-in.

$ git log --pretty=oneline -Smerge-base -- Makefile e468305a954d95a26bfcdec3bc6e4bd477d95676 [PATCH] Remove the explicit ... a3df180138b85a603656582bde6df757095618cf Rename git core commands ... cef661fc799a3a13ffdea4a3f69f1acd295de53d Add support for alternate ... e590d694ead8d50c2afc7086161d4ddc5d907655 Add more header dependencies. 6683463ed6b2da9eed309c305806f9393d1ae728 Do a very simple "merge-base"...

$ git version git version 1.5.2

I had expected that the set of commits found by the second search string are a proper superset of those found by the first one. What's wrong here? Why does a search for 'merge-base' not find occurences of 'builtin-merge-base'?

-- Hannes
Junio C Hamano· May 20, 2007, 21:05 UTC · re: Johannes Sixt · lore

Re: git log -S problem

Johannes Sixt <johannes.sixt@telecom.at> writes:
Show 18 quoted lines
> There is something odd with -S of git log. Try this in your git.git:
>
> $ git log --pretty=oneline -Sbuiltin-merge-base -- Makefile 
> 71dfbf224ff980f4085f75868dc409118418731e Make merge-base a built-in.
>
> $ git log --pretty=oneline -Smerge-base -- Makefile
> e468305a954d95a26bfcdec3bc6e4bd477d95676 [PATCH] Remove the explicit ...
> a3df180138b85a603656582bde6df757095618cf Rename git core commands ...
> cef661fc799a3a13ffdea4a3f69f1acd295de53d Add support for alternate ...
> e590d694ead8d50c2afc7086161d4ddc5d907655 Add more header dependencies.
> 6683463ed6b2da9eed309c305806f9393d1ae728 Do a very simple "merge-base"...
>
> $ git version
> git version 1.5.2
>
> I had expected that the set of commits found by the second search string are a 
> proper superset of those found by the first one. What's wrong here? Why does 
> a search for 'merge-base' not find occurences of 'builtin-merge-base'?

71dfbf224 removes one line that has "git-merge-base$X" and adds one line that has "builtin-merge-base.o". If you count the number of occurences of substring "builtin-merge-base" in the preimage and the postimage, you see one addition. If you count the same for substring "merge-base", the net difference is 0.

Johannes Sixt· May 21, 2007, 05:27 UTC · re: Junio C Hamano · lore

Re: git log -S problem

On Sunday 20 May 2007 23:05, Junio C Hamano wrote:
Show 11 quoted lines
> Johannes Sixt <johannes.sixt@telecom.at> writes:
> > I had expected that the set of commits found by the second search string
> > are a proper superset of those found by the first one. What's wrong here?
> > Why does a search for 'merge-base' not find occurences of
> > 'builtin-merge-base'?
>
> 71dfbf224 removes one line that has "git-merge-base$X" and adds
> one line that has "builtin-merge-base.o".  If you count the
> number of occurences of substring "builtin-merge-base" in the
> preimage and the postimage, you see one addition.  If you count
> the same for substring "merge-base", the net difference is 0.
But is this how -S is *designed* to work? 
Hm, the documentation says (diff-options.txt):
-S<string>::
	Look for differences that contain the change in <string>.

which can be interpreted both to match my expectations as well as the current implementation.

-- Hannes
Junio C Hamano· May 21, 2007, 07:34 UTC · re: Johannes Sixt · lore

Re: git log -S problem

Johannes Sixt <johannes.sixt@telecom.at> writes:
Show 14 quoted lines
> On Sunday 20 May 2007 23:05, Junio C Hamano wrote:
>> Johannes Sixt <johannes.sixt@telecom.at> writes:
>> > I had expected that the set of commits found by the second search string
>> > are a proper superset of those found by the first one. What's wrong here?
>> > Why does a search for 'merge-base' not find occurences of
>> > 'builtin-merge-base'?
>>
>> 71dfbf224 removes one line that has "git-merge-base$X" and adds
>> one line that has "builtin-merge-base.o".  If you count the
>> number of occurences of substring "builtin-merge-base" in the
>> preimage and the postimage, you see one addition.  If you count
>> the same for substring "merge-base", the net difference is 0.
>
> But is this how -S is *designed* to work? 
http://thread.gmane.org/gmane.comp.version-control.git/14869/focus=14871
For the design background, 
http://thread.gmane.org/gmane.comp.version-control.git/6214

← back to recent threads