git.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).