Re: [PATCH 4/4] lib-submodule-update: pass OVERWRITING_FAIL
- From
Denton Liu <liu.denton@gmail.com>
- Date
- Apr 30, 2020, 09:22 UTC
- Message-ID
- <20200430092220.GA25331@generichostname>
- In-Reply-To
- <xmqqd07ptzbw.fsf@gitster.c.googlers.com>
On Wed, Apr 29, 2020 at 08:41:23PM -0700, Junio C Hamano wrote:
Show 25 quoted lines
> Denton Liu <liu.denton@gmail.com> writes: > > >> Here, $command may or may not be a git command and more importantly, > >> it could be a shell function, right? Then we need to take it into > >> account that > >> > >> VAR=VAL shell_function args... > >> > >> will not work, no? > >> > >> Some shells do not make this a single-shot environment variable > >> assignment that will not persist once the single function invocation > >> returns. > > > > ... > > which makes me suspect that these shells are not POSIX-compliant. What > > are some examples of shells that behave this way? > > I think the most relevant thread is the one that contains this > message: > > https://public-inbox.org/git/7vljfzz0yd.fsf@alter.siamese.dyndns.org/ > > FWIW, shells that do not retain the assignment after a function > returns are not POSIX compliant.
Hmm, interesting. Running an experiment:
$ cat test.sh
f () {
echo $var
}var=test f echo $var $ bash test.sh test
$ bash --posix test.sh test test $ dash test.sh test
So it seems like there's a bug in dash. Guess it's time to file a bug report...