Re: "git describe --debug" does not show the latest tag for "groff"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 28, 2021 at 10:26:21AM +0200, Ævar Arnfjörð Bjarmason wrote:
> 
> On Wed, Oct 27 2021, Bjarni Ingi Gislason wrote:
> 
> > What did you do before the bug happened? (Steps to reproduce your issue)
> >
> >   I do not know, it could have happened anytime after the latest tag
> > was committed (11th Nov. 2020).
> >
> > What did you expect to happen? (Expected behavior)
> >
> >   Seeing the latest tag "1.23.0.rc1" in the version string of "groff"
> > (and in the output of "git describe --debug")
> >
> > What happened instead? (Actual behavior)
> >
> >   "groff --version" shows for example "1.22.4.3317-8f8c8-dirty"
> >
> >   "git describe --debug" shows:
> >
> > describe HEAD
> > No exact match on refs or tags, searching to describe
> > finished search at 2ac1f9ba5578cad27dc547d5be3c91753db436ea
> >  annotated       3318 1.22.4
> >  annotated       3319 1.22.4.rc5
> >  annotated       3352 1.22.4.rc4
> >  annotated       3464 1.22.4.rc3
> >  annotated       3485 1.23.0.rc1
> >  annotated       3572 1.22.4.rc2
> >  annotated       3619 1.22.3.rc1
> > traversed 3833 commits
> > 1.22.4-3318-g3a1e750d
> >
> > What's different between what you expected and what actually happened?
> >
> >   The latest tag is not shown for the groff version.
> >
> > Anything else you want to add:
> >
> >
> >   The latest tag in "git log" is 1.23.0.rc1 in my branch.
> >   It is 1.23.0.rc1 in branch master.
> >
> >   Search for "tag:" in "git log" in my branch shows:
> >
> > commit c05b538c504106d55b81caa6400ea80797f03775 (tag: 1.23.0.rc1)
> > Author: Bertrand Garrigues <...>
> > Date:   Wed Nov 11 01:58:55 2020 +0100
> >
> >   "git show-ref 1.23.0.rc1" in my branch shows:
> >
> > faa3dff8d011e61721e763c71b6ccbf20a4675bc refs/tags/1.23.0.rc1
> >
> > ####
> >
> >   "git-version-gen" (gnulib) does not get the latest tag.
> >
> >   The call in configure.am is:
> >
> > AC_INIT([GNU Troff],[m4_esyscmd(build-aux/git-version-gen --prefix ""
> > .tarball-version)],[http://savannah.gnu.org/bugs/?group=g$
> >
> >   The files ".git/packed-refs" and ".git/info/refs" are the same in both
> > branches.
> >
> > #####
> >
> > [System Info]
> > git version 2.33.0 (Debian/testing Version: 1:2.33.0-1)
> > cpu: x86_64
> > no commit associated with this build
> > sizeof-long: 8
> > sizeof-size_t: 8
> > shell-path: /bin/sh
> > uname: Linux 5.14.9-2 #1 SMP Sun Oct 10 01:53:44 UTC 2021 x86_64
> > compiler info: gnuc: 10.2
> > libc info: glibc: 2.32
> > $SHELL (typically, interactive shell): /bin/bash
> 
> Daginn.
> 
> The "git describe" command won't just return the latest tag name, but if
> you're not on such an exact tag name find the "closest", and then add a
> suffix indicating the distance and HEAD commit.
> 
> Reading between the lines I think you know that, but you're suprised
> that it's finding 1.22.4 instead of 1.23.0.rc1, which newer.
> 
> I tried to reproduce this and cloned
> https://git.savannah.gnu.org/git/groff.git; If you run e.g. this
> command:
>     
>     $ for c in $(git log --oneline 1.22.4..1.23.0.rc1 | awk '{print $1}'); do git describe $c; done
>     1.23.0.rc1
>     1.22.4-765-g10cd0b66
>     1.22.4-764-ge3b774ad
>     1.22.4-763-gfb52df3b
>     1.22.4-762-g0f42ca27
>     1.22.4-761-gdf73fc2b
>     1.22.4-760-g3afeb883
>     1.22.4-759-gcb1a9dc5
>     [...]
> 
> You'll see us describing all commits between 1.22.4..1.23.0-rc0, ending with:
>     
>     [...]
>     1.22.4-7-g72b4440e
>     1.22.4-6-g81908bc0
>     1.22.4-5-g9da68905
>     1.22.4-4-g2212cba0
>     1.22.4-3-ga3068bfd
>     1.22.4-2-g607236cc
>     1.22.4-1-gde9f9bfd
> 
> But as your tag "1.22.4.3317-8f8c8-dirty" shows we're at a distance of
> 3317 from 1.22.4. Are you able to share whatever your 8f8c8 is
> somewhere? I wonder if you're on some commit based off an older version.
> 
> Aside from what ref "describe" picked it's weird that a new version of
> git would choose to show a 5-character hex abbreviation of the commit,
> the minimum we show these days is 7, unless you have something setting
> e.g. this in config:
> 
>     core.abbrev=5
> 
> Or maybe that AC_INIT() macro does that somehow...

  The latest tagged version (1.23.0.rc1) is actually in the output of
"git describe --debug", but at the wrong place.

  "git log" on the console shows the tag "1.23.0.rc1" to be the first
one.

  "git log" directed to a file does not show any 'tag' in the commit
lines!

  "git describe" gets the sorting wrong.

  Part of output from "git log | grep '^commit [0-9a-f]' | cat -n":

     1	commit 3a1e750d2e03ed67eff01155ace01a0657c23ad7
     2	commit 8f8c8ab812093554ebdf3a3218c8944302c9eb94 <--
     3	commit 86b12aaaf5b7ceac78df11c53d3f45e1de0d8522
...
  1939	commit 2e52c43497d6078d1be3edf12aec962a91cb54e2
  1940	commit 2ca9c70def2b83cb5ad4cb5da0c0e2533a21b133
  1941	commit ab3e18c27ea1890bb98812a80d1e36c1c03f5db3
  1942	commit c05b538c504106d55b81caa6400ea80797f03775 <-- 1.23.0.rc1
  1943	commit 10cd0b662256d6fd2b6ed204f0ce891c8fc1175d
  1944	commit a4584886ce3391d85b6d1e2c774bf919cdd94451
...
  3004  commit a3068bfda2e25584e4d07781162179cb79829f56
  3005  commit 607236cc2ba834f326d01db189026f3dc28e118b
  3006  commit de9f9bfdf63245967bdbe56c503d587fcf0b279b
  3007  commit cc292790528abb8985c8b743ac3887f7f393cd7a <-- 1.22.4
  3008  commit 39cade0f09d9531d15abe7873101694cf0140ba4
  3009  commit 743c23c7f9d2a4e8f6e7cd555703487521dd012d
  3010  commit b78b8ba1a973421ad00770fc10bcd894fc7fc717
...
  6712	commit a48ab7b6db26b1d98f77f59f22896fe02a700c40
  6713	commit bd5385e4ea12522ba7e852fa3a628f3be854f674
  6714	commit 351da0dcdf702cf243d26ffa998961bce2aa8653

In ".git/info/refs" commit 1.23.0.rc1 is listed with an affix "^{}".

  Without an affix the commit is "faa3dff8...", which is not in the
output of "git log".

  The used expression of "git describe" uses "--abbrev=4" (in
git-version-gen) for generating version strings for "groff".

-- 
Bjarni I. Gislason



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux