It should certainly return/throw an error if there is already a merge in progress (like git-merge does). I'm not sure about the rest. Certainly during a cherry-pick or revert it seems like it would be a mistake to run it, but it's probably a legitimate operation to perform a merge during an interactive rebase.