diff --git a/platform/dvcs-impl/src/com/intellij/dvcs/ui/CloneDvcsDialog.java b/platform/dvcs-impl/src/com/intellij/dvcs/ui/CloneDvcsDialog.java index ed0da12ce5c4..8285066520e6 100644 --- a/platform/dvcs-impl/src/com/intellij/dvcs/ui/CloneDvcsDialog.java +++ b/platform/dvcs-impl/src/com/intellij/dvcs/ui/CloneDvcsDialog.java @@ -94,6 +94,17 @@ public abstract class CloneDvcsDialog extends DialogWrapper { setOKButtonText(DvcsBundle.getString("clone.button")); } + @Override + protected void doOKAction() { + File parent = new File(getParentDirectory()); + if (parent.exists() && parent.isDirectory() && parent.canWrite() || parent.mkdirs()) { + super.doOKAction(); + return; + } + setErrorText("Couldn't create " + parent + "
Check your access rights"); + setOKActionEnabled(false); + } + @NotNull public String getSourceRepositoryURL() { return getCurrentUrlText(); @@ -215,11 +226,6 @@ public abstract class CloneDvcsDialog extends DialogWrapper { setOKActionEnabled(false); return false; } - else if (!file.getParentFile().exists()) { - setErrorText(DvcsBundle.message("clone.parent.missing.error", file.getParent())); - setOKActionEnabled(false); - return false; - } return true; }