From a18ab7231329085370fbdbc36404e45618b56e48 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Wed, 2 Jan 2019 22:58:55 +0300 Subject: [PATCH] [vcs-log] filter with vcs only roots that are not indexed Check whether it is necessary to filter with vcs at all, and if it is, provide a root filter only with not indexed roots. --- .../com/intellij/vcs/log/visible/VcsLogFiltererImpl.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/visible/VcsLogFiltererImpl.kt b/platform/vcs-log/impl/src/com/intellij/vcs/log/visible/VcsLogFiltererImpl.kt index f85fd8aa0901..8558ea5eb8b5 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/visible/VcsLogFiltererImpl.kt +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/visible/VcsLogFiltererImpl.kt @@ -89,9 +89,11 @@ class VcsLogFiltererImpl(private val logProviders: Map? = if (rootsForIndex.isNotEmpty()) dataGetter?.filter(detailsFilters) else null - val headsForVcs = if (rootsForVcs.containsAll(visibleRoots)) matchingHeads - else getMatchingHeads(dataPack.refsModel, rootsForVcs, filters) - val filteredWithVcs = filterWithVcs(dataPack.permanentGraph, filters, detailsFilters, headsForVcs, commitCount) + if (rootsForVcs.isEmpty()) return FilterByDetailsResult(filteredWithIndex, false, commitCount) + val filterAllWithVcs = rootsForVcs.containsAll(visibleRoots) + val filtersForVcs = if (filterAllWithVcs) filters else filters.with(VcsLogFilterObject.fromRoots(rootsForVcs)) + val headsForVcs = if (filterAllWithVcs) matchingHeads else getMatchingHeads(dataPack.refsModel, rootsForVcs, filtersForVcs) + val filteredWithVcs = filterWithVcs(dataPack.permanentGraph, filtersForVcs, detailsFilters, headsForVcs, commitCount) val filteredCommits: Set? = union(filteredWithIndex, filteredWithVcs.matchingCommits) return FilterByDetailsResult(filteredCommits, filteredWithVcs.canRequestMore, filteredWithVcs.commitCount)