diff options
author | Björn Steinbrink <B.Steinbrink@gmx.de> | 2007-10-31 03:20:32 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-10-30 21:29:28 -0700 |
commit | f91333d646e690d9a10717c96e166a069b2bb586 (patch) | |
tree | 130522dbb2b910823e5bcf4b95f1fdccd3946a25 | |
parent | 2a9c53e03d8293577b5163910f178075725b39dd (diff) | |
download | git-f91333d646e690d9a10717c96e166a069b2bb586.tar.gz git-f91333d646e690d9a10717c96e166a069b2bb586.tar.xz |
git-rebase--interactive.sh: Make 3-way merge strategies work for -p.
git-rebase--interactive.sh used to pass all parents of a merge commit to
git-merge, which means that we have at least 3 heads to merge: HEAD,
first parent and second parent. So 3-way merge strategies like recursive
wouldn't work.
Fortunately, we have checked out the first parent right before the merge
anyway, so that is HEAD. Therefore we can drop simply it from the list
of parents, making 3-way strategies work for merge commits with only
two parents.
Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-rebase--interactive.sh | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index db0405765..f28c3df20 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -165,6 +165,8 @@ pick_one_preserving_merges () { eval "$author_script" msg="$(git cat-file commit $sha1 | \ sed -e '1,/^$/d' -e "s/[\"\\]/\\\\&/g")" + # No point in merging the first parent, that's HEAD + new_parents=${new_parents# $first_parent} # NEEDSWORK: give rerere a chance if ! output git merge $STRATEGY -m "$msg" $new_parents then |