Collection<VirtualFile> (@NotNull Collection<? extends GitRepository> rootsToSearch) { return ContainerUtil.mapNotNull(rootsToSearch, repo -> { PushSpec<GitPushSource, GitPushTarget> pushSpec = myPushSpecs.get(repo); if (pushSpec == null) { // repository is not selected to be pushed, but can be rebased GitPushSource source = myPushSupport.getSource(repo); GitPushTarget target = myPushSupport.getDefaultTarget(repo); if (target == null) { return null; } pushSpec = new PushSpec<>(source, target); } String baseRef = pushSpec.getTarget().getBranch().getFullName(); String currentRef = pushSpec.getSource().getRevision(); return GitRebaseOverMergeProblem.hasProblem(myProject, repo.getRoot(), baseRef, currentRef) ? repo.getRoot() : null; }); }