From 1ae15ca163c85f5bce5fdfca5fa73af39ee7ffaa Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Wed, 10 Aug 2011 13:36:36 +0300 Subject: [PATCH] generate-version.sh fixes Make it work with detached heads and historical builds. Previously a detached head broke the build, and trying to do git checkout master; git reset --hard sbcl-1.0.50; sh make.sh got the version number wrong. --- generate-version.sh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/generate-version.sh b/generate-version.sh index fdfa381..ff7ea49 100755 --- a/generate-version.sh +++ b/generate-version.sh @@ -26,9 +26,23 @@ generate_version() { fi # Build it. version_head=`git rev-parse HEAD` + if expr "`cat .git/HEAD`" : "ref: refs/heads/.*" > /dev/null 2>&1 + then + version_branchname=`cut -d / -f 3- < .git/HEAD` + else + # Detached head. + version_branchname="HEAD" + fi if [ -z "$SBCL_BUILDING_RELEASE_FROM" ] then - version_root="origin/master" + if [ "`git rev-list HEAD --not origin/master`" = '' ] + then + # If origin/master contains all the commits on current + # branch, use current head as the root instead. + version_root="$version_branchname" + else + version_root="origin/master" + fi else version_root="$SBCL_BUILDING_RELEASE_FROM" fi @@ -71,7 +85,6 @@ EOF else echo "base=$version_base" echo "head=$version_head" - version_branchname=`git describe --contains --all HEAD` printf "\"%s.%s.%s.%s%s%s\"\n" \ $version_release $version_n_root \ $version_branchname $version_n_branch \ -- 1.7.10.4