aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/setlocalversion
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2021-05-23 12:14:27 +0900
committerMasahiro Yamada <masahiroy@kernel.org>2021-05-27 04:01:51 +0900
commit630ff0faf84eac6448c851961d4865471a792160 (patch)
treee4db85f1bf319fb49d10daec3bc8d379e3c8cf2f /scripts/setlocalversion
parentscripts/setlocalversion: add more comments to -dirty flag detection (diff)
downloadlinux-dev-630ff0faf84eac6448c851961d4865471a792160.tar.xz
linux-dev-630ff0faf84eac6448c851961d4865471a792160.zip
scripts/setlocalversion: factor out 12-chars hash construction
Both of if and else parts append exactly 12 hex chars, but in different ways. Factor out the else part because we need to support it without relying on git-describe. Remove the --abbrev=12 option since we do not use the hash from git-describe anyway. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: Nico Schottelius <nico-linuxsetlocalversion@schottelius.org>
Diffstat (limited to 'scripts/setlocalversion')
-rwxr-xr-xscripts/setlocalversion22
1 files changed, 5 insertions, 17 deletions
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
index 6865df6699c8..62c0bcce1575 100755
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -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.