@Override
  protected @Nullable DialogState displayDialog(@NotNull Project project, @NotNull List<VirtualFile> gitRoots, @NotNull VirtualFile defaultRoot) {
    final GitMergeDialog dialog = new GitMergeDialog(project, defaultRoot, gitRoots);
    if (!dialog.showAndGet()) {
      return null;
    }
    return new DialogState(dialog.getSelectedRoot(),
                           GitBundle.message("merging.title", dialog.getSelectedRoot().getPath()),
                           getHandlerProvider(project, dialog),
                           dialog.getSelectedBranch(),
                           dialog.shouldCommitAfterMerge(),
                           ContainerUtil.map(dialog.getSelectedOptions(), option -> option.getOption()));
  }
@Override
  protected @Nullable DialogState displayDialog(@NotNull Project project, @NotNull List<VirtualFile> gitRoots, @NotNull VirtualFile defaultRoot)