Code

GIT-VERSION-FILE: check ./version first.
authorJunio C Hamano <junkio@cox.net>
Wed, 14 Feb 2007 19:33:04 +0000 (11:33 -0800)
committerJunio C Hamano <junkio@cox.net>
Wed, 14 Feb 2007 23:25:27 +0000 (15:25 -0800)
When somebody else extracts git tarball inside a larger project,
'git describe' would reported the version number of that upper
level project.

Sometimes, using the consistent versioning across subdirectories
of a larger project is useful, but it may not always be the
right thing to do.

This changes the script to check ./vertion file first, and then
fall back to "git describe".  This way, by default, tarball
distribution will get our own version.  If the upper level wants
to use consistent versioning across its subdirectories, its
Makefile can overwrite ./version file to force whatever version
number they want to give us before descending into us.

Signed-off-by: Junio C Hamano <junkio@cox.net>
GIT-VERSION-GEN

index febacd2dc9a91cfd9135a64ee554d14282a105d2..6abde8d7b36865c0c8f43b4489ce0074a27f24c8 100755 (executable)
@@ -6,18 +6,19 @@ DEF_VER=v1.5.0.GIT
 LF='
 '
 
-# First try git-describe, then see if there is a version file
-# (included in release tarballs), then default
-if VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
-   case "$VN" in
-   *$LF*) (exit 1) ;;
-   v[0-9]*) : happy ;;
-   esac
-then
-       VN=$(echo "$VN" | sed -e 's/-/./g');
-elif test -f version
+# First see if there is a version file (included in release tarballs),
+# then try git-describe, then default.
+if test -f version
 then
        VN=$(cat version) || VN="$DEF_VER"
+elif test -d .git &&
+       VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
+       case "$VN" in
+       *$LF*) (exit 1) ;;
+       v[0-9]*) : happy ;;
+       esac
+then
+       VN=$(echo "$VN" | sed -e 's/-/./g');
 else
        VN="$DEF_VER"
 fi