From 5a3a05b2b0c0d417a2a5ab57a0caaa0e6b7a26af Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Fri, 14 Mar 2014 10:53:04 +0800 Subject: [PATCH] version.sh: Unify version generation 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 --- version.sh | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/version.sh b/version.sh index eed8d3a..4d96d11 100755 --- a/version.sh +++ b/version.sh @@ -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 -- 2.39.2