void () { String message = myChange.isMoved() ? message("confirmation.resolve.tree.conflict.merge.moved", myOldPresentation, myNewPresentation) : message("confirmation.resolve.tree.conflict.merge.renamed", myOldPresentation, myNewPresentation); int ok = showOkCancelDialog(myVcs.getProject(), message, message("dialog.title.resolve.tree.conflict"), Messages.getQuestionIcon()); if (Messages.OK != ok) return; FileDocumentManager.getInstance().saveAllDocuments(); runInBackground(message("progress.title.getting.base.and.theirs.revisions.content"), indicator -> preloadContent()); runInEdt(this::convertTextPaths); runInBackground(message("progress.title.creating.patch.for.theirs.changes"), indicator -> createPatches()); runInEdt(() -> selectPatchesInApplyPatchDialog(exception -> { if (exception == null) { runInBackground(message("progress.title.accepting.working.state"), indicator -> resolveConflicts()); if (myThereAreCreations) { runInBackground(message("progress.title.adding.file.to.subversion", myOldPresentation), indicator -> addDirectories()); } runInEdt(this::selectBinaryFiles); runInBackground(message("progress.title.applying.binary.changes"), indicator -> applyBinaryChanges()); runInEdt(this::notifyMergeIsFinished); } else { addError(exception); showErrors(); } })); }