From: Jim Meyering Date: Mon, 3 Jan 2011 18:35:19 +0000 (+0100) Subject: git-version-gen: handle failed "git rev-list" X-Git-Tag: v0.1~3393 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=98e2bedbc92b816b68ee8092224b1e11f37b6596;p=gnulib.git git-version-gen: handle failed "git rev-list" * build-aux/git-version-gen: Rather than leaking a "fatal" error from git and proceeding as if it had succeeded but printed no SHA1 checksums, suppress the diagnostic and handle the failure. Reported by Bruce Korb in http://marc.info/?l=git&m=129399145930450&w=2 --- diff --git a/ChangeLog b/ChangeLog index 749ad915a..88ed95367 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2011-01-03 Jim Meyering + git-version-gen: handle failed "git rev-list" + * build-aux/git-version-gen: Rather than leaking a "fatal" error + from git and proceeding as if it had succeeded but printed no SHA1 + checksums, suppress the diagnostic and handle the failure. + Reported by Bruce Korb in http://marc.info/?l=git&m=129399145930450&w=2 + git-version-gen: include command name in one more diagnostic * build-aux/git-version-gen: When the required .tarball-version file was missing or unreadable, you might see the diagnostic from "cat", diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen index c33767342..dd893f9e4 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-03.10; # UTC +scriptversion=2011-01-03.18; # UTC # Copyright (C) 2007-2011 Free Software Foundation, Inc. # @@ -122,8 +122,12 @@ then # result is the same as if we were using the newer version # of git describe. vtag=`echo "$v" | sed 's/-.*//'` - numcommits=`git rev-list "$vtag"..HEAD | wc -l` + commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \ + || { commit_list=failed; + echo "$0: WARNING: git rev-list failed" 1>&2; } + numcommits=`echo "$commit_list" | wc -l` v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`; + test "$commit_list" = failed && v=UNKNOWN ;; esac