From d8de1b23e8ec896759424a2f146969783cdd89e3 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 22 Sep 2026 19:53:29 +0200 Subject: Add conflcit resultions strategies and interactive mode, and a lot of tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- t/interactive-edit | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 t/interactive-edit (limited to 't/interactive-edit') diff --git a/t/interactive-edit b/t/interactive-edit new file mode 100755 index 0000000..e0ff7b4 --- /dev/null +++ b/t/interactive-edit @@ -0,0 +1,64 @@ +#!/bin/sh -e +. t/common.sh +interactive + +printf '%s\n' > file \ + "${HEAD} ours" \ + head \ + "${TAIL}" \ + tail \ + "${END} theirs" + +for editor in EDITOR VISUAL CORE_EDITOR REDIFF_EDITOR GIT_EDITOR; do + printf '%s\n' > "${editor}" \ + '#!/bin/sh -e' \ + 'printf "%s\\n" "$(basename -- "$0")" > "$1"' + chmod +x -- "$editor" +done + +printf '%s\n' \ + '#!/bin/sh -e' \ + 'printf "%s\\n" vi > "$1"' > ./vi +chmod +x ./vi + +( + interactive_marker "${HEAD} ours" + interactive_side head + interactive_marker "${TAIL}" + interactive_side tail + interactive_marker "${END} theirs" + interactive_prompt 1 1 +) > output.expected + +run_editor_test () { + printf '%s\n' "$1" > file.expected + shift 1 + + unset GIT_EDITOR VISUAL EDITOR + git config --local --unset-all core.editor || : + git config --local --unset-all rediff.editor || : + + while test ! $# = 0; do + if test "$1" = VI; then + export PATH=".:${PATH}" + elif test "$1" = CORE_EDITOR; then + git config core.editor ./CORE_EDITOR + elif test "$1" = REDIFF_EDITOR; then + git config rediff.editor ./REDIFF_EDITOR + else + eval "export $1=./$1" + fi + shift 1 + done + printf '%s' e > input + normal --interactive file 8output + diff -u -- output.expected output >&2 + again_command='' +} + +run_editor_test vi VI +run_editor_test EDITOR EDITOR +run_editor_test VISUAL EDITOR VISUAL +run_editor_test CORE_EDITOR EDITOR VISUAL CORE_EDITOR +run_editor_test REDIFF_EDITOR EDITOR VISUAL CORE_EDITOR REDIFF_EDITOR +run_editor_test GIT_EDITOR EDITOR VISUAL CORE_EDITOR REDIFF_EDITOR GIT_EDITOR -- cgit v1.3.1