diff --git a/plugins/github/src/org/jetbrains/plugins/github/GithubCreatePullRequestWorker.java b/plugins/github/src/org/jetbrains/plugins/github/GithubCreatePullRequestWorker.java index 6e074fff44a0..e7348a185049 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/GithubCreatePullRequestWorker.java +++ b/plugins/github/src/org/jetbrains/plugins/github/GithubCreatePullRequestWorker.java @@ -15,7 +15,8 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Consumer; import com.intellij.util.Function; import com.intellij.util.ThrowableConvertor; -import com.intellij.util.containers.*; +import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.containers.Convertor; import com.intellij.util.containers.HashMap; import git4idea.DialogManager; import git4idea.GitCommit; @@ -43,8 +44,6 @@ import org.jetbrains.plugins.github.util.GithubUtil; import java.io.IOException; import java.util.*; -import java.util.HashSet; -import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; @@ -244,11 +243,34 @@ public class GithubCreatePullRequestWorker { @Nullable public GithubFullPath showTargetDialog() { + return showTargetDialog(false); + } + + @Nullable + public GithubFullPath showTargetDialog(boolean firstTime) { final GithubInfo2 info = getAvailableForksInModal(myProject, myGitRepository, myAuth, myPath); if (info == null) { return null; } + if (firstTime) { + if (info.getForks().size() == 1) { + return info.getForks().iterator().next(); + } + if (info.getForks().size() == 2) { + Iterator it = info.getForks().iterator(); + GithubFullPath path1 = it.next(); + GithubFullPath path2 = it.next(); + + if (myPath.equals(path1)) { + return path2; + } + if (myPath.equals(path2)) { + return path1; + } + } + } + Convertor getForkPath = new Convertor() { @Nullable @Override diff --git a/plugins/github/src/org/jetbrains/plugins/github/ui/GithubCreatePullRequestDialog.java b/plugins/github/src/org/jetbrains/plugins/github/ui/GithubCreatePullRequestDialog.java index 338003eb4dc7..f062742d191c 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/ui/GithubCreatePullRequestDialog.java +++ b/plugins/github/src/org/jetbrains/plugins/github/ui/GithubCreatePullRequestDialog.java @@ -106,7 +106,7 @@ public class GithubCreatePullRequestDialog extends DialogWrapper { setTarget(defaultForkPath); } else { - if (!showTargetDialog()) { + if (!showTargetDialog(true)) { close(CANCEL_EXIT_CODE); return; } @@ -115,7 +115,11 @@ public class GithubCreatePullRequestDialog extends DialogWrapper { } private boolean showTargetDialog() { - GithubFullPath forkPath = myWorker.showTargetDialog(); + return showTargetDialog(false); + } + + private boolean showTargetDialog(boolean firstTime) { + GithubFullPath forkPath = myWorker.showTargetDialog(firstTime); if (forkPath == null) { return false; }