/** * Setup remotes combobox. The default remote for the current branch is selected by default. This * method gets current branch for the project. * * @param project the project * @param root the git root * @param remoteCombobox the combobox to update * @param fetchUrl if true, the fetch url is shown instead of push url */ public static void setupRemotes( final Project project, final VirtualFile root, final JComboBox remoteCombobox, final boolean fetchUrl) { final GitRepository repo = GitRepositoryManager.getInstance(project).getRepositoryForRoot(root); assert repo != null : "GitRepository can't be null for root " + root; GitBranch gitBranch = repo.getCurrentBranch(); final String branch = gitBranch != null ? gitBranch.getName() : null; setupRemotes(project, root, branch, remoteCombobox, fetchUrl); }
@Override public void actionPerformed(@NotNull AnActionEvent event) { final Project project = event.getProject(); if (project == null) { return; } final Set<VirtualFile> conflictedFiles = new TreeSet<VirtualFile>( new Comparator<VirtualFile>() { @Override public int compare(@NotNull VirtualFile f1, @NotNull VirtualFile f2) { return f1.getPresentableUrl().compareTo(f2.getPresentableUrl()); } }); for (Change change : ChangeListManager.getInstance(project).getAllChanges()) { if (change.getFileStatus() != FileStatus.MERGED_WITH_CONFLICTS) { continue; } final ContentRevision before = change.getBeforeRevision(); final ContentRevision after = change.getAfterRevision(); if (before != null) { final VirtualFile file = before.getFile().getVirtualFile(); if (file != null) { conflictedFiles.add(file); } } if (after != null) { final VirtualFile file = after.getFile().getVirtualFile(); if (file != null) { conflictedFiles.add(file); } } } AbstractVcsHelper.getInstance(project) .showMergeDialog( new ArrayList<VirtualFile>(conflictedFiles), GitVcs.getInstance(project).getMergeProvider()); for (VirtualFile conflictedFile : conflictedFiles) { final GitRepository repo = GitRepositoryManager.getInstance(project).getRepositoryForFile(conflictedFile); if (repo != null) { repo.update(GitRepository.TrackedTopic.ALL_CURRENT); } } }