diff options
author | Stephen Haberman <stephen@exigencecorp.com> | 2008-10-15 02:44:37 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-10-16 09:23:53 -0700 |
commit | a4f25e368247108e89e5ee1a02c2f1b6fc31c56f (patch) | |
tree | 612800429f9193651eb9196426382881b73e25b3 /git-rebase--interactive.sh | |
parent | bb645071645240a23ede4e93c9425252a0eaaefb (diff) | |
download | git-a4f25e368247108e89e5ee1a02c2f1b6fc31c56f.tar.gz |
rebase-i-p: fix 'no squashing merges' tripping up non-merges
Also only check out the first parent if this commit if not a squash--if it is a
squash, we want to explicitly ignore the parent and leave the wc as is, as
cherry-pick will apply the squash on top of it.
Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-rebase--interactive.sh')
-rwxr-xr-x | git-rebase--interactive.sh | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 23cf7a5d68..274251f697 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -219,15 +219,19 @@ pick_one_preserving_merges () { die "Cannot fast forward to $sha1" ;; f) - test "a$1" = a-n && die "Refusing to squash a merge: $sha1" - first_parent=$(expr "$new_parents" : ' \([^ ]*\)') - # detach HEAD to current parent - output git checkout $first_parent 2> /dev/null || - die "Cannot move HEAD to $first_parent" + + if [ "$1" != "-n" ] + then + # detach HEAD to current parent + output git checkout $first_parent 2> /dev/null || + die "Cannot move HEAD to $first_parent" + fi case "$new_parents" in ' '*' '*) + test "a$1" = a-n && die "Refusing to squash a merge: $sha1" + # redo merge author_script=$(get_author_ident_from_commit $sha1) eval "$author_script" |