# octopus merge --no-ff claims to fast-forward even though it doesn't

2 messages from 2017-01-27 to 2017-01-27. Participants: Samuel Lijin, Junio C Hamano.
Thread: https://gitlist.dev/t/44990

## Samuel Lijin, 2017-01-27 20:46

Subject: octopus merge --no-ff claims to fast-forward even though it doesn't
Message-ID: <CAJZjrdWdRGZ5DC1XV_YiNt-1sKiNgAtiS-eS9L6H2GJ+_8n08w@mail.gmail.com>
URL: https://gitlist.dev/e/CAJZjrdWdRGZ5DC1XV_YiNt-1sKiNgAtiS-eS9L6H2GJ%2B_8n08w%40mail.gmail.com

```
I was doing an octopus merge earlier and noticed that it claims to
fast-forward when you specify --no-ff, even though it does actually
abide by --no-ff.

I can consistently reproduce as follows:

$ git clone https://github.com/sxlijin/merge-octopus-experiment
$ cd merge-octopus-experiment
$ git merge --no-ff origin/A origin/B --no-edit
Fast-forwarding to: origin/A
Trying simple merge with origin/B
Merge made by the 'octopus' strategy.
 anotherA | 0
 anotherB | 0
 otherA   | 0
 otherB   | 0
 4 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 anotherA
 create mode 100644 anotherB
 create mode 100644 otherA
 create mode 100644 otherB

$ git log --graph --pretty=oneline --decorate

I've reproduced the issue with 2.11.0 on both a Windows box (MSYS) and
Linux (Arch).

The issue seems to live in git-merge-octopus.sh, specifically in that
--no-ff does not affect the initial value of NON_FF_MERGE. I'm happy
to submit a patch if someone can point me in the right direction.

Sam

```

## Junio C Hamano, 2017-01-27 21:59

Subject: Re: octopus merge --no-ff claims to fast-forward even though it doesn't
Message-ID: <xmqqmvecxiz5.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqqmvecxiz5.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <CAJZjrdWdRGZ5DC1XV_YiNt-1sKiNgAtiS-eS9L6H2GJ+_8n08w@mail.gmail.com>

```
Samuel Lijin <sxlijin@gmail.com> writes:

> I was doing an octopus merge earlier and noticed that it claims to
> fast-forward when you specify --no-ff, even though it does actually
> abide by --no-ff.

This was intentional and hasn't changed since it was first designed;
the octopus was to be used only for the simple and obvious merges.

If anything, I think it should error out when the --no-ff option is
given, issuing the same error message as the one given when any step
other than the last one needs manual resolution.

```
