threads / discuss / 47078

Meaning of two commit-ish hash in git diff

Subject: Meaning of two commit-ish hash in git diff

## tl;dr

5 messages between Oct 31, 2017 and Nov 1, 2017.

replies: 4people: 3as markdown or json

Yubin Ruan· Oct 31, 2017, 03:24 UTC · lore
Hi,

Can anyone tell me what does the "f8886b4..a1c96df" mean in a git diff output, as below?

diff --git a/path/somefile b/path/somefile
index f8886b4..a1c96df 100644
--- a/path/somefile
+++ b/path/somefile
<snip>

This is output by a `git diff` between two adjacent commits but they are
not any commit hash. I grep through the whole $(git log) but still cannot
find those hash.

And BTW, are there any special meanings for that .. ?

Thanks,
Yubin
Junio C Hamano· Oct 31, 2017, 04:28 UTC · re: Yubin Ruan · lore

Re: Meaning of two commit-ish hash in git diff

Yubin Ruan <ablacktshirt@gmail.com> writes:
Show 9 quoted lines
> diff --git a/path/somefile b/path/somefile
> index f8886b4..a1c96df 100644
> --- a/path/somefile
> +++ b/path/somefile
> <snip>
>
> This is output by a `git diff` between two adjacent commits but they are
> not any commit hash. I grep through the whole $(git log) but still cannot
> find those hash.

The f8886b4 you see on the left is the name of the blob object on the left hand side of the comparison that produced this output; similarly a1c96df is the name of the blob object on the right hand side of the comparison.

IOW, if you have the contents of the blob whose object name is f8886b4, by applying this patch, you will get a blob whose object name is a1c96df.

The information is used by "git am -3" when the patch does not apply cleanly to fall back to the 3-way merge.

Philip Oakley· Nov 1, 2017, 00:27 UTC · re: Junio C Hamano · lore

Re: Meaning of two commit-ish hash in git diff

Yubin ,
From: "Junio C Hamano" <gitster@pobox.com>
Show 23 quoted lines
> Yubin Ruan <ablacktshirt@gmail.com> writes:
>
>> diff --git a/path/somefile b/path/somefile
>> index f8886b4..a1c96df 100644
>> --- a/path/somefile
>> +++ b/path/somefile
>> <snip>
>>
>> This is output by a `git diff` between two adjacent commits but they are
>> not any commit hash. I grep through the whole $(git log) but still cannot
>> find those hash.
>
> The f8886b4 you see on the left is the name of the blob object on
> the left hand side of the comparison that produced this output;
> similarly a1c96df is the name of the blob object on the right hand
> side of the comparison.
>
> IOW, if you have the contents of the blob whose object name is
> f8886b4, by applying this patch, you will get a blob whose object
> name is a1c96df.
>
> The information is used by "git am -3" when the patch does not apply
> cleanly to fall back to the 3-way merge.

The ability to 'git describe` those blob object IDs is currently the subject of a patch series https://public-inbox.org/git/20171031211852.13001-1-sbeller@google.com/

Maybe see if would have helped ;-)
Philip 
Yubin Ruan· Nov 1, 2017, 01:07 UTC · re: Philip Oakley · lore

Re: Meaning of two commit-ish hash in git diff

Thanks Philip,
On 11/01/2017 08:27 AM, Philip Oakley wrote:
Show 31 quoted lines
> Yubin ,
> 
> From: "Junio C Hamano" <gitster@pobox.com>
>> Yubin Ruan <ablacktshirt@gmail.com> writes:
>>
>>> diff --git a/path/somefile b/path/somefile
>>> index f8886b4..a1c96df 100644
>>> --- a/path/somefile
>>> +++ b/path/somefile
>>> <snip>
>>>
>>> This is output by a `git diff` between two adjacent commits but they are
>>> not any commit hash. I grep through the whole $(git log) but still cannot
>>> find those hash.
>>
>> The f8886b4 you see on the left is the name of the blob object on
>> the left hand side of the comparison that produced this output;
>> similarly a1c96df is the name of the blob object on the right hand
>> side of the comparison.
>>
>> IOW, if you have the contents of the blob whose object name is
>> f8886b4, by applying this patch, you will get a blob whose object
>> name is a1c96df.
>>
>> The information is used by "git am -3" when the patch does not apply
>> cleanly to fall back to the 3-way merge.
> 
> The ability to 'git describe` those blob object IDs is currently the subject of a patch series
> https://public-inbox.org/git/20171031211852.13001-1-sbeller@google.com/
> 
> Maybe see if would have helped ;-)
What would be other use case of the blob object / blob name ?
Yubin
Junio C Hamano· Nov 1, 2017, 02:48 UTC · re: Yubin Ruan · lore

Re: Meaning of two commit-ish hash in git diff

Yubin Ruan <ablacktshirt@gmail.com> writes:
Show 13 quoted lines
>>> IOW, if you have the contents of the blob whose object name is
>>> f8886b4, by applying this patch, you will get a blob whose object
>>> name is a1c96df.
>>>
>>> The information is used by "git am -3" when the patch does not apply
>>> cleanly to fall back to the 3-way merge.
>> 
>> The ability to 'git describe` those blob object IDs is currently the subject of a patch series
>> https://public-inbox.org/git/20171031211852.13001-1-sbeller@google.com/
>> 
>> Maybe see if would have helped ;-)
>
> What would be other use case of the blob object / blob name ?

Perhaps start from "git cat-file blob $name". And follow the path your imagination leads you to ;-)

← back to recent threads