summaryrefslogtreecommitdiff
path: root/git-gui/GIT-VERSION-GEN
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2007-02-11 23:04:00 -0800
committerLibravatar Junio C Hamano <junkio@cox.net>2007-02-11 23:04:00 -0800
commitb4d2b04c9b6dc42c0bcf0513b9d8f731ec26db82 (patch)
tree158e193e215cfa689421a087f4d15acac4c4b3ea /git-gui/GIT-VERSION-GEN
parentAdd discussion section to git-tag documentation. (diff)
parentgit-gui: Stop deleting gitk preferences. (diff)
downloadtgif-b4d2b04c9b6dc42c0bcf0513b9d8f731ec26db82.tar.xz
Merge git-gui
This merges git-gui project of Shawn as a subproject of git.git at git-gui/ subdirectory. This merge only melds two histories together. The toplevel Makefile does not even know about git-gui yet. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-gui/GIT-VERSION-GEN')
-rwxr-xr-xgit-gui/GIT-VERSION-GEN46
1 files changed, 46 insertions, 0 deletions
diff --git a/git-gui/GIT-VERSION-GEN b/git-gui/GIT-VERSION-GEN
new file mode 100755
index 0000000000..79f1c527ff
--- /dev/null
+++ b/git-gui/GIT-VERSION-GEN
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+GVF=GIT-VERSION-FILE
+DEF_VER=v0.5.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
+then
+ VN=$(cat version) || VN="$DEF_VER"
+else
+ VN="$DEF_VER"
+fi
+
+VN=$(expr "$VN" : v*'\(.*\)')
+
+dirty=$(sh -c 'git diff-index --name-only HEAD' 2>/dev/null) || dirty=
+case "$dirty" in
+'')
+ ;;
+*)
+ VN="$VN-dirty" ;;
+esac
+
+if test -r $GVF
+then
+ VC=$(sed -e 's/^GIT_VERSION = //' <$GVF)
+else
+ VC=unset
+fi
+test "$VN" = "$VC" || {
+ echo >&2 "GIT_VERSION = $VN"
+ echo "GIT_VERSION = $VN" >$GVF
+}
+
+