void (final @NotNull String operationName, final @NotNull Collection<? extends GitRepository> repositories) { String title = unmergedFilesErrorTitle(operationName); String description = unmergedFilesErrorNotificationDescription(operationName); VcsNotifier.getInstance(myProject).notifyError( UNRESOLVED_CONFLICTS, title, description, new NotificationListener() { @Override public void hyperlinkUpdate(@NotNull Notification notification, @NotNull HyperlinkEvent event) { if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED && event.getDescription().equals(RESOLVE_HREF_ATTRIBUTE)) { new Task.Backgroundable(myProject, GitBundle.message("apply.changes.resolving.conflicts.progress.title")) { @Override public void run(@NotNull ProgressIndicator indicator) { showMergeDialog(); } }.queue(); } } private void showMergeDialog() { GitConflictResolver.Params params = new GitConflictResolver.Params(myProject). setMergeDescription(GitBundle.message("branch.ui.handler.merge.notification.description", operationName)). setErrorNotificationTitle(GitBundle.message("branch.ui.handler.merge.error.notification.title")); new GitConflictResolver(myProject, GitUtil.getRootsFromRepositories(repositories), params).merge(); } } ); }