Fix get_version.sh so that it returns the correct version when .git is missing

This commit is contained in:
o9000
2016-02-18 17:35:12 +01:00
parent 67057adeaf
commit 0668e722b6
2 changed files with 37 additions and 23 deletions

View File

@@ -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 2016-01-29 0.12.7
- Fixes: - Fixes:
- Fix crash caused by race when reading inconsistent values for _NET_CURRENT_DESKTOP and _NET_NUMBER_OF_DESKTOPS - Fix crash caused by race when reading inconsistent values for _NET_CURRENT_DESKTOP and _NET_NUMBER_OF_DESKTOPS

View File

@@ -3,34 +3,43 @@
MAJOR=0.12 MAJOR=0.12
DIRTY="" DIRTY=""
git update-index -q --ignore-submodules --refresh if git status 1>/dev/null 2>/dev/null
# Disallow unstaged changes in the working tree
if ! git diff-files --quiet --ignore-submodules --
then 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 then
echo >&2 "Error: there are unstaged changes." if [ "$1" = "--strict" ]
git diff-files --name-status -r --ignore-submodules -- >&2 then
exit 1 echo >&2 "Error: there are unstaged changes."
else git diff-files --name-status -r --ignore-submodules -- >&2
DIRTY="-dirty" exit 1
else
DIRTY="-dirty"
fi
fi
# 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
VERSION=$VERSION-$(head -n 1 ChangeLog | cut -d ' ' -f 1)
fi fi
fi fi
# 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
VERSION=$(echo "$VERSION" | sed 's/^v//') VERSION=$(echo "$VERSION" | sed 's/^v//')
echo '#define VERSION_STRING "'$VERSION'"' > version.h echo '#define VERSION_STRING "'$VERSION'"' > version.h