The search order for choosing the sequence editor is: $GIT_SEQUENCE_EDITOR git config sequence.editor git var GIT_EDITOR (default editor for commit messages) With this change is it possible to have a separate (possibly graphical) editor that helps the user during a interactive rebase. Using $GIT_EDITOR or core.editor config var for this is not possible since they is also used to start the commit message editor for reword action. Signed-off-by: Peter Oberndorfer <kumbayo84@xxxxxxxx> --- I reworded the commit message and the config description a bit. renamed to sequence.editor / $GIT_SEQUENCE_EDITOR and moved the helper to git-rebase--interactive.sh Documentation/config.txt | 7 +++++++ git-rebase--interactive.sh | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 1 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index 03296b7..048c5f9 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -473,6 +473,13 @@ core.editor:: variable when it is set, and the environment variable `GIT_EDITOR` is not set. See linkgit:git-var[1]. +sequence.editor:: + Text editor used by git rebase -i for editing the rebase todo file. + The value is meant to be interpreted by the shell when it is used. + It can be overridden by the 'GIT_SEQUENCE_EDITOR' environment variable. + When not configured the default commit message editor is used instead. + See linkgit:git-var[1] + core.pager:: The command that git will use to paginate output. Can be overridden with the `GIT_PAGER` environment diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 94f36c2..13a0661 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -161,6 +161,19 @@ do_with_author () { ) } +git_sequence_editor() { + if test -z "${GIT_SEQUENCE_EDITOR:+set}" + then + GIT_SEQUENCE_EDITOR="$(git config sequence.editor)" + if [ -z "$GIT_SEQUENCE_EDITOR" ] + then + GIT_SEQUENCE_EDITOR="$(git var GIT_EDITOR)" || return $? + fi + fi + + eval "$GIT_SEQUENCE_EDITOR" '"$@"' +} + pick_one () { ff=--ff case "$1" in -n) sha1=$2; ff= ;; *) sha1=$1 ;; esac @@ -832,7 +845,7 @@ has_action "$todo" || die_abort "Nothing to do" cp "$todo" "$todo".backup -git_editor "$todo" || +git_sequence_editor "$todo" || die_abort "Could not execute editor" has_action "$todo" || -- 1.7.7.329.g2140c -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html