tracing: Refactor TRACE_IRQFLAGS_SUPPORT in Kconfig
[linux-2.6-microblaze.git] / scripts / setlocalversion
index 6865df6..6b54e46 100755 (executable)
@@ -59,24 +59,12 @@ scm_version()
                        fi
                        # If we are past a tagged commit (like
                        # "v2.6.30-rc5-302-g72357d5"), we pretty print it.
-                       #
-                       # 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
+                       if atag="$(git describe 2>/dev/null)"; then
+                               echo "$atag" | awk -F- '{printf("-%05d", $(NF-1))}'
                        fi
+
+                       # Add -g and exactly 12 hex chars.
+                       printf '%s%s' -g "$(echo $head | cut -c1-12)"
                fi
 
                # Check for uncommitted changes.
@@ -143,15 +131,16 @@ res="${res}${CONFIG_LOCALVERSION}${LOCALVERSION}"
 if test "$CONFIG_LOCALVERSION_AUTO" = "y"; then
        # full scm version string
        res="$res$(scm_version)"
-else
-       # append a plus sign if the repository is not in a clean
-       # annotated or signed tagged state (as git describe only
-       # looks at signed or annotated tags - git tag -a/-s) and
-       # LOCALVERSION= is not specified
-       if test "${LOCALVERSION+set}" != "set"; then
-               scm=$(scm_version --short)
-               res="$res${scm:++}"
-       fi
+elif [ "${LOCALVERSION+set}" != "set" ]; then
+       # If the variable LOCALVERSION is not set, append a plus
+       # sign if the repository is not in a clean annotated or
+       # signed tagged state (as git describe only looks at signed
+       # or annotated tags - git tag -a/-s).
+       #
+       # If the variable LOCALVERSION is set (including being set
+       # to an empty string), we don't want to append a plus sign.
+       scm=$(scm_version --short)
+       res="$res${scm:++}"
 fi
 
 echo "$res"