git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/2] version-gen: cleanup

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 13, 2013, 06:10 UTC
Message-ID
<xmqqy571j7t6.fsf@gitster.dls.corp.google.com>
In-Reply-To
<1379035046-6688-2-git-send-email-felipe.contreras@gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
Show 22 quoted lines
> +describe () {
> +	VN=$(git describe --match "v[0-9]*" --abbrev=7 HEAD 2>/dev/null) || return 1
>  	case "$VN" in
> +	*$LF*)
> +		return 1
> +		;;
>  	v[0-9]*)
>  		git update-index -q --refresh
>  		test -z "$(git diff-index --name-only HEAD --)" ||
> +		VN="$VN-dirty"
> +		return 0
> +		;;
>  	esac
> +}
> +
> +# First see if there is a version file (included in release tarballs),
> +# then try 'git describe', then default.
> +if test -f version
> +then
> +	VN=$(cat version) || VN="$DEF_VER"
> +elif test -d ${GIT_DIR:-.git} -o -f .git && describe
>  then

Makes sense; using a helper function makes the primary logic easier to read.

Show 9 quoted lines
> -test "$VN" = "$VC" || {
> -	echo >&2 "GIT_VERSION = $VN"
> -	echo "GIT_VERSION = $VN" >$GVF
> -}
> -
> -
> +test "$VN" = "$VC" && exit
> +echo >&2 "GIT_VERSION = $VN"
> +echo "GIT_VERSION = $VN" >$GVF

The point of this part is "if the version file is already up to date, do not rewrite it only to smudge the mtime to confuse make", so it would be much easier to read to write it like so:

	if test "$VN" != "$VC"
        then
		... two echoes ...
	fi

compared to "exiting in the middle" which is harder to follow, especially if we consider that we may have to grow the remaining two lines in the future.

Previous: Felipe ContrerasNext: Felipe Contreras
Message 3 of 7 in “version-gen: fixes and cleanups”
  1. 0/2 version-gen: fixes and cleanupsFelipe Contreras, Sep 13, 2013
  2. 1/2 version-gen: cleanupFelipe Contreras, Sep 13, 2013
  3. Junio C HamanoSep 13, 2013
  4. Felipe ContrerasSep 13, 2013
  5. 2/2 version-gen: avoid messing the versionFelipe Contreras, Sep 13, 2013
  6. Junio C HamanoSep 13, 2013
  7. Felipe ContrerasSep 14, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.