Browse Source

octopus: reenable fast-forward merges

The fast-forward logic is never being triggered because $common and
$MRC are never equivalent. $common is initialized to a commit id by
merge-base and MRC is initialized to HEAD. Fix this by initializing
$MRC to the commit id for HEAD so that its possible for $MRC and
$common to be equal.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Stephen Boyd 15 years ago committed by Junio C Hamano
parent
commit
85bf49f9a5
  1. 2
      git-merge-octopus.sh
  2. 18
      t/t7602-merge-octopus-many.sh

2
git-merge-octopus.sh

@ -44,7 +44,7 @@ esac @@ -44,7 +44,7 @@ esac
# MRC is the current "merge reference commit"
# MRT is the current "merge result tree"

MRC=$head MSG= PARENT="-p $head"
MRC=$(git rev-parse --verify -q $head) MSG= PARENT="-p $head"
MRT=$(git write-tree)
CNT=1 ;# counting our head
NON_FF_MERGE=0

18
t/t7602-merge-octopus-many.sh

@ -82,4 +82,22 @@ test_expect_success 'merge up-to-date output uses pretty names' ' @@ -82,4 +82,22 @@ test_expect_success 'merge up-to-date output uses pretty names' '
git merge c4 c5 >actual &&
test_cmp actual expected
'

cat >expected <<\EOF
Fast-forwarding to: c1
Trying simple merge with c2
Merge made by octopus.
c1.c | 1 +
c2.c | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 c1.c
create mode 100644 c2.c
EOF

test_expect_success 'merge fast-forward output uses pretty names' '
git reset --hard c0 &&
git merge c1 c2 >actual &&
test_cmp actual expected
'

test_done

Loading…
Cancel
Save