Pre-compute FILE_SUM_EXTRA_CNT.
[rsync.git] / mkgitver
index 309beda797e8370b3398a8556c7b152e01d59f7d..fe8a3d1591a80fcae89bd34b41f154497b7cac5c 100755 (executable)
--- a/mkgitver
+++ b/mkgitver
@@ -2,9 +2,19 @@
 
 srcdir=`dirname $0`
 
-if test -e "$srcdir/.git"; then
-    gitver=\"`git describe --abbrev=8 --always`\" || exit 1
-else
-    gitver=RSYNC_VERSION
+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
-echo "#define RSYNC_GITVER $gitver" >git-version.h