hrtimer: Remove unused inline function debug_hrtimer_free()
[linux-2.6-microblaze.git] / scripts / setlocalversion
index a2998b1..bb709ed 100755 (executable)
@@ -45,11 +45,11 @@ scm_version()
 
        # Check for git and a git repo.
        if test -z "$(git rev-parse --show-cdup 2>/dev/null)" &&
-          head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
+          head=$(git rev-parse --verify HEAD 2>/dev/null); then
 
                # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore
                # it, because this version is defined in the top level Makefile.
-               if [ -z "`git describe --exact-match 2>/dev/null`" ]; then
+               if [ -z "$(git describe --exact-match 2>/dev/null)" ]; then
 
                        # If only the short version is requested, don't bother
                        # running further git commands
@@ -59,18 +59,29 @@ scm_version()
                        fi
                        # If we are past a tagged commit (like
                        # "v2.6.30-rc5-302-g72357d5"), we pretty print it.
-                       if atag="`git describe 2>/dev/null`"; then
-                               echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
-
-                       # If we don't have a tag at all we print -g{commitish}.
+                       #
+                       # Ensure the abbreviated sha1 has exactly 12
+                       # hex characters, to make the output
+                       # independent of git version, local
+                       # core.abbrev settings and/or total number of
+                       # objects in the current repository - passing
+                       # --abbrev=12 ensures a minimum of 12, and the
+                       # awk substr() then picks the 'g' and first 12
+                       # hex chars.
+                       if atag="$(git describe --abbrev=12 2>/dev/null)"; then
+                               echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),substr($(NF),0,13))}'
+
+                       # If we don't have a tag at all we print -g{commitish},
+                       # again using exactly 12 hex chars.
                        else
+                               head="$(echo $head | cut -c1-12)"
                                printf '%s%s' -g $head
                        fi
                fi
 
                # Is this git on svn?
                if git config --get svn-remote.svn.url >/dev/null; then
-                       printf -- '-svn%s' "`git svn find-rev $head`"
+                       printf -- '-svn%s' "$(git svn find-rev $head)"
                fi
 
                # Check for uncommitted changes.
@@ -91,15 +102,15 @@ scm_version()
        fi
 
        # Check for mercurial and a mercurial repo.
-       if test -d .hg && hgid=`hg id 2>/dev/null`; then
+       if test -d .hg && hgid=$(hg id 2>/dev/null); then
                # Do we have an tagged version?  If so, latesttagdistance == 1
-               if [ "`hg log -r . --template '{latesttagdistance}'`" = "1" ]; then
-                       id=`hg log -r . --template '{latesttag}'`
+               if [ "$(hg log -r . --template '{latesttagdistance}')" = "1" ]; then
+                       id=$(hg log -r . --template '{latesttag}')
                        printf '%s%s' -hg "$id"
                else
-                       tag=`printf '%s' "$hgid" | cut -d' ' -f2`
+                       tag=$(printf '%s' "$hgid" | cut -d' ' -f2)
                        if [ -z "$tag" -o "$tag" = tip ]; then
-                               id=`printf '%s' "$hgid" | sed 's/[+ ].*//'`
+                               id=$(printf '%s' "$hgid" | sed 's/[+ ].*//')
                                printf '%s%s' -hg "$id"
                        fi
                fi
@@ -115,8 +126,8 @@ scm_version()
        fi
 
        # Check for svn and a svn repo.
-       if rev=`LANG= LC_ALL= LC_MESSAGES=C svn info 2>/dev/null | grep '^Last Changed Rev'`; then
-               rev=`echo $rev | awk '{print $NF}'`
+       if rev=$(LANG= LC_ALL= LC_MESSAGES=C svn info 2>/dev/null | grep '^Last Changed Rev'); then
+               rev=$(echo $rev | awk '{print $NF}')
                printf -- '-svn%s' "$rev"
 
                # All done with svn