void (@NotNull Project project, @Nullable Listener listener, @Nullable String predefinedRepositoryUrl) { FileDocumentManager.getInstance().saveAllDocuments(); GitCloneDialog dialog = new GitCloneDialog(project, predefinedRepositoryUrl); if (!dialog.showAndGet()) { return; } dialog.rememberSettings(); final LocalFileSystem lfs = LocalFileSystem.getInstance(); final File parent = new File(dialog.getParentDirectory()); VirtualFile destinationParent = lfs.findFileByIoFile(parent); if (destinationParent == null) { destinationParent = lfs.refreshAndFindFileByIoFile(parent); } if (destinationParent == null) { return; } final String sourceRepositoryURL = dialog.getSourceRepositoryURL(); final String directoryName = dialog.getDirectoryName(); final String parentDirectory = dialog.getParentDirectory(); clone(project, Git.getInstance(), listener, destinationParent, sourceRepositoryURL, directoryName, parentDirectory); }