diff options
author | Jim Meyering <jim@meyering.net> | 2007-08-26 00:48:41 +0200 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2007-08-30 17:26:31 +0200 |
commit | bfe49f506f3385329d37baf4e242529049cfc887 (patch) | |
tree | b733f1eab08d76de29be4524fe369badafb6f40e /build-aux/git-version-gen | |
parent | 8138613746eb31748709d2352e1a11f6efcdc6d3 (diff) | |
download | coreutils-bfe49f506f3385329d37baf4e242529049cfc887.tar.xz |
Make inter-release --version output more useful.
Now, each snapshot has a version "number" like 6.9-219-g58ddd,
which indicates that it is built using the 219th change set
(in _some_ repository) following the "v6.9" tag, and that 58ddd
is a prefix of the commit SHA1.
* build-aux/git-version-gen: New file.
* configure.ac: Run it to set the version.
* Makefile.am (dist-hook): Arrange so that .version appears only
in distribution tarballs, never in a checked-out repository.
* .gitignore: Add .version here, too. Just in case.
Signed-off-by: Jim Meyering <jim@meyering.net>
Diffstat (limited to 'build-aux/git-version-gen')
-rwxr-xr-x | build-aux/git-version-gen | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen new file mode 100755 index 000000000..4a631116b --- /dev/null +++ b/build-aux/git-version-gen @@ -0,0 +1,59 @@ +#!/bin/sh +# Print a version string. +# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/. + +case $# in + 2) ;; + *) echo 1>&2 "Usage: $0 \$VERSION \$srcdir/.version"; exit 1;; +esac + +default_version=$1 +tarball_version_file=$2 +nl=' +' + +# First see if there is a tarball-only version file. +# then try git-describe, then default. +if test -f $tarball_version_file +then + v=`cat $tarball_version_file` || exit 1 + case $v in + *$nl*) v= ;; # reject multi-line output + [0-9]*) ;; + *) v= ;; + esac + test -z "$v" \ + && echo "$0: WARNING: $tarball_version_file seems to be damaged" 1>&2 +fi + +if test -n "$v" +then + : # use $v +elif test -d .git \ + && v=`git describe --abbrev=4 HEAD 2>/dev/null` \ + && case $v in + # FIXME: remove this after v6.10. + COREUTILS-[0-9]*) v=`echo "$v" | sed 's/^COREUTILS-//;s/_/./g'` ;; + v[0-9]*) ;; + *) (exit 1) ;; + esac +then + v=`echo "$v" | sed 's/-/./g'`; +else + v=$default_version +fi + +v=`echo "$v" |sed 's/^v//'` + +dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty= +case "$dirty" in + '') ;; + *) # Append the suffix only if there isn't one already. + case $v in + *-dirty) ;; + *) v="$v-dirty" ;; + esac ;; +esac + +# Omit the trailing newline, so that m4_esyscmd can use the result directly. +echo "$v" | tr -d '\012' |