merge: handle --ff/--no-ff/--ff-only as a tri-state option