CloneStatus (@NotNull ProgressIndicator indicator) { HgCloneCommand clone = new HgCloneCommand(project); clone.setRepositoryURL(sourceRepositoryURL); clone.setDirectory(targetDir); HgCommandResult commandResult = clone.executeInCurrentThread(); if (commandResult == null || HgErrorUtil.hasErrorsInCommandExecution(commandResult)) { new HgCommandResultNotifier(project).notifyError(CLONE_ERROR, commandResult, DvcsBundle.message("clone.repository.failed"), HgBundle.message("hg4idea.clone.repo.error.msg", sourceRepositoryURL)); return CloneStatus.FAILURE; } else { DvcsUtil.addMappingIfSubRoot(project, targetDir, HgVcs.VCS_NAME); if (listener != null) { listener.directoryCheckedOut(new File(parentDirectory, directoryName), HgVcs.getKey()); listener.checkoutCompleted(); } return CloneStatus.SUCCESS; } }