Re: [PATCH] git-rebase--interactive.sh: Add new command "shell"

6 messages, 4 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH] git-rebase--interactive.sh: Add new command "shell"

From: Matthieu Moy <hidden>
Date: 2016-06-15 22:49:58

Kevin Ballard [off-list ref] writes:
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?

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

Re: [PATCH] git-rebase--interactive.sh: Add new command "shell"

From: Kevin Ballard <hidden>
Date: 2016-06-15 22:49:58

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

Re: [PATCH] git-rebase--interactive.sh: Add new command "shell"

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:49:58

On Thu, Nov 4, 2010 at 09:53, Kevin Ballard [off-list ref] wrote:
On Nov 4, 2010, at 1:42 AM, Matthieu Moy wrote:
quoted
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.
I thought "shell" would do exactly what your patch does. And it has
the "s" short version.

So +1 for "shell" from me and -1 for "pause", which *does* confuse me.
I'd expect that
to just sleep for a few seconds.

Re: [PATCH] git-rebase--interactive.sh: Add new command "shell"

From: Kevin Ballard <hidden>
Date: 2016-06-15 22:49:58

On Nov 4, 2010, at 2:23 AM, Ævar Arnfjörð Bjarmason wrote:
On Thu, Nov 4, 2010 at 09:53, Kevin Ballard [off-list ref] wrote:
quoted
On Nov 4, 2010, at 1:42 AM, Matthieu Moy wrote:
quoted
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.
I thought "shell" would do exactly what your patch does. And it has
the "s" short version.

So +1 for "shell" from me and -1 for "pause", which *does* confuse me.
I'd expect that
to just sleep for a few seconds.
"s" is actually taken by "squash". That's why my original patch used "!",
though a user might actually expect "!" to do what "x" does.

-Kevin Ballard

Re: [PATCH] git-rebase--interactive.sh: Add new command "shell"

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:49:58

On Thu, Nov 4, 2010 at 10:25, Kevin Ballard [off-list ref] wrote:
quoted
I thought "shell" would do exactly what your patch does. And it has
the "s" short version.

So +1 for "shell" from me and -1 for "pause", which *does* confuse me.
I'd expect that
to just sleep for a few seconds.
"s" is actually taken by "squash". That's why my original patch used "!",
though a user might actually expect "!" to do what "x" does.
Indeed, eek!

Re: [PATCH] git-rebase--interactive.sh: Add new command "shell"

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:49:58

Am 11/4/2010 9:53, schrieb Kevin Ballard:
+#  pause = exit to the shell
The short form could be just the dash -. I'd describe the command as

#  pause,- = interrupt automatic processing of commits

or similar to avoid the term "shell".

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help