From: Peter Oberndorfer <kumbayo84@arcor.de>
To: git@vger.kernel.org
Subject: [RFC/WIP PATCH] Use config value rebase.editor as editor when starting git rebase -i
Date: Tue, 11 Oct 2011 19:56:08 +0200 [thread overview]
Message-ID: <201110111956.08829.kumbayo84@arcor.de> (raw)
If rebase.editor is not set interactive rebase falls back
to the default editor.
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 it is also used to start the commit message editor for reword action.
Signed-off-by: Peter Oberndorfer <kumbayo84@arcor.de>
---
Hi,
i wrote a (not yet released) git rebase -i helper that allows to order commits
by drag/drop and allows to select the action from a combo box.
(written in Qt)
See http://i55.tinypic.com/2d94gg0.jpg for how it currently looks like. :-)
No more typos, no more lost commit by cutting without pasting...
To integrate this properly into git i need something like this patch.
Open questions/problems:
* GIT_EDITOR env var is not honored anymore after this change.
Help from somebody with more bash knowledge is highly appreciated!
* Should git_rebase_editor be in git-rebase--interactive.sh instead
(since it is only used there)
* How should the config be called?
It is not directly used during rebase, only during rebase -i
that might not be fully clear from the config name.
* Better config.txt description?
Thanks,
Greetings Peter
PS: My tool will hopefully be released soon.
Cleanup code, test(lin/ win), write some doc (how to use with git),
choose name :-), choose license...
Documentation/config.txt | 6 ++++++
git-rebase--interactive.sh | 2 +-
git-sh-setup.sh | 13 +++++++++++++
3 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 03296b7..1d9ae79 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1591,6 +1591,12 @@ rebase.stat::
Whether to show a diffstat of what changed upstream since the last
rebase. False by default.
+rebase.editor::
+ Text editor used by git rebase -i for editing the rebasse todo file.
+ The value is meant to be interpreted by the shell when it is used.
+ When not configured the default commit message editor is used instead.
+ See "core.editor"
+
rebase.autosquash::
If set to true enable '--autosquash' option by default.
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 94f36c2..0f3b569 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -832,7 +832,7 @@ has_action "$todo" ||
die_abort "Nothing to do"
cp "$todo" "$todo".backup
-git_editor "$todo" ||
+git_rebase_editor "$todo" ||
die_abort "Could not execute editor"
has_action "$todo" ||
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 8e427da..303fb96 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -113,6 +113,19 @@ git_editor() {
eval "$GIT_EDITOR" '"$@"'
}
+git_rebase_editor() {
+ if test -z "${GIT_REBASEI_EDITOR:+set}"
+ then
+ GIT_REBASEI_EDITOR="$(git config rebase.editor)"
+ if [ -z "$GIT_REBASEI_EDITOR" ]
+ then
+ GIT_REBASEI_EDITOR="$(git var GIT_EDITOR)" || return $?
+ fi
+ fi
+
+ eval "$GIT_REBASEI_EDITOR" '"$@"'
+}
+
git_pager() {
if test -t 1
then
--
1.7.7.215.gfef80
next reply other threads:[~2011-10-11 17:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-11 17:56 Peter Oberndorfer [this message]
2011-10-11 18:15 ` [RFC/WIP PATCH] Use config value rebase.editor as editor when starting git rebase -i Phil Hord
2011-10-11 18:37 ` Junio C Hamano
2011-10-11 21:16 ` Peter Oberndorfer
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=201110111956.08829.kumbayo84@arcor.de \
--to=kumbayo84@arcor.de \
--cc=git@vger.kernel.org \
/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