summaryrefslogtreecommitdiff
path: root/t/t7005-editor.sh
diff options
context:
space:
mode:
authorAdam Roben <aroben@apple.com>2007-07-20 05:09:35 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-07-20 07:46:34 (GMT)
commitef0c2abf3e5061f891b7f07953ef3b0695f52c89 (patch)
treea48c4cbea302eb1d41bc1d798c1e85bcc892ea8a /t/t7005-editor.sh
parenta7738c77f1f17ced885ce96e986b948a0b256452 (diff)
downloadgit-ef0c2abf3e5061f891b7f07953ef3b0695f52c89.zip
git-ef0c2abf3e5061f891b7f07953ef3b0695f52c89.tar.gz
git-ef0c2abf3e5061f891b7f07953ef3b0695f52c89.tar.bz2
Add GIT_EDITOR environment and core.editor configuration variables
These variables let you specify an editor that will be launched in preference to the EDITOR and VISUAL environment variables. The order of preference is GIT_EDITOR, core.editor, EDITOR, VISUAL. [jc: added a test and config variable documentation] Signed-off-by: Adam Roben <aroben@apple.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7005-editor.sh')
-rwxr-xr-xt/t7005-editor.sh91
1 files changed, 91 insertions, 0 deletions
diff --git a/t/t7005-editor.sh b/t/t7005-editor.sh
new file mode 100755
index 0000000..28643b0
--- /dev/null
+++ b/t/t7005-editor.sh
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+test_description='GIT_EDITOR, core.editor, and stuff'
+
+. ./test-lib.sh
+
+for i in GIT_EDITOR core_editor EDITOR VISUAL vi
+do
+ cat >e-$i.sh <<-EOF
+ echo "Edited by $i" >"\$1"
+ EOF
+ chmod +x e-$i.sh
+done
+unset vi
+mv e-vi.sh vi
+PATH=".:$PATH"
+unset EDITOR VISUAL GIT_EDITOR
+
+test_expect_success setup '
+
+ msg="Hand edited" &&
+ echo "$msg" >expect &&
+ git add vi &&
+ test_tick &&
+ git commit -m "$msg" &&
+ git show -s --pretty=oneline |
+ sed -e "s/^[0-9a-f]* //" >actual &&
+ diff actual expect
+
+'
+
+TERM=dumb
+export TERM
+test_expect_success 'dumb should error out when falling back on vi' '
+
+ if git commit --amend
+ then
+ echo "Oops?"
+ exit 1
+ else
+ : happy
+ fi
+'
+
+TERM=vt100
+export TERM
+for i in vi EDITOR VISUAL core_editor GIT_EDITOR
+do
+ echo "Edited by $i" >expect
+ unset EDITOR VISUAL GIT_EDITOR
+ git config --unset-all core.editor
+ case "$i" in
+ core_editor)
+ git config core.editor ./e-core_editor.sh
+ ;;
+ [A-Z]*)
+ eval "$i=./e-$i.sh"
+ export $i
+ ;;
+ esac
+ test_expect_success "Using $i" '
+ git commit --amend &&
+ git show -s --pretty=oneline |
+ sed -e "s/^[0-9a-f]* //" >actual &&
+ diff actual expect
+ '
+done
+
+unset EDITOR VISUAL GIT_EDITOR
+git config --unset-all core.editor
+for i in vi EDITOR VISUAL core_editor GIT_EDITOR
+do
+ echo "Edited by $i" >expect
+ case "$i" in
+ core_editor)
+ git config core.editor ./e-core_editor.sh
+ ;;
+ [A-Z]*)
+ eval "$i=./e-$i.sh"
+ export $i
+ ;;
+ esac
+ test_expect_success "Using $i (override)" '
+ git commit --amend &&
+ git show -s --pretty=oneline |
+ sed -e "s/^[0-9a-f]* //" >actual &&
+ diff actual expect
+ '
+done
+
+test_done