diff options
author | Alex Riesen <raa.lkml@gmail.com> | 2007-07-13 00:30:35 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-07-13 22:33:16 -0700 |
commit | 793ad04198a79c14094bd1311a9c42f1293c6183 (patch) | |
tree | 5cf6372215ad377a8cd5fbf45d970cb9ce27946a /git-rebase--interactive.sh | |
parent | 9a4cbdca34f6aa9424fce8a55fe9dd6f7c25d97b (diff) | |
download | git-793ad04198a79c14094bd1311a9c42f1293c6183.tar.gz |
Fix git-rebase -i to allow squashing of fast-forwardable commits
Without this change the commits will be left standalone, with
duplicated commit message.
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-rebase--interactive.sh')
-rwxr-xr-x | 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 d9563ec46f..f3950767ea 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" |