bootstrap: remove dangling *.[ch] symlinks from lib
[gnulib.git] / build-aux / git-version-gen
index 1d58adc..5f819ba 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Print a version string.
-scriptversion=2008-02-08.11
+scriptversion=2008-03-02.16
 
 # Copyright (C) 2007 Free Software Foundation
 #
@@ -23,12 +23,12 @@ scriptversion=2008-02-08.11
 # It may be run two ways:
 # - from a git repository in which the "git describe" command below
 #   produces useful output (thus requiring at least one signed tag)
-# - from a non-git-repo directory containing a .version file, which
+# - from a non-git-repo directory containing a .tarball-version file, which
 #   presumes this script is invoked like "./git-version-gen .tarball-version".
 
 case $# in
     1) ;;
-    *) echo 1>&2 "Usage: $0 \$srcdir/.version"; exit 1;;
+    *) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version"; exit 1;;
 esac
 
 tarball_version_file=$1
@@ -59,6 +59,23 @@ elif test -d .git \
         *) (exit 1) ;;
        esac
 then
+    # Is this a new git that lists number of commits since the last
+    # tag or the previous older version that did not?
+    #   Newer: v6.10-77-g0f8faeb
+    #   Older: v6.10-g0f8faeb
+    case $v in
+       *-*-*) : git describe is okay three part flavor ;;
+       *-*)
+           : 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
+           # of git describe.
+           vtag=`echo "$v" | sed 's/-.*//'`
+           numcommits=`git rev-list "$vtag"..HEAD | wc -l`
+           v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
+           ;;
+    esac
+
     # Change the first '-' to a '.', so version-comparing tools work properly.
     # Remove the "g" in git describe's output string, to save a byte.
     v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;