From: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> Unlike "VAR=val cmd" one-shot environment variable assignments which exist only for the invocation of 'cmd', those assigned by "VAR=val shell-func" exist within the running shell and continue to do so until the process exits (or are explicitly unset). check-non-portable-shell.pl warns when it detects such usage since, more often than not, the author who writes such an invocation is unaware of the undesirable behavior. A common way to work around the problem is to wrap a subshell around the variable assignments and function call, thus ensuring that the assignments are short-lived. However, these days, a more ergonomic approach is to employ test_env() which is tailor-made for this specific use-case. Signed-off-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> --- t/t3430-rebase-merges.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/t/t3430-rebase-merges.sh b/t/t3430-rebase-merges.sh index 36ca126bcd..e851ede4f9 100755 --- a/t/t3430-rebase-merges.sh +++ b/t/t3430-rebase-merges.sh @@ -392,8 +392,8 @@ test_expect_success 'refuse to merge ancestors of HEAD' ' test_expect_success 'root commits' ' git checkout --orphan unrelated && - (GIT_AUTHOR_NAME="Parsnip" GIT_AUTHOR_EMAIL="root@xxxxxxxxxxx" \ - test_commit second-root) && + test_env GIT_AUTHOR_NAME="Parsnip" GIT_AUTHOR_EMAIL="root@xxxxxxxxxxx" \ + test_commit second-root && test_commit third-root && cat >script-from-scratch <<-\EOF && pick third-root -- 2.45.2