From: Jonathan Nieder <jrnieder@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Ben Walton <bwalton@artsci.utoronto.ca>,
Johannes Sixt <j.sixt@viscovery.net>,
David Roundy <roundyd@physics.oregonstate.edu>,
GIT List <git@vger.kernel.org>
Subject: [PATCH 5/8] add -i, send-email, svn, p4, etc: use "git var GIT_EDITOR"
Date: Fri, 30 Oct 2009 05:32:17 -0500 [thread overview]
Message-ID: <20091030103217.GF1610@progeny.tock> (raw)
In-Reply-To: <20091030101634.GA1610@progeny.tock>
Use the new "git var GIT_EDITOR" feature to decide what editor to
use, instead of duplicating its logic elsewhere. This should make
the behavior of commands in edge cases (e.g., editor names with
spaces) a little more consistent.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Documentation/config.txt | 4 +---
Documentation/git-commit.txt | 2 +-
Documentation/git-send-email.txt | 4 ++--
contrib/fast-import/git-p4 | 5 +----
git-add--interactive.perl | 3 +--
git-send-email.perl | 3 ++-
git-sh-setup.sh | 19 ++++++-------------
git-svn.perl | 5 ++---
8 files changed, 16 insertions(+), 29 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index d1e2120..5181b77 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -387,9 +387,7 @@ core.editor::
Commands such as `commit` and `tag` that lets you edit
messages by launching an editor uses the value of this
variable when it is set, and the environment variable
- `GIT_EDITOR` is not set. The order of preference is
- `GIT_EDITOR` environment, `core.editor`, `VISUAL` and
- `EDITOR` environment variables and then finally `vi`.
+ `GIT_EDITOR` is not set. See linkgit:git-var[1].
core.pager::
The command that git will use to paginate output. Can
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index 0578a40..3ea80c8 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -323,7 +323,7 @@ ENVIRONMENT AND CONFIGURATION VARIABLES
The editor used to edit the commit log message will be chosen from the
GIT_EDITOR environment variable, the core.editor configuration variable, the
VISUAL environment variable, or the EDITOR environment variable (in that
-order).
+order). See linkgit:git-var[1] for details.
HOOKS
-----
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index 767cf4d..c85d7f4 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -60,8 +60,8 @@ The --bcc option must be repeated for each user you want on the bcc list.
The --cc option must be repeated for each user you want on the cc list.
--compose::
- Use $GIT_EDITOR, core.editor, $VISUAL, or $EDITOR to edit an
- introductory message for the patch series.
+ Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1])
+ to edit an introductory message for the patch series.
+
When '--compose' is used, git send-email will use the From, Subject, and
In-Reply-To headers specified in the message. If the body of the message
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index e710219..48059d0 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -729,13 +729,10 @@ class P4Submit(Command):
tmpFile.write(submitTemplate + separatorLine + diff + newdiff)
tmpFile.close()
mtime = os.stat(fileName).st_mtime
- defaultEditor = "vi"
- if platform.system() == "Windows":
- defaultEditor = "notepad"
if os.environ.has_key("P4EDITOR"):
editor = os.environ.get("P4EDITOR")
else:
- editor = os.environ.get("EDITOR", defaultEditor);
+ editor = read_pipe("git var GIT_EDITOR")
system(editor + " " + fileName)
response = "y"
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index 69aeaf0..0c74e5c 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -987,8 +987,7 @@ sub edit_hunk_manually {
EOF
close $fh;
- my $editor = $ENV{GIT_EDITOR} || $repo->config("core.editor")
- || $ENV{VISUAL} || $ENV{EDITOR} || "vi";
+ chomp(my $editor = run_cmd_pipe(qw(git var GIT_EDITOR)));
system('sh', '-c', $editor.' "$@"', $editor, $hunkfile);
if ($? != 0) {
diff --git a/git-send-email.perl b/git-send-email.perl
index a0279de..4f5da4e 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -162,7 +162,8 @@ my $compose_filename;
# Handle interactive edition of files.
my $multiedit;
-my $editor = $ENV{GIT_EDITOR} || Git::config(@repo, "core.editor") || $ENV{VISUAL} || $ENV{EDITOR} || "vi";
+my $editor = Git::command_oneline('var', 'GIT_EDITOR');
+
sub do_edit {
if (defined($multiedit) && !$multiedit) {
map {
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index c41c2f7..99cceeb 100755
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -99,19 +99,12 @@ set_reflog_action() {
}
git_editor() {
- : "${GIT_EDITOR:=$(git config core.editor)}"
- : "${GIT_EDITOR:=${VISUAL:-${EDITOR}}}"
- case "$GIT_EDITOR,$TERM" in
- ,dumb)
- echo >&2 "No editor specified in GIT_EDITOR, core.editor, VISUAL,"
- echo >&2 "or EDITOR. 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
- eval "${GIT_EDITOR:=vi}" '"$@"'
+ if test -z "${GIT_EDITOR:+set}"
+ then
+ GIT_EDITOR="$(git var GIT_EDITOR)" || return $?
+ fi
+
+ eval "$GIT_EDITOR" '"$@"'
}
is_bare_repository () {
diff --git a/git-svn.perl b/git-svn.perl
index 6a3b501..42c9a72 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1321,9 +1321,8 @@ sub get_commit_entry {
close $log_fh or croak $!;
if ($_edit || ($type eq 'tree')) {
- my $editor = $ENV{VISUAL} || $ENV{EDITOR} || 'vi';
- # TODO: strip out spaces, comments, like git-commit.sh
- system($editor, $commit_editmsg);
+ chomp(my $editor = command_oneline(qw(var GIT_EDITOR)));
+ system('sh', '-c', $editor.' "$@"', $editor, $commit_editmsg);
}
rename $commit_editmsg, $commit_msg or croak $!;
{
--
1.6.5.2
next prev parent reply other threads:[~2009-10-30 10:22 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-28 15:21 packaging vs default pager Ben Walton
2009-10-28 17:55 ` Junio C Hamano
2009-10-29 7:32 ` [PATCH 0/2] " Jonathan Nieder
2009-10-29 7:45 ` [PATCH 1/2] Provide a build time default-pager setting Jonathan Nieder
2009-10-29 7:50 ` [PATCH/RFC 2/2] Provide a build time default-editor setting Jonathan Nieder
2009-10-29 10:36 ` David Roundy
2009-10-29 11:50 ` Johannes Sixt
2009-10-29 20:40 ` Junio C Hamano
2009-10-29 20:57 ` Johannes Sixt
2009-10-29 22:12 ` Junio C Hamano
2009-10-30 2:21 ` David Roundy
2009-10-29 20:43 ` Junio C Hamano
2009-10-30 10:16 ` [PATCH v2 0/8] Default pager and editor Jonathan Nieder
2009-10-30 10:20 ` [PATCH 1/8] launch_editor: Longer error message when TERM=dumb Jonathan Nieder
2009-10-30 10:25 ` [PATCH 2/8] Handle more shell metacharacters in editor names Jonathan Nieder
2009-10-30 10:26 ` [PATCH 3/8] Teach git var about GIT_EDITOR Jonathan Nieder
2009-10-30 20:51 ` Johannes Sixt
2009-10-30 22:47 ` Jonathan Nieder
2009-10-30 22:43 ` Junio C Hamano
2009-10-31 0:01 ` Jonathan Nieder
2009-10-30 10:29 ` [PATCH 4/8] Teach git var about GIT_PAGER Jonathan Nieder
2009-10-30 10:32 ` Jonathan Nieder [this message]
2009-10-30 10:33 ` [PATCH 6/8] am -i, git-svn: use "git var GIT_PAGER" Jonathan Nieder
2009-10-30 10:35 ` [PATCH 7/8] Provide a build time default-editor setting Jonathan Nieder
2009-10-30 13:17 ` Jonathan Nieder
2009-10-30 10:39 ` [PATCH 8/8] Provide a build time default-pager setting Jonathan Nieder
2009-10-30 22:59 ` Junio C Hamano
2009-10-30 10:49 ` [PATCH/RFC 9/8] Teach git var to run the editor Jonathan Nieder
2009-10-31 1:20 ` [PATCH v3 0/8] Default pager and editor Jonathan Nieder
2009-10-31 1:24 ` [PATCH 1/8] Handle more shell metacharacters in editor names Jonathan Nieder
2009-10-31 1:30 ` [PATCH 2/8] Do not use VISUAL editor on dumb terminals Jonathan Nieder
2009-10-31 7:46 ` [PATCH v2 " Jonathan Nieder
2009-10-31 1:39 ` [PATCH v2 3/8] Teach git var about GIT_EDITOR Jonathan Nieder
2009-10-31 2:01 ` Junio C Hamano
2009-10-31 2:23 ` Jonathan Nieder
2009-10-31 2:34 ` Junio C Hamano
2009-10-31 4:00 ` Jonathan Nieder
2009-10-31 4:04 ` [PATCH v3] " Jonathan Nieder
2009-10-31 4:53 ` Jonathan Nieder
2009-10-31 7:56 ` [PATCH v4] " Jonathan Nieder
2009-11-01 4:29 ` Junio C Hamano
2009-10-31 19:40 ` [PATCH v2 3/8] " Johannes Sixt
2009-10-31 1:41 ` [PATCH 4/8] Teach git var about GIT_PAGER Jonathan Nieder
2009-10-31 1:42 ` [PATCH 5/8] add -i, send-email, svn, p4, etc: use "git var GIT_EDITOR" Jonathan Nieder
2009-10-31 1:43 ` [PATCH 6/8] am -i, git-svn: use "git var GIT_PAGER" Jonathan Nieder
2009-10-31 1:44 ` [PATCH 7/8] Provide a build time default-editor setting Jonathan Nieder
2009-10-31 2:09 ` Junio C Hamano
2009-10-31 3:26 ` Jonathan Nieder
2009-10-31 19:51 ` Junio C Hamano
2009-10-31 21:21 ` Jonathan Nieder
2009-11-01 4:29 ` Junio C Hamano
2009-10-31 1:45 ` [PATCH 8/8] Provide a build time default-pager setting Jonathan Nieder
2009-11-11 23:51 ` [PATCH v4 0/9] Default pager and editor Jonathan Nieder
2009-11-11 23:52 ` [PATCH 1/9] Handle more shell metacharacters in editor names Jonathan Nieder
2009-11-11 23:56 ` [PATCH 2/9] Do not use VISUAL editor on dumb terminals Jonathan Nieder
2009-11-11 23:57 ` [PATCH 3/9] Suppress warnings from "git var -l" Jonathan Nieder
2009-11-12 0:01 ` [PATCH 4/9] Teach git var about GIT_EDITOR Jonathan Nieder
2009-11-12 0:02 ` [PATCH 5/9] Teach git var about GIT_PAGER Jonathan Nieder
2009-11-12 0:02 ` [PATCH 6/9] add -i, send-email, svn, p4, etc: use "git var GIT_EDITOR" Jonathan Nieder
2009-11-12 0:03 ` [PATCH 7/9] am -i, git-svn: use "git var GIT_PAGER" Jonathan Nieder
2009-11-12 0:03 ` [PATCH 8/9] Provide a build time default-editor setting Jonathan Nieder
2009-11-12 0:04 ` [PATCH 9/9] Provide a build time default-pager setting Jonathan Nieder
2009-11-15 9:04 ` [PATCH v4 0/9] Default pager and editor Junio C Hamano
2009-10-29 16:42 ` [PATCH 0/2] Default Pager and Editor at build-time Ben Walton
2009-10-29 16:42 ` [PATCH 1/2] Provide a build time default-pager setting Ben Walton
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=20091030103217.GF1610@progeny.tock \
--to=jrnieder@gmail.com \
--cc=bwalton@artsci.utoronto.ca \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j.sixt@viscovery.net \
--cc=roundyd@physics.oregonstate.edu \
/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).