Mercurial > gnulib
changeset 19036:125fe2f313c6
git-version-gen: Fix for tags containing '-'
Really old versions of git-describe (before v1.5.0, Feb 2007) don't
have the number of commits in their long format output, i.e. where
modern 'git describe --abbrev=4 --match="v*"' prints
"v0.1-1494-g124b9", they print "v0.1-1494-g124b9". git-version-gen
recognizes both patterns, and normalizes the old format to the new
one.
Unfortunately, this normalization code gets confused when the tag
contains '-'. Reproducer:
$ git-tag -m test v0.2-rc1
$ build-aux/git-version-gen .tarball-version; echo
build-aux/git-version-gen: WARNING: git rev-list failed
UNKNOWN
We take exact tag "v0.2-rc1" for the old format, extract the presumed
tag "v0.2" from it, then run "git rev-list v0.2..HEAD" to count
commits since tha tag. Fails, because tag "v0.2" does not exist.
* git-version-gen: We could perhaps drop support for versions from more
than a decade ago. But tightening the pattern match is easy enough,
so do that. Still breaks when you use version tags ending in something
matching -g????, but you arguably get what you deserve then.
author | Markus Armbruster <armbru@pond.sub.org> |
---|---|
date | Sun, 06 Aug 2017 08:26:03 +0200 |
parents | dbf00d268928 |
children | b19c2e91a4c8 |
files | ChangeLog build-aux/git-version-gen |
diffstat | 2 files changed, 30 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sat Aug 05 11:45:10 2017 -0700 +++ b/ChangeLog Sun Aug 06 08:26:03 2017 +0200 @@ -1,3 +1,30 @@ +2017-08-06 Markus Armbruster <armbru@pond.sub.org> + + git-version-gen: Fix for tags containing '-' + + Really old versions of git-describe (before v1.5.0, Feb 2007) + don't have the number of commits in their long format output, + i.e. where modern 'git describe --abbrev=4 --match="v*"' prints + "v0.1-1494-g124b9", they print "v0.1-1494-g124b9". git-version-gen + recognizes both patterns, and normalizes the old format to the new one. + + Unfortunately, this normalization code gets confused when the tag + contains '-'. Reproducer: + + $ git-tag -m test v0.2-rc1 + $ build-aux/git-version-gen .tarball-version; echo + build-aux/git-version-gen: WARNING: git rev-list failed + UNKNOWN + + We take exact tag "v0.2-rc1" for the old format, extract the presumed + tag "v0.2" from it, then run "git rev-list v0.2..HEAD" to count + commits since tha tag. Fails, because tag "v0.2" does not exist. + + * git-version-gen: We could perhaps drop support for versions from + more than a decade ago. But tightening the pattern match is easy + enough, so do that. Still breaks when you use version tags ending in + something matching -g????, but you arguably get what you deserve then. + 2017-08-05 Paul Eggert <eggert@cs.ucla.edu> valgrind-tests: use ls, and cache
--- a/build-aux/git-version-gen Sat Aug 05 11:45:10 2017 -0700 +++ b/build-aux/git-version-gen Sun Aug 06 08:26:03 2017 +0200 @@ -1,6 +1,6 @@ #!/bin/sh # Print a version string. -scriptversion=2017-01-09.19; # UTC +scriptversion=2017-08-06.05; # UTC # Copyright (C) 2007-2017 Free Software Foundation, Inc. # @@ -168,8 +168,8 @@ # Newer: v6.10-77-g0f8faeb # Older: v6.10-g0f8faeb case $v in - *-*-*) : git describe is okay three part flavor ;; - *-*) + *-*-g????) : git describe is okay three part flavor ;; + *-g????) : git describe is older two part flavor # Recreate the number of commits and rewrite such that the # result is the same as if we were using the newer version