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

Re: [PATCH] t7502: perform commits using alternate editor in a subshell

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 22, 2013, 23:24 UTC
Message-ID
<7vliagaq4z.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1361574780-30067-1-git-send-email-bcasey@nvidia.com>
Brandon Casey <bcasey@nvidia.com> writes:
Show 20 quoted lines
> From: Brandon Casey <drafnel@gmail.com>
>
> These tests call test_set_editor to set an alternate editor script, but
> they appear to presume that the assignment is of a temporary nature and
> will not have any effect outside of each individual test.  That is not
> the case.  All of the test functions within a test script share a single
> environment, so any variables modified in one, are visible in the ones
> that follow.
>
> So, let's protect the test functions that follow these, which set an
> alternate editor, by performing the test_set_editor and 'git commit'
> in a subshell.
>
> Signed-off-by: Brandon Casey <drafnel@gmail.com>
> ---
>
>
> Before "git-commit: populate the edit buffer with 2 blank lines before s-o-b"
> is merged, this is needed on top of rt/commit-cleanup-config 51fb3a3d so that
> the default EDITOR remains in effect for the new test.

Yeah, what I already pushed out forces EDITOR=: for your test for the same effect, but this patch clearly takes us in the right (and better) direction.

Show 59 quoted lines
>
> -Brandon
>
>
>  t/t7502-commit.sh | 24 ++++++++++++++++--------
>  1 file changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh
> index b1c7648..520a5cd 100755
> --- a/t/t7502-commit.sh
> +++ b/t/t7502-commit.sh
> @@ -255,32 +255,40 @@ test_expect_success 'cleanup commit message (fail on invalid cleanup mode config
>  test_expect_success 'cleanup commit message (no config and no option uses default)' '
>  	echo content >>file &&
>  	git add file &&
> -	test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
> -	git commit --no-status &&
> +	(
> +	  test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
> +	  git commit --no-status
> +	) &&
>  	commit_msg_is "commit message"
>  '
>  
>  test_expect_success 'cleanup commit message (option overrides default)' '
>  	echo content >>file &&
>  	git add file &&
> -	test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
> -	git commit --cleanup=whitespace --no-status &&
> +	(
> +	  test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
> +	  git commit --cleanup=whitespace --no-status
> +	) &&
>  	commit_msg_is "commit message # comment"
>  '
>  
>  test_expect_success 'cleanup commit message (config overrides default)' '
>  	echo content >>file &&
>  	git add file &&
> -	test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
> -	git -c commit.cleanup=whitespace commit --no-status &&
> +	(
> +	  test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
> +	  git -c commit.cleanup=whitespace commit --no-status
> +	) &&
>  	commit_msg_is "commit message # comment"
>  '
>  
>  test_expect_success 'cleanup commit message (option overrides config)' '
>  	echo content >>file &&
>  	git add file &&
> -	test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
> -	git -c commit.cleanup=whitespace commit --cleanup=default &&
> +	(
> +	  test_set_editor "$TEST_DIRECTORY"/t7500/add-content-and-comment &&
> +	  git -c commit.cleanup=whitespace commit --cleanup=default
> +	) &&
>  	commit_msg_is "commit message"
>  '
Previous: Brandon Casey
Message 2 of 2 in “t7502: perform commits using alternate editor in a subshell”
  1. t7502: perform commits using alternate editor in a subshellBrandon Casey, Feb 22, 2013
  2. Junio C HamanoFeb 22, 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.