version.sh: Unify version generation
authorJeremy Kerr <jk@ozlabs.org>
Fri, 14 Mar 2014 02:53:04 +0000 (10:53 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Wed, 16 Jul 2014 00:43:08 +0000 (08:43 +0800)
This change includes a few fixes to the version.sh script, in order to
unify the versions generated from git vs. dev- versions. We unify on a
simple YYYYMMDD format, and drop the time specifier (if you're relying
on time info, you probably have the git SHAs to lookup from instead).

We also clean up the date-generation code, by using printf's %T
formatter, on git's %ct time specification, rather than trying to
transform a %ci date.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
version.sh

index eed8d3a72f4981761614b215df49a995d1e3a3ab..4d96d11250beb4351c1d9a190f27533c6383116f 100755 (executable)
@@ -3,32 +3,25 @@
 # version.sh: create a version string for use by configure.ac
 
 version=
+datefmt='%Y%m%d'
 
-if head=$(git rev-parse --short --verify HEAD 2>/dev/null); then
+if head=$(git rev-parse --short=8 --verify HEAD 2>/dev/null); then
 
-       # If available, use the git commit revision for the package version.
+       # If available, use the git commit revision for the package version,
+       # and add a date prefix for easy comparisons.
 
-       # Add a date prefix for easy reading.
-       # date='2010-11-30 16:36:09 -0800'
-
-       date=$(git log --pretty=format:"%ci" -1 HEAD)
-       date=${date##20}
-       date=${date%%:[0-9][0-9] *}
-       date=${date//-/.}
-       date=${date// /.}
-       date=${date//:/.}
-
-       version=$(printf '%s-%s%s' ${date} g ${head})
+       date=$(git log --pretty=format:"%ct" -1 HEAD)
 
+       suffix=''
        # Add a '-dirty' postfix for uncommitted changes.
-
        if git diff-index HEAD | read dummy; then
-               version=`printf '%s%s' ${version} -dirty`
+               suffix=-dirty
        fi
+
+       version=$(printf "%($datefmt)T-g%s%s" ${date} ${head} ${suffix})
 else
        # Default to current date and time.
-
-       version="dev-$(date +%y.%m.%d-%H.%M.%S)"
+       version="$(date +dev-$datefmt)"
 fi
 
 echo $version