Fix get_version.sh so that it returns the correct version when .git is missing
o9000 mrovi9000@gmail.com
2 files changed,
34 insertions(+),
20 deletions(-)
M
ChangeLog
→
ChangeLog
@@ -1,3 +1,8 @@
+2016-02-18 master +- Fixes: + - Fix get_version.sh so that it returns the correct version when .git is missing + - Create temporary files in /tmp + 2016-01-29 0.12.7 - Fixes: - Fix crash caused by race when reading inconsistent values for _NET_CURRENT_DESKTOP and _NET_NUMBER_OF_DESKTOPS
M
get_version.sh
→
get_version.sh
@@ -3,34 +3,43 @@
MAJOR=0.12 DIRTY="" -git update-index -q --ignore-submodules --refresh -# Disallow unstaged changes in the working tree -if ! git diff-files --quiet --ignore-submodules -- +if git status 1>/dev/null 2>/dev/null then - if [ "$1" = "--strict" ] + git update-index -q --ignore-submodules --refresh + # Disallow unstaged changes in the working tree + if ! git diff-files --quiet --ignore-submodules -- then - echo >&2 "Error: there are unstaged changes." - git diff-files --name-status -r --ignore-submodules -- >&2 - exit 1 - else - DIRTY="-dirty" + if [ "$1" = "--strict" ] + then + echo >&2 "Error: there are unstaged changes." + git diff-files --name-status -r --ignore-submodules -- >&2 + exit 1 + else + DIRTY="-dirty" + fi fi -fi -# Disallow uncommitted changes in the index -if ! git diff-index --cached --quiet HEAD --ignore-submodules -- -then - if [ "$1" = "--strict" ] + # Disallow uncommitted changes in the index + if ! git diff-index --cached --quiet HEAD --ignore-submodules -- + then + if [ "$1" = "--strict" ] + then + echo >&2 "Error: there are uncommitted changes." + git diff-index --cached --name-status -r --ignore-submodules HEAD -- >&2 + exit 1 + else + DIRTY="-dirty" + fi + fi + VERSION=$(git describe --exact-match 2>/dev/null || echo "$MAJOR-git$(git show -s --pretty=format:%cI.%h | tr -d ':' | tr -d '-' | tr '.' '-' | sed 's/T[0-9\+]*//g')")$DIRTY +else + VERSION=$(head -n 1 ChangeLog | cut -d ' ' -f 2) + if [ $VERSION = "master" ] then - echo >&2 "Error: there are uncommitted changes." - git diff-index --cached --name-status -r --ignore-submodules HEAD -- >&2 - exit 1 - else - DIRTY="-dirty" + VERSION=$VERSION-$(head -n 1 ChangeLog | cut -d ' ' -f 1) fi fi -VERSION=$(git describe --exact-match 2>/dev/null || echo "$MAJOR-git$(git show -s --pretty=format:%cI.%h | tr -d ':' | tr -d '-' | tr '.' '-' | sed 's/T[0-9\+]*//g')")$DIRTY VERSION=$(echo "$VERSION" | sed 's/^v//') echo '#define VERSION_STRING "'$VERSION'"' > version.h