summaryrefslogtreecommitdiff
path: root/git-rebase.sh
diff options
context:
space:
mode:
authorAndrew Wong <andrew.kw.w@gmail.com>2012-09-17 21:28:09 -0400
committerJunio C Hamano <gitster@pobox.com>2012-09-17 20:59:14 -0700
commiteb9a7cb4bdbd4ea9c7e7ef2ca8de5b2753e3584c (patch)
treedbf2f2079d2d34e28d7abe3c3cc1f1fdc5ed9dfb /git-rebase.sh
parentfcc5ef1cc90ed49400bef51d306216f290eab9cc (diff)
downloadgit-eb9a7cb4bdbd4ea9c7e7ef2ca8de5b2753e3584c.tar.gz
rebase -i: Teach "--edit-todo" action
This allows users to edit the todo file while they're stopped in the middle of an interactive rebase. When this action is executed, all comments from the original todo file are stripped, and new help messages are appended to the end. Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-rebase.sh')
-rwxr-xr-xgit-rebase.sh13
1 files changed, 11 insertions, 2 deletions
diff --git a/git-rebase.sh b/git-rebase.sh
index e6b43a26cf..b2f1c76dc3 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -8,7 +8,7 @@ OPTIONS_KEEPDASHDASH=
OPTIONS_SPEC="\
git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]
git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
-git-rebase --continue | --abort | --skip
+git-rebase --continue | --abort | --skip | --edit-todo
--
Available options are
v,verbose! display a diffstat of what changed upstream
@@ -38,6 +38,7 @@ C=! passed to 'git apply'
continue! continue
abort! abort and check out the original branch
skip! skip current patch and continue
+edit-todo! edit the todo list during an interactive rebase
"
. git-sh-setup
. git-sh-i18n
@@ -190,7 +191,7 @@ do
--verify)
ok_to_skip_pre_rebase=
;;
- --continue|--skip|--abort)
+ --continue|--skip|--abort|--edit-todo)
test $total_argc -eq 2 || usage
action=${1##--}
;;
@@ -306,6 +307,11 @@ then
fi
fi
+if test "$action" = "edit-todo" && test "$type" != "interactive"
+then
+ die "$(gettext "The --edit-todo action can only be used during interactive rebase.")"
+fi
+
case "$action" in
continue)
# Sanity check
@@ -338,6 +344,9 @@ abort)
rm -r "$state_dir"
exit
;;
+edit-todo)
+ run_specific_rebase
+ ;;
esac
# Make sure no rebase is in progress