X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/638f9a561e8353ae9bd7e07e4f42e4c4f53f617e..65be25dd0faa566a74101d5a0f50d5a825b6f1e7:/git-version-gen diff --git a/git-version-gen b/git-version-gen index ae3988ea..724da666 100755 --- a/git-version-gen +++ b/git-version-gen @@ -1,6 +1,6 @@ #!/bin/sh # Print a version string. -scriptversion=2008-04-08.07 +scriptversion=2012-09-25.20 # Copyright (C) 2007-2008 Free Software Foundation # @@ -67,6 +67,7 @@ scriptversion=2008-04-08.07 # echo $(VERSION) > $@-t && mv $@-t $@ # dist-hook: # echo $(VERSION) > $(distdir)/.tarball-version +# echo $(VERSION) > $(distdir)/.version case $# in 1) ;; @@ -76,6 +77,7 @@ esac tarball_version_file=$1 nl=' ' +v= # First see if there is a tarball-only version file. # then try "git describe", then default. @@ -91,17 +93,33 @@ then && echo "$0: WARNING: $tarball_version_file seems to be damaged" 1>&2 fi +# This is presently used by the GNOME-OSTree build system; it +# helps support the case where the meta-build system has already +# determined the git revision, but we may not be able to run "git describe" +# because we're inside a chroot. +if test -n "$GIT_DESCRIBE_FOR_BUILD"; +then + v=$GIT_DESCRIBE_FOR_BUILD +fi + if test -n "$v" then : # use $v -elif test -d .git \ - && v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \ - || git describe --abbrev=4 HEAD 2>/dev/null` \ - && case $v in - v[0-9]*) ;; - *) (exit 1) ;; - esac +elif test -e .git \ + && v=`git describe --abbrev=4 --match='v[0-9]*' HEAD 2>/dev/null` \ + && [ -n "$v" ] then + # If we are on a "dev" tag, we need to check that it is not the same + # reference as the a previous version tag (this only happens when we are + # working with a release tag). + # NB The below trick relies on the $v being an exact tag to work which + # will only work when HEAD == tag. When further commits have been made on top + # of the tag, the $v will be supplimented with the number of commits since + # that tag and the commit ref of the most recent commit and thus will + # fail the test below (as intended) + v2=`git describe --abbrev=4 --match='v[0-9]\.[0-9]' --contains $v 2>/dev/null | cut -d'^' -f1` + [ -n "$v2" ] && v=$v2 + # 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 @@ -124,7 +142,8 @@ then # v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`; : else - v=UNKNOWN + echo 1>&2 "$0: Failed to determine git revision" + exit 1 fi v=`echo "$v" |sed 's/^v//'`