[PATCH] Fix git-rebase -i to allow squashing of fast-forwardable commits

Subsystems: the rest

DORMANTno replies

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

[PATCH] Fix git-rebase -i to allow squashing of fast-forwardable commits

From: Alex Riesen <hidden>
Date: 2016-06-15 22:43:21

Without this change the commits will be left standalone, with
duplicated commit message.

Signed-off-by: Alex Riesen <redacted>
---

Noticed when trying to blend the second commit in a branch into the
first. Squash didn't work at all (apart from commit message
duplication).

 git-rebase--interactive.sh |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index d9563ec..f395076 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -84,6 +84,7 @@ pick_one () {
 	current_sha1=$(git rev-parse --verify HEAD)
 	if [ $current_sha1 = $parent_sha1 ]; then
 		git reset --hard $sha1
+		test "a$1" = a-n && git reset --soft $current_sha1
 		sha1=$(git rev-parse --short $sha1)
 		warn Fast forward to $sha1
 	else
@@ -193,14 +194,14 @@ do_next () {
 			die "Cannot 'squash' without a previous commit"
 
 		mark_action_done
-		failed=f
-		pick_one -n $sha1 || failed=t
 		MSG="$DOTEST"/message
 		echo "# This is a combination of two commits." > "$MSG"
 		echo "# The first commit's message is:" >> "$MSG"
 		echo >> "$MSG"
 		git cat-file commit HEAD | sed -e '1,/^$/d' >> "$MSG"
 		echo >> "$MSG"
+		failed=f
+		pick_one -n $sha1 || failed=t
 		echo "# And this is the 2nd commit message:" >> "$MSG"
 		echo >> "$MSG"
 		git cat-file commit $sha1 | sed -e '1,/^$/d' >> "$MSG"
-- 
1.5.3.rc0.116.gc35c1-dirty

Re: [PATCH] Fix git-rebase -i to allow squashing of fast-forwardable commits

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:43:21

Hi,

On Fri, 13 Jul 2007, Alex Riesen wrote:
Without this change the commits will be left standalone, with
duplicated commit message.
Thanks.

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