threads / bug / 49416

bug in 'git describe'?

Subject: bug in 'git describe'?

## tl;dr

5 messages between Sep 24, 2018 and Sep 25, 2018.

replies: 4people: 3as markdown or json

Sebastian Kuzminsky· Sep 24, 2018, 21:45 UTC · lore

I think I've run in to a bug in 'git describe' (reproduced with git 2.11.0, 2.16.1, and 2.19.0.221.g150f307af).

I've got two tiny git repos whose commit graphs are identical, but where 'git describe' gives different results.

Show 16 quoted lines
>     *   merge 1.1 into 2.0  (HEAD -> release-2.0)
>     |\
>     | *   merge boo into 1.1  (tag: release/1.1.1, release-1.1)
>     | |\
>     | | * dummy commit  (boo)
>     | * | dummy commit  (tag: release/1.1.0)
>     * | |   merge feature into 2.0
>     |\ \ \
>     | * | | dummy commit  (feature)
>     |/ / /
>     * | | dummy commit  (tag: release/2.0.1)
>     * | | dummy commit  (tag: release/2.0.0)
>     |/ /
>     * | dummy commit  (release-1.0)
>     |/
>     * dummy commit  (tag: release/1.0.0)
The tag 'release/1.0.0' is the first commit in history.

The histories differ only in the timestamps of the commits (and thus the SHAs of the commit objects).

Good repo: release/2.0.1-6-gbc33a04 Bad repo: release/2.0.1-8-g2c0a20c

Details, including full copies of both repos, here:
http://highlab.com/~seb/git-describe-bug/
-- 
Sebastian Kuzminsky
Junio C Hamano· Sep 24, 2018, 22:24 UTC · re: Sebastian Kuzminsky · lore

Re: bug in 'git describe'?

Sebastian Kuzminsky <seb@highlab.com> writes:
> I've got two tiny git repos whose commit graphs are identical, but
> where 'git describe' gives different results.
> ...
> The histories differ only in the timestamps of the commits...

describe does take the commit timestamps into account, so it is expected you would get different results out of an otherwise identically looking graph.

Sebastian Kuzminsky· Sep 25, 2018, 15:39 UTC · re: Junio C Hamano · lore

Re: bug in 'git describe'?

On 9/24/18 4:24 PM, Junio C Hamano wrote:
Show 9 quoted lines
> Sebastian Kuzminsky <seb@highlab.com> writes:
> 
>> I've got two tiny git repos whose commit graphs are identical, but 
>> where 'git describe' gives different results. ... The histories
>> differ only in the timestamps of the commits...
> 
> describe does take the commit timestamps into account, so it is 
> expected you would get different results out of an otherwise 
> identically looking graph.
Thanks for that confirmation.
That behavior seems to me to be different from what the (2.11) manpage says:
> it suffixes the tag name with the number of additional commits on top
> of the tagged object
And:
Show 5 quoted lines
> If multiple tags were found during the walk then the tag which has
> the fewest commits different from the input commit-ish will be
> selected and output. Here fewest commits different is defined as the
> number of commits which would be shown by git log tag..input will be
> the smallest number of commits possible.

All that said, if you consider this "working as expected" then i'm content to let the matter drop.

-- 
Sebastian Kuzminsky
Duy Nguyen· Sep 25, 2018, 16:05 UTC · re: Sebastian Kuzminsky · lore

Re: bug in 'git describe'?

On Tue, Sep 25, 2018 at 5:41 PM Sebastian Kuzminsky <seb@highlab.com> wrote:
> That behavior seems to me to be different from what the (2.11) manpage says:

Good opportunity to improve the man page anyway even if Junio is right. I agree that the section about "search strategy" is a bit misleading because it does not mention anything about time stuff.

Show 12 quoted lines
>
> > it suffixes the tag name with the number of additional commits on top
> > of the tagged object
>
>
> And:
>
> > If multiple tags were found during the walk then the tag which has
> > the fewest commits different from the input commit-ish will be
> > selected and output. Here fewest commits different is defined as the
> > number of commits which would be shown by git log tag..input will be
> > the smallest number of commits possible.
-- 
Duy
Duy Nguyen· Sep 25, 2018, 16:10 UTC · re: Duy Nguyen · lore

Re: bug in 'git describe'?

On Tue, Sep 25, 2018 at 6:05 PM Duy Nguyen <pclouds@gmail.com> wrote:
Show 7 quoted lines
>
> On Tue, Sep 25, 2018 at 5:41 PM Sebastian Kuzminsky <seb@highlab.com> wrote:
> > That behavior seems to me to be different from what the (2.11) manpage says:
>
> Good opportunity to improve the man page anyway even if Junio is
> right. I agree that the section about "search strategy" is a bit
> misleading because it does not mention anything about time stuff.

If anybody's updating the man page, I think this is the commit that changed git-describe's search strategy: 80dbae03b0 (Chose better tag names in git-describe after merges. - 2007-01-10)

-- Duy

← back to recent threads