Mention updated config files.
[rsync.git] / mkgitver
index 8e76774cce065fc116d5c3327a9543e47f726c4e..0102b0894e5f550f6b1e295cc1d1fd6e63322f35 100755 (executable)
--- a/mkgitver
+++ b/mkgitver
@@ -1,14 +1,22 @@
 #!/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 test -d "$srcdir/.git" || test -f "$srcdir/.git"; then
+    gitver=`git describe --abbrev=8 2>/dev/null`
+    # NOTE: I'm avoiding "|" in sed since I'm not sure if sed -r is portable and "\|" fails on some OSes.
+    verchk=`echo "$gitver-" | sed -n '/^v3\.[0-9][0-9]*\.[0-9][0-9]*\(pre[0-9]*\)*-/p'`
+    if [ -n "$verchk" ]; 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