Markus Armbruster
2017-08-06 06:26:03 UTC
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.
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.
Signed-off-by: Markus Armbruster <***@pond.sub.org>
---
build-aux/git-version-gen | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen
index 079849d..6c054b4 100755
--- a/build-aux/git-version-gen
+++ b/build-aux/git-version-gen
@@ -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 @@ then
# 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
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.
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.
Signed-off-by: Markus Armbruster <***@pond.sub.org>
---
build-aux/git-version-gen | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen
index 079849d..6c054b4 100755
--- a/build-aux/git-version-gen
+++ b/build-aux/git-version-gen
@@ -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 @@ then
# 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
--
2.7.5
2.7.5