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>
This commit is contained in:
parent
bb64507164
commit
a4f25e3682
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user