Subject: Re: [PATCH v2] mergetool: use more conservative temporary filenames

From: Jakub Narębski <[email-masked]>
Date: Fri, 10 Oct 2014 13:19:40 +0200

David Aguilar wrote:
> Avoid filenames with multiple dots so that overly-picky tools do
> not misinterpret their extension.
>
> Previously, foo/bar.ext in the worktree would result in e.g.
>
> 	./foo/bar.ext.BASE.1234.ext
>
> This can be improved by having only a single .ext and using
> underscore instead of dot so that the extension cannot be
> misinterpreted.  The resulting path becomes:
>
> 	./foo/bar_BASE_1234.ext
>
> Suggested-by: Sergio Ferrero <[email-masked]>
> Helped-by: Junio C Hamano <[email-masked]>
> Signed-off-by: David Aguilar <[email-masked]>
> ---

> +	if BASE=$(expr "$MERGED" : '\(.*\)\.[^/]*$')
> +	then
> +		ext=$(expr "$MERGED" : '.*\(\.[^/]*\)$')
> +	else
> +		BASE=$MERGED
> +		ext=
> +	fi

Why use expr and not POSIX shell parameter substitution?

BASE=${MERGED%.*}
ext=.${MERGED##*.}

Or something like that...

-- 
Jakub Narębski