Subject: [PATCH v4 0/3] clean up some code around editors

From: "D. Ben Knoble" <[email-masked]>
Date: Tue, 12 Aug 2025 13:02:15 -0400

Changes from v3:
- drop 4/4
- use test_env (including a case our lint does not catch when the value
  has spaces)

Changes from v2:
- shuffle setup code and use more helpers in 1/4
- insert 2/4 to stop abusing --exec-path
- improve environment-cleansing idioms in {2 => 3}/4

Thanks especially to Phillip's encyclopaedic knowledge of test helpers ;)

Changes from v1:
- add a prep patch with style fixes to t7005
- rework the environment munging to use subshells, per Phillip Wood's
  suggestion

This reroll of the previous exec-path series is simplified to contain
only the first 2 cleanup patches, which were largely acked by the list.
Drop the controversial and broken PATH munging.

Also, this version is (still) based on a later master 112648dd6b (Merge
branch 'master' of https://github.com/j6t/git-gui, 2025-08-04) than the
original from May.

These patches clean up some old code in the editor tests and subsystem
that does not use our modern idioms.

v1: https://lore.kernel.org/git/[email-masked]/
v2: https://lore.kernel.org/git/[email-masked]/
v3: https://lore.kernel.org/git/[email-masked]/
Published-as: https://github.com/benknoble/tree/editor-cleanup

D. Ben Knoble (3):
  t7005: use modern test style
  t7005: stop abusing --exec-path
  t7005: sanitize test environment for subsequent tests

 t/t7005-editor.sh | 149 +++++++++++++++++++---------------------------
 1 file changed, 60 insertions(+), 89 deletions(-)

Diff-intervalle contre v3 :
1:  8ad2904a18 = 1:  8ad2904a18 t7005: use modern test style
2:  9451e4f0f6 ! 2:  44a6fd8eb3 t7005: stop abusing --exec-path
    @@ t/t7005-editor.sh
      	esac
      	test_expect_success "Using $i" '
     -		git --exec-path=. commit --amend &&
    -+		PATH="$PWD:$PATH" git commit --amend &&
    ++		test_env PATH="$PWD:$PATH" git commit --amend &&
      		test_commit_message HEAD expect
      	'
      done
    @@ t/t7005-editor.sh
      	esac
      	test_expect_success "Using $i (override)" '
     -		git --exec-path=. commit --amend &&
    -+		PATH="$PWD:$PATH" git commit --amend &&
    ++		test_env PATH="$PWD:$PATH" git commit --amend &&
      		test_commit_message HEAD expect
      	'
      done
3:  61cb116780 ! 3:  135d4368d6 t7005: sanitize test environment for subsequent tests
    @@ t/t7005-editor.sh
     -export TERM
      test_expect_success 'dumb should error out when falling back on vi' '
     -	test_must_fail git commit --amend
    -+	TERM=dumb test_must_fail git commit --amend
    ++	test_env TERM=dumb test_must_fail git commit --amend
      '
      
      test_expect_success 'dumb should prefer EDITOR to VISUAL' '
    @@ t/t7005-editor.sh
     -	VISUAL=./e-VISUAL.sh &&
     -	export EDITOR VISUAL &&
     -	git commit --amend &&
    -+	TERM=dumb EDITOR=./e-EDITOR.sh VISUAL=./e-VISUAL.sh \
    ++	test_env TERM=dumb EDITOR=./e-EDITOR.sh VISUAL=./e-VISUAL.sh \
     +		git commit --amend &&
      	test_commit_message HEAD -m "Edited by EDITOR"
      '
    @@ t/t7005-editor.sh
     -		;;
     -	esac
      	test_expect_success "Using $i" '
    --		PATH="$PWD:$PATH" git commit --amend &&
    +-		test_env PATH="$PWD:$PATH" git commit --amend &&
     -		test_commit_message HEAD expect
     +		if test "$i" = core_editor
     +		then
    @@ t/t7005-editor.sh
     +				export $i
     +				;;
     +			esac &&
    -+			PATH="$PWD:$PATH" TERM=vt100 git commit --amend
    ++			test_env PATH="$PWD:$PATH" TERM=vt100 git commit --amend
     +		) &&
     +		test_commit_message HEAD -m "Edited by $i"
      	'
    @@ t/t7005-editor.sh
     -		;;
     -	esac
     -	test_expect_success "Using $i (override)" '
    --		PATH="$PWD:$PATH" git commit --amend &&
    +-		test_env PATH="$PWD:$PATH" git commit --amend &&
     -		test_commit_message HEAD expect
     -	'
     -done
    @@ t/t7005-editor.sh
     +				export $i
     +				;;
     +			esac &&
    -+			PATH="$PWD:$PATH" git commit --amend &&
    ++			test_env PATH="$PWD:$PATH" git commit --amend &&
     +			test_commit_message HEAD expect || exit 1
     +		done
     +	)
    @@ t/t7005-editor.sh
      
      test_expect_success 'editor with a space' '
      	echo "echo space >\"\$1\"" >"e space.sh" &&
    -@@
    + 	chmod a+x "e space.sh" &&
    +-	GIT_EDITOR="./e\ space.sh" git commit --amend &&
    ++	test_env GIT_EDITOR="./e\ space.sh" git commit --amend &&
      	test_commit_message HEAD -m space
      '
      
4:  ea269f2442 < -:  ---------- editor: use standard strvec API to receive environment for external editors

base-commit: 112648dd6bdd8e4f485cd0ae11636807959d48be
-- 
2.48.1