diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogFileFilter.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogFileFilter.java index cd0d8b61d80a..100f6ae86fce 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogFileFilter.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogFileFilter.java @@ -61,22 +61,21 @@ public class VcsLogFileFilter implements VcsLogFilter { if (roots.contains(file)) { selectedRoots.add(file); } - else { - VirtualFile candidateAncestorRoot = null; - for (VirtualFile root : roots) { - if (VfsUtilCore.isAncestor(root, file, false)) { - if (candidateAncestorRoot == null || VfsUtilCore.isAncestor(candidateAncestorRoot, root, false)) { - candidateAncestorRoot = root; - } - } - else if (VfsUtilCore.isAncestor(file, root, false)) { - selectedRoots.add(root); + VirtualFile candidateAncestorRoot = null; + for (VirtualFile root : roots) { + if (root.equals(file)) continue; + if (VfsUtilCore.isAncestor(root, file, false)) { + if (candidateAncestorRoot == null || VfsUtilCore.isAncestor(candidateAncestorRoot, root, false)) { + candidateAncestorRoot = root; } } + else if (VfsUtilCore.isAncestor(file, root, false)) { + selectedRoots.add(root); + } + } - if (candidateAncestorRoot != null) { - selectedFiles.putValue(candidateAncestorRoot, file); - } + if (candidateAncestorRoot != null) { + selectedFiles.putValue(candidateAncestorRoot, file); } } @@ -97,21 +96,26 @@ public class VcsLogFileFilter implements VcsLogFilter { } @NotNull - public static Set getAllVisibleRoots(@NotNull Collection roots, @Nullable VcsLogRootFilter rootFilter, @Nullable VcsLogStructureFilter structureFilter) { + public static Set getAllVisibleRoots(@NotNull Collection roots, + @Nullable VcsLogRootFilter rootFilter, + @Nullable VcsLogStructureFilter structureFilter) { if (rootFilter == null && structureFilter == null) return new HashSet(roots); Collection fromRootFilter; if (rootFilter != null) { fromRootFilter = rootFilter.getRoots(); - } else { + } + else { fromRootFilter = roots; } Collection fromStructureFilter; if (structureFilter != null) { - Pair, MultiMap> rootsAndFiles = collectRoots(structureFilter.getFiles(), new HashSet(roots)); + Pair, MultiMap> rootsAndFiles = + collectRoots(structureFilter.getFiles(), new HashSet(roots)); fromStructureFilter = ContainerUtil.union(rootsAndFiles.first, rootsAndFiles.second.keySet()); - } else { + } + else { fromStructureFilter = roots; }