IDEA-79870 Git push dialog: allow to push when some repositories don't have remotes

Just don't count repositories without remotes: don't add them to the list, don't query them when looking for common remotes.
(cherry picked from commit 90298e61c590b44ea38539b9348132f2b9fc9d90)
This commit is contained in:
Kirill Likhodedov
2012-07-26 15:33:01 +04:00
parent 83d6f8d528
commit e507331aec
@@ -31,14 +31,14 @@ import git4idea.branch.GitBranchUtil;
import git4idea.history.browser.GitCommit;
import git4idea.repo.GitRemote;
import git4idea.repo.GitRepository;
import git4idea.repo.GitRepositoryManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.awt.*;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
/**
@@ -50,6 +50,7 @@ public class GitPushDialog extends DialogWrapper {
private static final String DEFAULT_REMOTE = "origin";
private Project myProject;
private final GitRepositoryManager myRepositoryManager;
private final GitPusher myPusher;
private final GitPushLog myListPanel;
private GitCommitsByRepoAndBranch myGitCommitsToPush;
@@ -66,8 +67,9 @@ public class GitPushDialog extends DialogWrapper {
super(project);
myProject = project;
myPusher = new GitPusher(myProject, new EmptyProgressIndicator());
myRepositoryManager = GitUtil.getRepositoryManager(myProject);
myRepositories = GitUtil.getRepositoryManager(myProject).getRepositories();
myRepositories = getRepositoriesWithRemotes();
myLoadingPanel = new JBLoadingPanel(new BorderLayout(), this.getDisposable());
@@ -89,6 +91,17 @@ public class GitPushDialog extends DialogWrapper {
setTitle("Git Push");
}
@NotNull
private List<GitRepository> getRepositoriesWithRemotes() {
List<GitRepository> repositories = new ArrayList<GitRepository>();
for (GitRepository repository : myRepositoryManager.getRepositories()) {
if (!repository.getRemotes().isEmpty()) {
repositories.add(repository);
}
}
return repositories;
}
@Override
protected JComponent createCenterPanel() {
JPanel optionsPanel = new JPanel(new BorderLayout());