From: Adam Roben <aroben@apple.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Johannes.Schindelin@gmx.de, Adam Roben <aroben@apple.com>
Subject: [PATCH] Print an error when falling back to vi on a dumb terminal
Date: Thu, 19 Jul 2007 14:10:19 -0700 [thread overview]
Message-ID: <11848794193942-git-send-email-aroben@apple.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0707191944560.14781@racer.site>
Signed-off-by: Adam Roben <aroben@apple.com>
---
On Jul 19, 2007, at 11:46 AM, Johannes Schindelin wrote:
> > - commit_editor=$(git config core.editor || echo ${VISUAL:-$EDITOR})
> > - case "$commit_editor,$TERM" in
> > + case "$GIT_EDITOR,$TERM" in
> > ,dumb)
>
> This can no longer happen, since ...
>
> > +set_editor() {
> > + GIT_EDITOR=$(git config core.editor || echo ${VISUAL:-${EDITOR:-vi}})
> > + export GIT_EDITOR
> > +}
>
> ... "vi" is the last resort, not "", right?
>
> So I guess you just want to drag that test and warning into git-sh-setup
> (where I think it has a better home anyway).
Here you go. I'm not terribly happy with the error message, though. I tried to
be as clear as possible and to keep some of the nice information that was in
the git-commit error message. Please improve upon it if you can.
git-am.sh | 4 ++--
git-commit.sh | 11 +----------
git-rebase--interactive.sh | 2 +-
git-sh-setup.sh | 15 +++++++++++++--
git-tag.sh | 2 +-
5 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/git-am.sh b/git-am.sh
index a5de0a1..dd517f4 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -7,7 +7,6 @@ USAGE='[--signoff] [--dotest=<dir>] [--utf8 | --no-utf8] [--binary] [--3way]
or, when resuming [--skip | --resolved]'
. git-sh-setup
set_reflog_action am
-set_editor
require_work_tree
git var GIT_COMMITTER_IDENT >/dev/null || exit
@@ -365,7 +364,8 @@ do
[yY]*) action=yes ;;
[aA]*) action=yes interactive= ;;
[nN]*) action=skip ;;
- [eE]*) "$GIT_EDITOR" "$dotest/final-commit"
+ [eE]*) set_editor
+ "$GIT_EDITOR" "$dotest/final-commit"
action=again ;;
[vV]*) action=again
LESS=-S ${PAGER:-less} "$dotest/patch" ;;
diff --git a/git-commit.sh b/git-commit.sh
index 9adb03c..4d5d898 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -6,7 +6,6 @@
USAGE='[-a | --interactive] [-s] [-v] [--no-verify] [-m <message> | -F <logfile> | (-C|-c) <commit> | --amend] [-u] [-e] [--author <author>] [[-i | -o] <path>...]'
SUBDIRECTORY_OK=Yes
. git-sh-setup
-set_editor
require_work_tree
git rev-parse --verify HEAD >/dev/null 2>&1 || initial_commit=t
@@ -545,15 +544,7 @@ fi
case "$no_edit" in
'')
- case "$GIT_EDITOR,$TERM" in
- ,dumb)
- echo >&2 "Terminal is dumb but core.editor, VISUAL, and EDITOR"
- echo >&2 "are undefined. Please supply the commit log message"
- echo >&2 "using either -m or -F option. A boilerplate log message"
- echo >&2 "has been prepared in $GIT_DIR/COMMIT_EDITMSG"
- exit 1
- ;;
- esac
+ set_editor
git-var GIT_AUTHOR_IDENT > /dev/null || die
git-var GIT_COMMITTER_IDENT > /dev/null || die
$GIT_EDITOR "$GIT_DIR/COMMIT_EDITMSG"
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 32d1f53..27f8639 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -15,7 +15,6 @@ USAGE='(--continue | --abort | --skip | [--preserve-merges] [--verbose]
. git-sh-setup
require_work_tree
-set_editor
DOTEST="$GIT_DIR/.dotest-merge"
TODO="$DOTEST"/todo
@@ -415,6 +414,7 @@ EOF
die_abort "Nothing to do"
cp "$TODO" "$TODO".backup
+ set_editor
$GIT_EDITOR "$TODO" ||
die "Could not execute editor"
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index f43ab33..dbc4833 100755
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -29,8 +29,19 @@ set_reflog_action() {
}
set_editor() {
- GIT_EDITOR=$(git config core.editor || echo ${VISUAL:-${EDITOR:-vi}})
- export GIT_EDITOR
+ GIT_EDITOR=$(git config core.editor || echo ${VISUAL:-${EDITOR}})
+ case "$GIT_EDITOR,$TERM" in
+ ,dumb)
+ echo >&2 "No editor specified in core.editor, VISUAL, or EDITOR."
+ echo >&2 "Tried to fall back to vi but terminal is dumb."
+ echo >&2 "Please set one of these variables to an appropriate"
+ echo >&2 "editor or run $0 with options that will not cause an"
+ echo >&2 "editor to be invoked (e.g., -m or -F for git-commit)."
+ exit 1
+ ;;
+ esac
+ GIT_EDITOR=${GIT_EDITOR:-vi}
+ export GIT_EDITOR
}
is_bare_repository () {
diff --git a/git-tag.sh b/git-tag.sh
index 0a6f2e7..f1a66d0 100755
--- a/git-tag.sh
+++ b/git-tag.sh
@@ -4,7 +4,6 @@
USAGE='[-n [<num>]] -l [<pattern>] | [-a | -s | -u <key-id>] [-f | -d | -v] [-m <msg>] <tagname> [<head>]'
SUBDIRECTORY_OK='Yes'
. git-sh-setup
-set_editor
message_given=
annotate=
@@ -178,6 +177,7 @@ if [ "$annotate" ]; then
( echo "#"
echo "# Write a tag message"
echo "#" ) > "$GIT_DIR"/TAG_EDITMSG
+ set_editor
$GIT_EDITOR "$GIT_DIR"/TAG_EDITMSG || exit
else
printf '%s\n' "$message" >"$GIT_DIR"/TAG_EDITMSG
--
1.5.3.rc2.21.gfc4a18-dirty
next prev parent reply other threads:[~2007-07-19 21:10 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-19 5:39 [PATCH] Add commit.editor configuration variable Adam Roben
2007-07-19 6:08 ` Junio C Hamano
2007-07-19 6:17 ` Adam Roben
2007-07-19 6:23 ` Shawn O. Pearce
2007-07-19 6:53 ` Junio C Hamano
2007-07-19 9:54 ` Johannes Schindelin
2007-07-19 18:24 ` [PATCH] Add git-sh-setup::set_editor() Adam Roben
2007-07-19 18:46 ` Johannes Schindelin
2007-07-19 19:26 ` David Kastrup
2007-07-19 21:10 ` Adam Roben [this message]
2007-07-19 21:19 ` [PATCH] Print an error when falling back to vi on a dumb terminal Johannes Schindelin
2007-07-20 0:15 ` Junio C Hamano
2007-07-20 0:28 ` [PATCH] Add core.editor configuration variable Adam Roben
2007-07-20 5:09 ` [PATCH] Add GIT_EDITOR environment variable and " Adam Roben
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11848794193942-git-send-email-aroben@apple.com \
--to=aroben@apple.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).