Pre-compute FILE_SUM_EXTRA_CNT.
[rsync.git] / mkgitver
index 8e76774cce065fc116d5c3327a9543e47f726c4e..fe8a3d1591a80fcae89bd34b41f154497b7cac5c 100755 (executable)
--- a/mkgitver
+++ b/mkgitver
@@ -1,14 +1,20 @@
 #!/bin/sh
 
 srcdir=`dirname $0`
-gitver=`git describe --abbrev=8 2>/dev/null`
 
-case "$gitver" in
-    *.*)
-       echo "#define RSYNC_GITVER \"$gitver\"" >git-version.h
-       ;;
-    *)
-       # We either create an empty file or update the time on what the user gave us.
-       touch git-version.h
-       ;;
-esac
+if [ ! -f git-version.h ]; then
+    touch git-version.h
+fi
+
+if [ -e "$srcdir/.git" ]; then
+    gitver=`git describe --abbrev=8 2>/dev/null | sed -n '/^v3\.[0-9][0-9]*\.[0-9][0-9]*\(-\|$\)/p'`
+    if [ -n "$gitver" ]; then
+       echo "#define RSYNC_GITVER \"$gitver\"" >git-version.h.new
+       if ! diff git-version.h.new git-version.h >/dev/null; then
+           echo "Updating git-version.h"
+           mv git-version.h.new git-version.h
+       else
+           rm git-version.h.new
+       fi
+    fi
+fi