@@ -34,46 +34,49 @@ scm_version()
3434 short=true
3535 fi
3636
37- # Check for git and a git repo.
38- if test -z " $( git rev-parse --show-cdup 2> /dev/null) " &&
39- head=$( git rev-parse --verify HEAD 2> /dev/null) ; then
40-
41- # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore
42- # it, because this version is defined in the top level Makefile.
43- if [ -z " $( git describe --exact-match 2> /dev/null) " ]; then
44-
45- # If only the short version is requested, don't bother
46- # running further git commands
47- if $short ; then
48- echo " +"
49- return
50- fi
51- # If we are past a tagged commit (like
52- # "v2.6.30-rc5-302-g72357d5"), we pretty print it.
53- if atag=" $( git describe 2> /dev/null) " ; then
54- echo " $atag " | awk -F- ' {printf("-%05d", $(NF-1))}'
55- fi
56-
57- # Add -g and exactly 12 hex chars.
58- printf ' %s%s' -g " $( echo $head | cut -c1-12) "
59- fi
37+ if test -n " $( git rev-parse --show-cdup 2> /dev/null) " ; then
38+ return
39+ fi
40+
41+ if ! head=$( git rev-parse --verify HEAD 2> /dev/null) ; then
42+ return
43+ fi
44+
45+ # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore it
46+ # because this version is defined in the top level Makefile.
47+ if [ -z " $( git describe --exact-match 2> /dev/null) " ]; then
6048
61- # Check for uncommitted changes.
62- # This script must avoid any write attempt to the source tree,
63- # which might be read-only.
64- # You cannot use 'git describe --dirty' because it tries to
65- # create .git/index.lock .
66- # First, with git-status, but --no-optional-locks is only
67- # supported in git >= 2.14, so fall back to git-diff-index if
68- # it fails. Note that git-diff-index does not refresh the
69- # index, so it may give misleading results. See
70- # git-update-index(1), git-diff-index(1), and git-status(1).
71- if {
72- git --no-optional-locks status -uno --porcelain 2> /dev/null ||
73- git diff-index --name-only HEAD
74- } | read dummy; then
75- printf ' %s' -dirty
49+ # If only the short version is requested, don't bother
50+ # running further git commands
51+ if $short ; then
52+ echo " +"
53+ return
7654 fi
55+ # If we are past a tagged commit (like
56+ # "v2.6.30-rc5-302-g72357d5"), we pretty print it.
57+ if atag=" $( git describe 2> /dev/null) " ; then
58+ echo " $atag " | awk -F- ' {printf("-%05d", $(NF-1))}'
59+ fi
60+
61+ # Add -g and exactly 12 hex chars.
62+ printf ' %s%s' -g " $( echo $head | cut -c1-12) "
63+ fi
64+
65+ # Check for uncommitted changes.
66+ # This script must avoid any write attempt to the source tree, which
67+ # might be read-only.
68+ # You cannot use 'git describe --dirty' because it tries to create
69+ # .git/index.lock .
70+ # First, with git-status, but --no-optional-locks is only supported in
71+ # git >= 2.14, so fall back to git-diff-index if it fails. Note that
72+ # git-diff-index does not refresh the index, so it may give misleading
73+ # results.
74+ # See git-update-index(1), git-diff-index(1), and git-status(1).
75+ if {
76+ git --no-optional-locks status -uno --porcelain 2> /dev/null ||
77+ git diff-index --name-only HEAD
78+ } | read dummy; then
79+ printf ' %s' -dirty
7780 fi
7881}
7982
0 commit comments