From: Jeff King Date: Wed, 20 Nov 2013 18:54:20 GMT Subject: Re: [PATCH] t7507-*.sh: Fix test #8 (could not run '"$FAKE_EDITOR"') Message-ID: <20131120185420.GA11404@sigill.intra.peff.net> In-Reply-To: On Wed, Nov 20, 2013 at 10:33:28AM -0800, Junio C Hamano wrote: > Jeff King writes: > > > Am I misremembering the issues with one-shot variables and functions? > > I think there are two problems involved. OK, I was misremembering. I recalled the "does not unset afterwards" part, but not the "does not export" part. I think because: > test_must_fail () { > ( > env | sed -n -e '/EDITOR/s/^/>> /p' > ) > } ...here we _do_ have GIT_EDITOR set properly in the function itself, but not in the subprocess. Previous discussion and links to POSIX are here: http://article.gmane.org/gmane.comp.version-control.git/137095 Not that they matter compared to the code you demonstrated, but I was digging them up when you responded. :) > Another is that EDITOR="$FAKE_EDITOR" that is set up earlier in the > is having trouble launching (I have a feeling that it never was > actually used because everybody uses "commit -F "). I think it is used, as there are several "git commit --amend -v" invocations. Which makes sense, as you should not be able to test "-v" with "-F", I would think. I'm not sure why the old $FAKE_EDITOR doesn't work there, though (not that it would make the test pass anyway, as it does something different than what the test wants, but I would not expect the shell to complain of failure). -Peff