threads / discuss / 44990

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

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

## tl;dr

2 messages between Jan 27, 2017 and Jan 27, 2017.

replies: 1people: 2as markdown or json

Samuel Lijin· Jan 27, 2017, 20:46 UTC · lore

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· Jan 27, 2017, 21:59 UTC · re: Samuel Lijin · lore

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

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.

← back to recent threads