Commit 630ff0fa authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

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: default avatarMasahiro Yamada <masahiroy@kernel.org>
Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: default avatarNico Schottelius <nico-linuxsetlocalversion@schottelius.org>
parent ffaf62a8
Loading
Loading
Loading
Loading
+5 −17
Original line number Diff line number Diff line
@@ -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.