annotate build-aux/git-version-gen @ 14093:bae3b310c970

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", but no trace of the name of the invoking script. Now, you still see the diagnostic from cat, but also get one from "git-version-gen: ". Inspired by a patch from Bruce Korb.
author Jim Meyering <meyering@redhat.com>
date Mon, 03 Jan 2011 11:50:43 +0100
parents 97fc9a21a8fb
children 14bd4f47ae3f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
1 #!/bin/sh
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
2 # Print a version string.
14093
bae3b310c970 git-version-gen: include command name in one more diagnostic
Jim Meyering <meyering@redhat.com>
parents: 14079
diff changeset
3 scriptversion=2011-01-03.10; # UTC
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
4
14079
97fc9a21a8fb maint: update almost all copyright ranges to include 2011
Jim Meyering <meyering@redhat.com>
parents: 13803
diff changeset
5 # Copyright (C) 2007-2011 Free Software Foundation, Inc.
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
6 #
11986
ff87a690cd47 Fix copyright header in build-aux scripts.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9877
diff changeset
7 # This program is free software: you can redistribute it and/or modify
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
8 # it under the terms of the GNU General Public License as published by
11986
ff87a690cd47 Fix copyright header in build-aux scripts.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9877
diff changeset
9 # the Free Software Foundation; either version 3 of the License, or
ff87a690cd47 Fix copyright header in build-aux scripts.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9877
diff changeset
10 # (at your option) any later version.
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
11 #
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
15 # GNU General Public License for more details.
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
16 #
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
17 # You should have received a copy of the GNU General Public License
11986
ff87a690cd47 Fix copyright header in build-aux scripts.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9877
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19
9452
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
20 # This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/.
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
21 # It may be run two ways:
9677
54e86898dd7d * build-aux/git-version-gen: Use "git status", not "git-status".
Jim Meyering <meyering@redhat.com>
parents: 9452
diff changeset
22 # - from a git repository in which the "git describe" command below
9452
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
23 # produces useful output (thus requiring at least one signed tag)
9748
c0c8409cb7a2 * build-aux/git-version-gen: Adjust a comment and the Usage string.
Jim Meyering <meyering@redhat.com>
parents: 9719
diff changeset
24 # - from a non-git-repo directory containing a .tarball-version file, which
9677
54e86898dd7d * build-aux/git-version-gen: Use "git status", not "git-status".
Jim Meyering <meyering@redhat.com>
parents: 9452
diff changeset
25 # presumes this script is invoked like "./git-version-gen .tarball-version".
9452
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
26
9869
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
27 # In order to use intra-version strings in your project, you will need two
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
28 # separate generated version string files:
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
29 #
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
30 # .tarball-version - present only in a distribution tarball, and not in
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
31 # a checked-out repository. Created with contents that were learned at
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
32 # the last time autoconf was run, and used by git-version-gen. Must not
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
33 # be present in either $(srcdir) or $(builddir) for git-version-gen to
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
34 # give accurate answers during normal development with a checked out tree,
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
35 # but must be present in a tarball when there is no version control system.
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
36 # Therefore, it cannot be used in any dependencies. GNUmakefile has
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
37 # hooks to force a reconfigure at distribution time to get the value
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
38 # correct, without penalizing normal development with extra reconfigures.
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
39 #
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
40 # .version - present in a checked-out repository and in a distribution
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
41 # tarball. Usable in dependencies, particularly for files that don't
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
42 # want to depend on config.h but do want to track version changes.
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
43 # Delete this file prior to any autoconf run where you want to rebuild
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
44 # files to pick up a version string change; and leave it stale to
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
45 # minimize rebuild time after unrelated changes to configure sources.
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
46 #
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
47 # It is probably wise to add these two files to .gitignore, so that you
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
48 # don't accidentally commit either generated file.
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
49 #
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
50 # Use the following line in your configure.ac, so that $(VERSION) will
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
51 # automatically be up-to-date each time configure is run (and note that
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
52 # since configure.ac no longer includes a version string, Makefile rules
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
53 # should not depend on configure.ac for version updates).
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
54 #
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
55 # AC_INIT([GNU project],
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
56 # m4_esyscmd([build-aux/git-version-gen .tarball-version]),
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
57 # [bug-project@example])
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
58 #
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
59 # Then use the following lines in your Makefile.am, so that .version
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
60 # will be present for dependencies, and so that .tarball-version will
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
61 # exist in distribution tarballs.
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
62 #
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
63 # BUILT_SOURCES = $(top_srcdir)/.version
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
64 # $(top_srcdir)/.version:
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
65 # echo $(VERSION) > $@-t && mv $@-t $@
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
66 # dist-hook:
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
67 # echo $(VERSION) > $(distdir)/.tarball-version
ea0eb05ec88d Ensure sane .version contents.
Eric Blake <ebb9@byu.net>
parents: 9748
diff changeset
68
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
69 case $# in
13379
d62002e5d9f4 git-version-gen: take a sed script to transform the git tag
Ludovic Courtès <ludo@gnu.org>
parents: 13273
diff changeset
70 1|2) ;;
d62002e5d9f4 git-version-gen: take a sed script to transform the git tag
Ludovic Courtès <ludo@gnu.org>
parents: 13273
diff changeset
71 *) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version" \
d62002e5d9f4 git-version-gen: take a sed script to transform the git tag
Ludovic Courtès <ludo@gnu.org>
parents: 13273
diff changeset
72 '[TAG-NORMALIZATION-SED-SCRIPT]'
d62002e5d9f4 git-version-gen: take a sed script to transform the git tag
Ludovic Courtès <ludo@gnu.org>
parents: 13273
diff changeset
73 exit 1;;
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
74 esac
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
75
9452
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
76 tarball_version_file=$1
13379
d62002e5d9f4 git-version-gen: take a sed script to transform the git tag
Ludovic Courtès <ludo@gnu.org>
parents: 13273
diff changeset
77 tag_sed_script="${2:-s/x/x/}"
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
78 nl='
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
79 '
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
80
13423
ba0385f65ed2 git-version-gen: init shell var to avoid env var influence
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 13379
diff changeset
81 # Avoid meddling by environment variable of the same name.
ba0385f65ed2 git-version-gen: init shell var to avoid env var influence
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 13379
diff changeset
82 v=
ba0385f65ed2 git-version-gen: init shell var to avoid env var influence
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 13379
diff changeset
83
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
84 # First see if there is a tarball-only version file.
9677
54e86898dd7d * build-aux/git-version-gen: Use "git status", not "git-status".
Jim Meyering <meyering@redhat.com>
parents: 9452
diff changeset
85 # then try "git describe", then default.
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
86 if test -f $tarball_version_file
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
87 then
14093
bae3b310c970 git-version-gen: include command name in one more diagnostic
Jim Meyering <meyering@redhat.com>
parents: 14079
diff changeset
88 v=`cat $tarball_version_file` || v=
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
89 case $v in
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
90 *$nl*) v= ;; # reject multi-line output
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
91 [0-9]*) ;;
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
92 *) v= ;;
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
93 esac
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
94 test -z "$v" \
14093
bae3b310c970 git-version-gen: include command name in one more diagnostic
Jim Meyering <meyering@redhat.com>
parents: 14079
diff changeset
95 && echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
96 fi
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
97
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
98 if test -n "$v"
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
99 then
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
100 : # use $v
13803
112326beb7c3 git-version-gen: do require git-VC'd files in cwd
Jim Meyering <meyering@redhat.com>
parents: 13800
diff changeset
101 # Otherwise, if there is at least one git commit involving the working
112326beb7c3 git-version-gen: do require git-VC'd files in cwd
Jim Meyering <meyering@redhat.com>
parents: 13800
diff changeset
102 # directory, and "git describe" output looks sensible, use that to
112326beb7c3 git-version-gen: do require git-VC'd files in cwd
Jim Meyering <meyering@redhat.com>
parents: 13800
diff changeset
103 # derive a version string.
112326beb7c3 git-version-gen: do require git-VC'd files in cwd
Jim Meyering <meyering@redhat.com>
parents: 13800
diff changeset
104 elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
9877
f7b424277771 Use 'git describe --match' if present (added in git 1.5.5).
Eric Blake <ebb9@byu.net>
parents: 9869
diff changeset
105 && v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
f7b424277771 Use 'git describe --match' if present (added in git 1.5.5).
Eric Blake <ebb9@byu.net>
parents: 9869
diff changeset
106 || git describe --abbrev=4 HEAD 2>/dev/null` \
13379
d62002e5d9f4 git-version-gen: take a sed script to transform the git tag
Ludovic Courtès <ludo@gnu.org>
parents: 13273
diff changeset
107 && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
108 && case $v in
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
109 v[0-9]*) ;;
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
110 *) (exit 1) ;;
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
111 esac
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
112 then
9719
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
113 # Is this a new git that lists number of commits since the last
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
114 # tag or the previous older version that did not?
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
115 # Newer: v6.10-77-g0f8faeb
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
116 # Older: v6.10-g0f8faeb
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
117 case $v in
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
118 *-*-*) : git describe is okay three part flavor ;;
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
119 *-*)
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
120 : git describe is older two part flavor
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
121 # Recreate the number of commits and rewrite such that the
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
122 # result is the same as if we were using the newer version
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
123 # of git describe.
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
124 vtag=`echo "$v" | sed 's/-.*//'`
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
125 numcommits=`git rev-list "$vtag"..HEAD | wc -l`
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
126 v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
127 ;;
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
128 esac
ec87f62b97b8 Enable use of older two part flavor 'git describe'.
Bob Proulx <bob@proulx.com>
parents: 9677
diff changeset
129
9452
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
130 # Change the first '-' to a '.', so version-comparing tools work properly.
9677
54e86898dd7d * build-aux/git-version-gen: Use "git status", not "git-status".
Jim Meyering <meyering@redhat.com>
parents: 9452
diff changeset
131 # Remove the "g" in git describe's output string, to save a byte.
9452
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
132 v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
133 else
9452
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
134 v=UNKNOWN
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
135 fi
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
136
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
137 v=`echo "$v" |sed 's/^v//'`
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
138
9452
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
139 # Don't declare a version "dirty" merely because a time stamp has changed.
13220
2bc85bc8ca3a git-version-gen: use "git update-index..." rather than "git status"
Andreas Gruenbacher <agruen@suse.de>
parents: 12902
diff changeset
140 git update-index --refresh > /dev/null 2>&1
9452
595a77da32de git-version-gen: sync from coreutils.
Jim Meyering <meyering@redhat.com>
parents: 9175
diff changeset
141
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
142 dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty=
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
143 case "$dirty" in
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
144 '') ;;
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
145 *) # Append the suffix only if there isn't one already.
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
146 case $v in
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
147 *-dirty) ;;
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
148 *) v="$v-dirty" ;;
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
149 esac ;;
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
150 esac
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
151
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
152 # Omit the trailing newline, so that m4_esyscmd can use the result directly.
13273
27dad1e1ab9b git-version-gen: aesthetic tweak
Jim Meyering <meyering@redhat.com>
parents: 13272
diff changeset
153 echo "$v" | tr -d "$nl"
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
154
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
155 # Local variables:
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
156 # eval: (add-hook 'write-file-hooks 'time-stamp)
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
157 # time-stamp-start: "scriptversion="
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
158 # time-stamp-format: "%:y-%02m-%02d.%02H"
12902
74f6f4021fe0 bootstrap, git-version-gen: use timestamp
Eric Blake <eblake@redhat.com>
parents: 12825
diff changeset
159 # time-stamp-time-zone: "UTC"
74f6f4021fe0 bootstrap, git-version-gen: use timestamp
Eric Blake <eblake@redhat.com>
parents: 12825
diff changeset
160 # time-stamp-end: "; # UTC"
9175
c7f825e034ad * build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff changeset
161 # End: