Browse Source
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>maint
Adam Roben
18 years ago
committed by
Junio C Hamano
10 changed files with 129 additions and 23 deletions
@ -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 |
Loading…
Reference in new issue