From 1060f29056dc0365df63553ab0b225055c8c516d Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Fri, 14 Mar 2014 11:06:10 +0800 Subject: [PATCH] version.sh: Use git tags in versions If the current HEAD is tagged, we'd like to use that tag as the version. We remove a 'v' prefix, so that v1.0 -> 1.0 Signed-off-by: Jeremy Kerr --- version.sh | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/version.sh b/version.sh index 4d96d11..18981f6 100755 --- a/version.sh +++ b/version.sh @@ -7,18 +7,22 @@ datefmt='%Y%m%d' if head=$(git rev-parse --short=8 --verify HEAD 2>/dev/null); then - # If available, use the git commit revision for the package version, - # and add a date prefix for easy comparisons. - - date=$(git log --pretty=format:"%ct" -1 HEAD) - suffix='' - # Add a '-dirty' postfix for uncommitted changes. + # Add a '-dirty' suffix for uncommitted changes. if git diff-index HEAD | read dummy; then suffix=-dirty fi - version=$(printf "%($datefmt)T-g%s%s" ${date} ${head} ${suffix}) + if tag=$(git describe --tags --exact-match 2>/dev/null); then + # use a tag; remove any 'v' prefix from v tags + tag=${tag#v} + version=$(printf "%s%s" ${tag} ${suffix}) + else + # Use the git commit revision for the package version, and add + # a date prefix for easy comparisons. + date=$(git log --pretty=format:"%ct" -1 HEAD) + version=$(printf "%($datefmt)T-g%s%s" ${date} ${head} ${suffix}) + fi else # Default to current date and time. version="$(date +dev-$datefmt)" -- 2.39.2