All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] rebase -i: proper prepare-commit-msg hook argument when squashing
@ 2008-10-03  0:08 SZEDER Gábor
  2008-10-03  6:01 ` Jeff King
  0 siblings, 1 reply; 3+ messages in thread
From: SZEDER Gábor @ 2008-10-03  0:08 UTC (permalink / raw)
  To: git; +Cc: SZEDER Gábor

One would expect that the prepare-commit-msg hook gets 'squash' as the
second argument when squashing commits with 'rebase -i'.  However,
that was not the case, as it got 'merge' instead.  This patch fixes
the problem.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
---
 git-rebase--interactive.sh |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index edb6ec6..ec4299a 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -304,23 +304,28 @@ do_next () {
 
 		mark_action_done
 		make_squash_message $sha1 > "$MSG"
+		failed=f
+		author_script=$(get_author_ident_from_commit HEAD)
+		output git reset --soft HEAD^
+		pick_one -n $sha1 || failed=t
 		case "$(peek_next_command)" in
 		squash|s)
 			EDIT_COMMIT=
 			USE_OUTPUT=output
+			MSG_OPT=-F
+			MSG_FILE="$MSG"
 			cp "$MSG" "$SQUASH_MSG"
 			;;
 		*)
 			EDIT_COMMIT=-e
 			USE_OUTPUT=
+			MSG_OPT=
+			MSG_FILE=
 			rm -f "$SQUASH_MSG" || exit
+			cp -v "$MSG" "$GIT_DIR"/SQUASH_MSG
+			rm -f "$GIT_DIR"/MERGE_MSG || exit
 			;;
 		esac
-
-		failed=f
-		author_script=$(get_author_ident_from_commit HEAD)
-		output git reset --soft HEAD^
-		pick_one -n $sha1 || failed=t
 		echo "$author_script" > "$DOTEST"/author-script
 		if test $failed = f
 		then
@@ -329,7 +334,7 @@ do_next () {
 			GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
 			GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
 			GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
-			$USE_OUTPUT git commit --no-verify -F "$MSG" $EDIT_COMMIT || failed=t
+			$USE_OUTPUT git commit --no-verify $MSG_OPT "$MSG_FILE" $EDIT_COMMIT || failed=t
 		fi
 		if test $failed = t
 		then
-- 
1.6.0.2.430.gfc53

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] rebase -i: proper prepare-commit-msg hook argument when squashing
  2008-10-03  0:08 [PATCH] rebase -i: proper prepare-commit-msg hook argument when squashing SZEDER Gábor
@ 2008-10-03  6:01 ` Jeff King
  2008-10-03  9:33   ` rebase -i: remove leftover debugging SZEDER Gábor
  0 siblings, 1 reply; 3+ messages in thread
From: Jeff King @ 2008-10-03  6:01 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: Shawn O. Pearce, git

On Fri, Oct 03, 2008 at 02:08:21AM +0200, SZEDER Gábor wrote:

> +			cp -v "$MSG" "$GIT_DIR"/SQUASH_MSG

Sorry, but "cp -v" is not portable. It's not in POSIX, and this breaks
the script for (at least) Solaris.

However, it's not even clear to me why "-v" is used at all, considering
that the "squash" case above does not use it. Is it a debugging
leftover? Am I missing something?

[Aside: My Solaris 8 autobuilder is now running, which was a huge pain.
However, it is very satisfying to catch things like this in "next"
before they hit a wider audience.]

-Peff

^ permalink raw reply	[flat|nested] 3+ messages in thread

* rebase -i: remove leftover debugging
  2008-10-03  6:01 ` Jeff King
@ 2008-10-03  9:33   ` SZEDER Gábor
  0 siblings, 0 replies; 3+ messages in thread
From: SZEDER Gábor @ 2008-10-03  9:33 UTC (permalink / raw)
  To: Jeff King, Shawn O. Pearce; +Cc: git

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
---
On Fri, Oct 03, 2008 at 02:01:10AM -0400, Jeff King wrote:
> Sorry, but "cp -v" is not portable. It's not in POSIX, and this breaks
> the script for (at least) Solaris.
> 
> However, it's not even clear to me why "-v" is used at all, considering
> that the "squash" case above does not use it. Is it a debugging
> leftover? Am I missing something?
Oh, yeah, it's just leftover debugging.  Thanks for catching.


 git-rebase--interactive.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 77e1132..ec4299a 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -322,7 +322,7 @@ do_next () {
 			MSG_OPT=
 			MSG_FILE=
 			rm -f "$SQUASH_MSG" || exit
-			cp -v "$MSG" "$GIT_DIR"/SQUASH_MSG
+			cp "$MSG" "$GIT_DIR"/SQUASH_MSG
 			rm -f "$GIT_DIR"/MERGE_MSG || exit
 			;;
 		esac
-- 
1.6.0.2.430.gfc53

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-10-03  9:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-03  0:08 [PATCH] rebase -i: proper prepare-commit-msg hook argument when squashing SZEDER Gábor
2008-10-03  6:01 ` Jeff King
2008-10-03  9:33   ` rebase -i: remove leftover debugging SZEDER Gábor

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.