@Override
  public @NotNull GitRebaseCommandResult rebase(@NotNull GitRepository repository,
                                                @NotNull GitRebaseParams parameters,
                                                GitLineHandlerListener @NotNull ... listeners) {
    Project project = repository.getProject();
    VirtualFile root = repository.getRoot();
    GitLineHandler handler = new GitLineHandler(project, root, GitCommand.REBASE, REBASE_CONFIG_PARAMS);
    handler.addParameters(parameters.asCommandLineArguments());
    addListeners(handler, listeners);

    if (parameters.isInteractive()) {
      GitRebaseEditorHandler editorHandler = parameters.getEditorHandler();
      if (editorHandler == null) {
        editorHandler = createRebaseEditor(project, root, handler, true);
      }
      return runWithEditor(handler, editorHandler);
    }
    return new GitRebaseCommandResult(runCommand(handler));
  }
@Override
  public @NotNull GitRebaseCommandResult rebase(@NotNull GitRepository repository,
                                                @NotNull GitRebaseParams parameters,
                                                GitLineHandlerListener @NotNull ... listeners)