git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Add commit.editor configuration variable

From
Adam Roben <aroben@apple.com>
Date
Jul 19, 2007, 05:39 UTC
Message-ID
<11848235881723-git-send-email-aroben@apple.com>

This variable lets you specify a different editor for editing commit messages. If commit.editor is not set, git-commit falls back to VISUAL, then EDITOR as before.

Signed-off-by: Adam Roben <aroben@apple.com>
---
 Documentation/git-commit.txt |    9 +++++----
 git-commit.sh                |   13 +++++++------
 2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index f96142f..1a628be 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -244,10 +244,11 @@ on the Subject: line and the rest of the commit in the body.
 
 include::i18n.txt[]
 
-ENVIRONMENT VARIABLES
----------------------
-The command specified by either the VISUAL or EDITOR environment
-variables is used to edit the commit log message.
+ENVIRONMENT AND CONFIGURATION VARIABLES
+---------------------------------------
+The editor used to edit the commit log message will be chosen from the
+commit.editor configuration variable, the VISUAL environment variable, or the
+EDITOR environment variable (in that order).
 
 HOOKS
 -----
diff --git a/git-commit.sh b/git-commit.sh
index 3f3de17..c4d8501 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -544,18 +544,19 @@ fi
 
 case "$no_edit" in
 '')
-	case "${VISUAL:-$EDITOR},$TERM" in
+	commit_editor=$(git config commit.editor || echo ${VISUAL:-$EDITOR})
+	case "$commit_editor,$TERM" in
 	,dumb)
-		echo >&2 "Terminal is dumb but no VISUAL nor EDITOR defined."
-		echo >&2 "Please supply the commit log message using either"
-		echo >&2 "-m or -F option.  A boilerplate log message has"
-		echo >&2 "been prepared in $GIT_DIR/COMMIT_EDITMSG"
+		echo >&2 "Terminal is dumb but commit.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
 	git-var GIT_AUTHOR_IDENT > /dev/null  || die
 	git-var GIT_COMMITTER_IDENT > /dev/null  || die
-	${VISUAL:-${EDITOR:-vi}} "$GIT_DIR/COMMIT_EDITMSG"
+	${commit_editor:-vi} "$GIT_DIR/COMMIT_EDITMSG"
 	;;
 esac
 
-- 
1.5.2.2.620.g42358-dirty
Next: Junio C Hamano
Message 1 of 14 in “Add commit.editor configuration variable”
  1. Add commit.editor configuration variableAdam Roben, Jul 19, 2007
  2. Junio C HamanoJul 19, 2007
  3. Adam RobenJul 19, 2007
  4. Shawn O. PearceJul 19, 2007
  5. Junio C HamanoJul 19, 2007
  6. Johannes SchindelinJul 19, 2007
  7. Add git-sh-setup::set_editor()Adam Roben, Jul 19, 2007
  8. Johannes SchindelinJul 19, 2007
  9. David KastrupJul 19, 2007
  10. Print an error when falling back to vi on a dumb terminalAdam Roben, Jul 19, 2007
  11. Johannes SchindelinJul 19, 2007
  12. Junio C HamanoJul 20, 2007
  13. Add core.editor configuration variableAdam Roben, Jul 20, 2007
  14. Add GIT_EDITOR environment variable and core.editor configuration variableAdam Roben, Jul 20, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.