A few more doc tweaks & comment tweaks.
[rsync.git] / mkgitver
index e8461da22a497e15b885bab35c2c5773af582b85..50380c876c4da1322fc668ba58ad36e4c4a2eaba 100755 (executable)
--- a/mkgitver
+++ b/mkgitver
@@ -2,9 +2,19 @@
 
 srcdir=`dirname $0`
 
-if test -d "$srcdir/.git"; then
-    gitver=\"`git describe --tags`\" || exit 1
-else
-    gitver=RSYNC_VERSION
+if [ ! -f git-version.h ]; then
+    touch git-version.h
+fi
+
+if test -d "$srcdir/.git" || test -f "$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