From 5dfa0fc3cfba378bfacd08627cc8069d8330fe31 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Sun, 25 Sep 2016 23:58:15 +0300 Subject: [PATCH] [vcs-log] toString for filters and log filtering time --- .../com/intellij/vcs/log/VcsLogRootFilterImpl.java | 5 +++++ .../intellij/vcs/log/data/VcsLogDateFilterImpl.java | 6 ++++++ .../vcs/log/data/VcsLogStructureFilterImpl.java | 5 +++++ .../intellij/vcs/log/data/VisiblePackBuilder.java | 6 ++++++ .../vcs/log/impl/VcsLogFilterCollectionImpl.java | 12 ++++++++++++ .../intellij/vcs/log/impl/VcsLogHashFilterImpl.java | 5 +++++ .../vcs/log/ui/filter/VcsLogTextFilterImpl.java | 5 +++++ .../vcs/log/ui/filter/VcsLogUserFilterImpl.java | 6 ++++++ 8 files changed, 50 insertions(+) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/VcsLogRootFilterImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/VcsLogRootFilterImpl.java index 82abf2fc3f32..8a86294a781e 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/VcsLogRootFilterImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/VcsLogRootFilterImpl.java @@ -32,4 +32,9 @@ public class VcsLogRootFilterImpl implements VcsLogRootFilter { public Collection getRoots() { return myRoots; } + + @Override + public String toString() { + return "roots:" + myRoots; + } } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogDateFilterImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogDateFilterImpl.java index e4165c804742..f167fd6e7cbc 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogDateFilterImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogDateFilterImpl.java @@ -57,4 +57,10 @@ public class VcsLogDateFilterImpl implements VcsLogDateFilter, VcsLogDetailsFilt public Date getBefore() { return myBefore; } + + @Override + public String toString() { + return (myAfter != null ? "after " + myAfter + (myBefore != null ? " " : "") : "") + + (myBefore != null ? "before " + myBefore : ""); + } } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogStructureFilterImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogStructureFilterImpl.java index 9f7e37203ea4..9777589698d5 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogStructureFilterImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogStructureFilterImpl.java @@ -77,4 +77,9 @@ public class VcsLogStructureFilterImpl implements VcsLogDetailsFilter, VcsLogStr } }) != null; } + + @Override + public String toString() { + return "files:" + myFiles; + } } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VisiblePackBuilder.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VisiblePackBuilder.java index 92107f7e21f1..480e126510b7 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VisiblePackBuilder.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VisiblePackBuilder.java @@ -32,6 +32,7 @@ import com.intellij.vcs.log.graph.VisibleGraph; import com.intellij.vcs.log.impl.VcsLogFilterCollectionImpl; import com.intellij.vcs.log.impl.VcsLogHashFilterImpl; import com.intellij.vcs.log.impl.VcsLogUtil; +import com.intellij.vcs.log.util.StopWatch; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -64,6 +65,8 @@ class VisiblePackBuilder { @NotNull PermanentGraph.SortType sortType, @NotNull VcsLogFilterCollection filters, @NotNull CommitCountStage commitCount) { + long start = System.currentTimeMillis(); + VcsLogHashFilter hashFilter = filters.getHashFilter(); if (hashFilter != null && !hashFilter.getHashes().isEmpty()) { // hashes should be shown, no matter if they match other filters or not return Pair.create(applyHashFilter(dataPack, hashFilter.getHashes(), sortType), commitCount); @@ -81,6 +84,9 @@ class VisiblePackBuilder { else { visibleGraph = dataPack.getPermanentGraph().createVisibleGraph(sortType, matchingHeads, filterResult.matchingCommits); } + + LOG.debug(StopWatch.formatTime(System.currentTimeMillis() - start) + " for filtering by " + filters); + return Pair.create(new VisiblePack(dataPack, visibleGraph, filterResult.canRequestMore, filters), filterResult.commitCount); } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogFilterCollectionImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogFilterCollectionImpl.java index 39ef50b66335..aa1534d48259 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogFilterCollectionImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogFilterCollectionImpl.java @@ -103,4 +103,16 @@ public class VcsLogFilterCollectionImpl implements VcsLogFilterCollection { public List getDetailsFilters() { return ContainerUtil.skipNulls(Arrays.asList(myUserFilter, myDateFilter, myTextFilter, myStructureFilter)); } + + @Override + public String toString() { + return "filters: (" + + (myBranchFilter != null ? myBranchFilter + ", " : "") + + (myUserFilter != null ? myUserFilter + ", " : "") + + (myHashFilter != null ? myHashFilter + ", " : "") + + (myDateFilter != null ? myDateFilter + ", " : "") + + (myTextFilter != null ? myTextFilter + ", " : "") + + (myStructureFilter != null ? myStructureFilter + ", " : "") + + (myRootFilter != null ? myRootFilter : "") + ")"; + } } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogHashFilterImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogHashFilterImpl.java index ff747f4f37d4..5747d0e6f6f2 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogHashFilterImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogHashFilterImpl.java @@ -33,4 +33,9 @@ public class VcsLogHashFilterImpl implements VcsLogHashFilter { public Collection getHashes() { return myHashes; } + + @Override + public String toString() { + return "hashes:" + myHashes; + } } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogTextFilterImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogTextFilterImpl.java index bd3f93a72b34..010eb8835b6a 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogTextFilterImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogTextFilterImpl.java @@ -38,4 +38,9 @@ public class VcsLogTextFilterImpl implements VcsLogDetailsFilter, VcsLogTextFilt public String getText() { return myText; } + + @Override + public String toString() { + return "containing " + myText; + } } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogUserFilterImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogUserFilterImpl.java index d6faefb218b9..65dba85f72b9 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogUserFilterImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/VcsLogUserFilterImpl.java @@ -1,6 +1,7 @@ package com.intellij.vcs.log.ui.filter; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; @@ -120,4 +121,9 @@ public class VcsLogUserFilterImpl implements VcsLogUserFilter { return result; } + + @Override + public String toString() { + return "author: " + StringUtil.join(myUsers, ", "); + } } \ No newline at end of file