On Nov 4, 2010, at 1:42 AM, Matthieu Moy wrote:
Kevin Ballard [off-list ref] writes:
quoted
Add a new command "shell", which takes an option commit. It simply exits
to the shell with the commit (if given) and a message telling the user how
to resume the rebase.
"shell" sounds like you're going to execute something in a shell, not
that you're going back to the shell. Looking at the commit message, I
thought you had missed the "exec" command and re-implemented it.
What about "pause", abbreviated as "p" for the command name?
That sounds like a reasonable suggestion, except "p" is already taken by "pick".
I suppose this command could simply omit the short version.
---8<---
Subject: git-rebase--interactive.sh: Add new command "pause"
Add a new command "pause", which takes an optional comment. It simply exits
to the shell with the comment (if given) and a message telling the user how
to resume the rebase. This is effectively the same thing as "x false" but
much friendlier to the user.
Signed-off-by: Kevin Ballard <redacted>
---
git-rebase--interactive.sh | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index a27952d..e29fd91 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -566,6 +566,26 @@ do_next () {
exit 1
fi
;;
+ pause)
+ read -r command comment < "$TODO"
+ mark_action_done
+ # can't use $sha1 here for same reason as "exec"
+ line=$(git rev-list --pretty=oneline -1 --abbrev-commit --abbrev=7 HEAD)
+ sha1="${line%% *}"
+ rest="${line#* }"
+ echo "$sha1" > "$DOTEST"/stopped-sha
+ warn "Stopped at $sha1... $rest"
+ if test -n "$comment"; then
+ warn
+ warn " $comment"
+ fi
+ warn
+ warn "Once you are ready to continue, run"
+ warn
+ warn " git rebase --continue"
+ warn
+ exit 0
+ ;;
*)
warn "Unknown command: $command $sha1 $rest"
if git rev-parse --verify -q "$sha1" >/dev/null@@ -998,6 +1018,7 @@ first and then run 'git rebase --continue' again."
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x <cmd>, exec <cmd> = Run a shell command <cmd>, and stop if it fails
+# pause = exit to the shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
--
1.7.3.2.195.gc69dde