git-version-gen: don't require that .git/ be in the current dir
authorJim Meyering <meyering@redhat.com>
Wed, 13 Oct 2010 14:08:36 +0000 (16:08 +0200)
committerJim Meyering <meyering@redhat.com>
Wed, 13 Oct 2010 14:08:36 +0000 (16:08 +0200)
* build-aux/git-version-gen: Adjust this script so that it works
when run from any working directory beneath the top-level .git/-
containing directory.  Inspired by a patch from Giusseppe Scrivano,
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/21843/focus=21847

ChangeLog
build-aux/git-version-gen

index e7838e1..9a4ed57 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2010-10-13  Jim Meyering  <meyering@redhat.com>
 
+       git-version-gen: don't require that .git/ be in the current dir
+       * build-aux/git-version-gen: Adjust this script so that it works
+       when run from any working directory beneath the top-level .git/-
+       containing directory.  Inspired by a patch from Giusseppe Scrivano,
+       http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/21843/focus=21847
+
        test-select: avoid warn_unused_result warnings
        * tests/test-select.c: Include "macros.h".
        ASSERT that each call to read, write, and pipe succeeds.
index 5617eb8..6262775 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Print a version string.
-scriptversion=2010-06-14.19; # UTC
+scriptversion=2010-10-13.14; # UTC
 
 # Copyright (C) 2007-2010 Free Software Foundation, Inc.
 #
@@ -98,7 +98,9 @@ fi
 if test -n "$v"
 then
     : # use $v
-elif test -d .git \
+# Otherwise, if we're anywhere beneath a .git directory, and "git describe"
+# output looks sensible, use that to derive a version string.
+elif git rev-parse --verify HEAD > /dev/null 2>&1 \
     && v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
          || git describe --abbrev=4 HEAD 2>/dev/null` \
     && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \