All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Schier <nicolas@fjasle.eu>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
	Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Subject: Re: [PATCH 3/7] setlocalversion: make indentation shallower
Date: Sun, 29 Jan 2023 22:31:12 +0100	[thread overview]
Message-ID: <Y9bloPVG++Vk2Exz@bergen.fjasle.eu> (raw)
In-Reply-To: <20230122141428.115372-3-masahiroy@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 3893 bytes --]

On Sun 22 Jan 2023 23:14:23 GMT, Masahiro Yamada wrote:
> Return earlier if we are not in the correct git repository. This makes
> the code more readable.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> 
>  scripts/setlocalversion | 79 +++++++++++++++++++++--------------------
>  1 file changed, 41 insertions(+), 38 deletions(-)
> 
> diff --git a/scripts/setlocalversion b/scripts/setlocalversion
> index 5cdf409204aa..b8e1018d611e 100755
> --- a/scripts/setlocalversion
> +++ b/scripts/setlocalversion
> @@ -34,46 +34,49 @@ scm_version()
>  		short=true
>  	fi
>  
> -	# Check for git and a git repo.
> -	if test -z "$(git rev-parse --show-cdup 2>/dev/null)" &&
> -	   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 only the short version is requested, don't bother
> -			# running further git commands
> -			if $short; then
> -				echo "+"
> -				return
> -			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", $(NF-1))}'
> -			fi
> -
> -			# Add -g and exactly 12 hex chars.
> -			printf '%s%s' -g "$(echo $head | cut -c1-12)"
> -		fi
> +	if test -n "$(git rev-parse --show-cdup 2>/dev/null)"; then
> +		return
> +	fi
> +
> +	if ! head=$(git rev-parse --verify HEAD 2>/dev/null); then
> +		return
> +	fi
> +
> +	# 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
>  
> -		# Check for uncommitted changes.
> -		# This script must avoid any write attempt to the source tree,
> -		# which might be read-only.
> -		# You cannot use 'git describe --dirty' because it tries to
> -		# create .git/index.lock .
> -		# First, with git-status, but --no-optional-locks is only
> -		# supported in git >= 2.14, so fall back to git-diff-index if
> -		# it fails. Note that git-diff-index does not refresh the
> -		# index, so it may give misleading results. See
> -		# git-update-index(1), git-diff-index(1), and git-status(1).
> -		if {
> -			git --no-optional-locks status -uno --porcelain 2>/dev/null ||
> -			git diff-index --name-only HEAD
> -		} | read dummy; then
> -			printf '%s' -dirty
> +		# If only the short version is requested, don't bother
> +		# running further git commands
> +		if $short; then
> +			echo "+"
> +			return
>  		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", $(NF-1))}'
> +		fi
> +
> +		# Add -g and exactly 12 hex chars.
> +		printf '%s%s' -g "$(echo $head | cut -c1-12)"
> +	fi
> +
> +	# Check for uncommitted changes.
> +	# This script must avoid any write attempt to the source tree, which
> +	# might be read-only.
> +	# You cannot use 'git describe --dirty' because it tries to create
> +	# .git/index.lock .
> +	# First, with git-status, but --no-optional-locks is only supported in
> +	# git >= 2.14, so fall back to git-diff-index if it fails. Note that
> +	# git-diff-index does not refresh the index, so it may give misleading
> +	# results.
> +	# See git-update-index(1), git-diff-index(1), and git-status(1).
> +	if {
> +		git --no-optional-locks status -uno --porcelain 2>/dev/null ||
> +		git diff-index --name-only HEAD
> +	} | read dummy; then
> +		printf '%s' -dirty
>  	fi
>  }
>  
> -- 
> 2.34.1

Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2023-01-29 21:37 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-22 14:14 [PATCH 1/7] kbuild: do not put .scmversion into the source tarball Masahiro Yamada
2023-01-22 14:14 ` [PATCH 2/7] setlocalversion: simplify the construction of the short version Masahiro Yamada
2023-01-29 21:30   ` Nicolas Schier
2023-01-22 14:14 ` [PATCH 3/7] setlocalversion: make indentation shallower Masahiro Yamada
2023-01-29 21:31   ` Nicolas Schier [this message]
2023-01-22 14:14 ` [PATCH 4/7] setlocalversion: use only the correct release tag for git-describe Masahiro Yamada
2023-02-05 12:02   ` Masahiro Yamada
2023-01-22 14:14 ` [PATCH 5/7] setlocalversion: absorb $(KERNELVERSION) Masahiro Yamada
2023-01-22 14:14 ` [PATCH 6/7] setlocalversion: print ${KERNELRELEASE} if set Masahiro Yamada
2023-01-27 16:19   ` Masahiro Yamada
2023-01-22 14:14 ` [PATCH 7/7] kbuild: do not re-run setlocalversion for kernelrelease Masahiro Yamada
2023-02-01 13:09   ` Masahiro Yamada
2023-01-27 15:07 ` [PATCH 1/7] kbuild: do not put .scmversion into the source tarball Thierry Reding
2023-01-27 15:50   ` Masahiro Yamada
2023-01-27 19:29 ` Nathan Chancellor
2023-01-28  1:11   ` Masahiro Yamada
2023-01-29 21:29 ` Nicolas Schier
2023-01-30  1:44   ` Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y9bloPVG++Vk2Exz@bergen.fjasle.eu \
    --to=nicolas@fjasle.eu \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=rasmus.villemoes@prevas.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.