Set<VirtualFile> (@NotNull Collection<VirtualFile> roots, @Nullable VcsLogRootFilter rootFilter, @Nullable VcsLogStructureFilter structureFilter) { if (rootFilter == null && structureFilter == null) return new HashSet<>(roots); Collection<VirtualFile> fromRootFilter; if (rootFilter != null) { fromRootFilter = rootFilter.getRoots(); } else { fromRootFilter = roots; } Collection<VirtualFile> fromStructureFilter; if (structureFilter != null) { fromStructureFilter = collectRoots(structureFilter.getFiles(), new HashSet<>(roots)); } else { fromStructureFilter = roots; } return new HashSet<>(ContainerUtil.intersection(fromRootFilter, fromStructureFilter)); }