void (final Project project, final File target, final Url url, final Depth depth, final boolean includeIgnored, final String message) { final Ref<@Nls String> errorMessage = new Ref<>(); final SvnVcs vcs = SvnVcs.getInstance(project); final String targetPath = target.getAbsolutePath(); ExclusiveBackgroundVcsAction.run(project, () -> ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> { final FileIndexFacade facade = FileIndexFacade.getInstance(project); ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator(); try { progressIndicator.setText(message("progress.text.import", targetPath)); final VirtualFile targetVf = SvnUtil.getVirtualFile(targetPath); if (targetVf == null) { errorMessage.set(message("error.can.not.find.file", targetPath)); } else { final boolean isInContent = ReadAction.compute(() -> facade.isInContent(targetVf)); CommitEventHandler handler = new IdeaCommitHandler(progressIndicator); boolean useFileFilter = !project.isDefault() && isInContent; Predicate<File> filter = useFileFilter ? new MyFilter(new SvnExcludingIgnoredOperation.Filter(project)) : null; long revision = vcs.getFactoryFromSettings().createImportClient().doImport(target, url, depth, message, includeIgnored, handler, filter); if (revision > 0) { StatusBar.Info.set(message("status.text.committed.revision", revision), project); } } } catch (VcsException e) { errorMessage.set(e.getMessage()); } }, message("message.title.import"), true, project)); if (!errorMessage.isNull()) { showErrorDialog(message("message.text.cannot.import", errorMessage.get()), message("message.title.import")); } }