summaryrefslogtreecommitdiff
path: root/build-aux/git-version-gen
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2011-02-19 20:48:36 +0100
committerJim Meyering <meyering@redhat.com>2011-02-19 22:39:21 +0100
commitfd0201ccc46872c548b158c471aa1e229e5a74a6 (patch)
treecd40f281f01fdd5a10fcdef493f1625cfe88a026 /build-aux/git-version-gen
parent3001b7ba0b3d028afc7c0ff715eb83ebe41ef4ac (diff)
downloadgnulib-fd0201ccc46872c548b158c471aa1e229e5a74a6.tar.gz
git-version-gen: skip "-dirty" check when appropriate
* build-aux/git-version-gen: Don't run any git commands when the version string comes from .tarball-version. Prior to this, we would run git update-index --refresh even from a just-unpacked tarball directory, and that could affect a .git/ directory in a parent of the build directory. Reported by Mike Frysinger.
Diffstat (limited to 'build-aux/git-version-gen')
-rwxr-xr-xbuild-aux/git-version-gen31
1 files changed, 19 insertions, 12 deletions
diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen
index 68c7d6440c..686f7031a6 100755
--- a/build-aux/git-version-gen
+++ b/build-aux/git-version-gen
@@ -1,6 +1,6 @@
#!/bin/sh
# Print a version string.
-scriptversion=2011-01-04.17; # UTC
+scriptversion=2011-02-19.19; # UTC
# Copyright (C) 2007-2011 Free Software Foundation, Inc.
#
@@ -80,6 +80,7 @@ nl='
# Avoid meddling by environment variable of the same name.
v=
+v_from_git=
# First see if there is a tarball-only version file.
# then try "git describe", then default.
@@ -134,24 +135,30 @@ then
# Change the first '-' to a '.', so version-comparing tools work properly.
# Remove the "g" in git describe's output string, to save a byte.
v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
+ v_from_git=1
else
v=UNKNOWN
fi
v=`echo "$v" |sed 's/^v//'`
-# Don't declare a version "dirty" merely because a time stamp has changed.
-git update-index --refresh > /dev/null 2>&1
+# Test whether to append the "-dirty" suffix only if the version
+# string we're using came from git. I.e., skip the test if it's "UNKNOWN"
+# or if it came from .tarball-version.
+if test -n "$v_from_git"; then
+ # Don't declare a version "dirty" merely because a time stamp has changed.
+ git update-index --refresh > /dev/null 2>&1
-dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty=
-case "$dirty" in
- '') ;;
- *) # Append the suffix only if there isn't one already.
- case $v in
- *-dirty) ;;
- *) v="$v-dirty" ;;
- esac ;;
-esac
+ dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty=
+ case "$dirty" in
+ '') ;;
+ *) # Append the suffix only if there isn't one already.
+ case $v in
+ *-dirty) ;;
+ *) v="$v-dirty" ;;
+ esac ;;
+ esac
+fi
# Omit the trailing newline, so that m4_esyscmd can use the result directly.
echo "$v" | tr -d "$nl"