зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
fcc5ef1cc9
Коммит
eb9a7cb4bd
|
@ -12,7 +12,7 @@ SYNOPSIS
|
|||
[<upstream>] [<branch>]
|
||||
'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>]
|
||||
--root [<branch>]
|
||||
'git rebase' --continue | --skip | --abort
|
||||
'git rebase' --continue | --skip | --abort | --edit-todo
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
@ -245,6 +245,9 @@ leave out at most one of A and B, in which case it defaults to HEAD.
|
|||
--skip::
|
||||
Restart the rebasing process by skipping the current patch.
|
||||
|
||||
--edit-todo::
|
||||
Edit the todo list during an interactive rebase.
|
||||
|
||||
-m::
|
||||
--merge::
|
||||
Use merging strategies to rebase. When the recursive (default) merge
|
||||
|
|
|
@ -792,6 +792,23 @@ skip)
|
|||
|
||||
do_rest
|
||||
;;
|
||||
edit-todo)
|
||||
sed -e '/^#/d' < "$todo" > "$todo".new
|
||||
mv -f "$todo".new "$todo"
|
||||
append_todo_help
|
||||
cat >> "$todo" << EOF
|
||||
#
|
||||
# You are editing the todo file of an ongoing interactive rebase.
|
||||
# To continue rebase after editing, run:
|
||||
# git rebase --continue
|
||||
#
|
||||
EOF
|
||||
|
||||
git_sequence_editor "$todo" ||
|
||||
die "Could not execute editor"
|
||||
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
||||
git var GIT_COMMITTER_IDENT >/dev/null ||
|
||||
|
|
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче