void () { FileDocumentManager.getInstance().saveAllDocuments(); mySemaphore.down(); runInEdt(() -> { if (areInSameHierarchy(myMergeContext.getSourceUrl(), myMergeContext.getWcInfo().getUrl())) { LOG.info("Error: Cannot merge from self"); end(message("notification.content.can.not.merge.from.self"), true); } else if (!hasSwitchedRoots() || myInteraction.shouldContinueSwitchedRootFound()) { runInBackground(message("progress.title.checking.repository.capabilities"), indicator -> { if (supportsMergeInfo()) { runInEdt(this::selectMergeVariant); } else { mergeAll(false); } }); } }); }