From ee26a535587498cc262f91d97c399d0316c540a0 Mon Sep 17 00:00:00 2001 From: Erokhin Stanislav Date: Mon, 19 May 2014 20:17:11 +0400 Subject: [PATCH] [log] Add registry key vcs.log.bek.sort=false. --- .../platform-resources-en/src/misc/registry.properties | 1 + .../vcs/log/graph/impl/facade/PermanentGraphImpl.java | 3 +++ .../intellij/vcs/log/graph/impl/facade/bek/BekSorter.java | 7 +++++++ .../impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java | 4 +++- plugins/git4idea/src/git4idea/log/GitBekParentFixer.java | 4 ++++ 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/platform/platform-resources-en/src/misc/registry.properties b/platform/platform-resources-en/src/misc/registry.properties index d47b5d3026de..6442333b904e 100644 --- a/platform/platform-resources-en/src/misc/registry.properties +++ b/platform/platform-resources-en/src/misc/registry.properties @@ -202,6 +202,7 @@ compiler.document.save.trigger.delay.description=Delay in milliseconds before tr vcs.show.colored.annotations=true vcs.showConsole=true +vcs.log.bek.sort=false psi.incremental.reparse.depth.limit=1000 psi.deferIconLoading=true diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/PermanentGraphImpl.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/PermanentGraphImpl.java index bfcead2cc565..c456272fc6df 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/PermanentGraphImpl.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/PermanentGraphImpl.java @@ -112,6 +112,9 @@ public class PermanentGraphImpl implements PermanentGraph, P @NotNull private PermanentGraphInfo createBekSort() { + if (!BekSorter.isBekEnabled()) + return this; + BekIntMap bekMap = BekSorter.createBekMap(myPermanentLinearGraph, myPermanentGraphLayout, myPermanentCommitsInfo.getTimestampGetter()); DelegatedPermanentGraphInfo graphInfo = new DelegatedPermanentGraphInfo(this, bekMap); diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/bek/BekSorter.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/bek/BekSorter.java index 86d7a9084be8..4650cd1a1146 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/bek/BekSorter.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/impl/facade/bek/BekSorter.java @@ -16,6 +16,7 @@ package com.intellij.vcs.log.graph.impl.facade.bek; import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.registry.Registry; import com.intellij.vcs.log.graph.api.LinearGraph; import com.intellij.vcs.log.graph.impl.permanent.GraphLayoutImpl; import com.intellij.vcs.log.graph.utils.IntList; @@ -27,6 +28,12 @@ import java.util.List; public class BekSorter { + public static boolean isBekEnabled() { // todo drop later + boolean isInternal = Boolean.valueOf(System.getProperty("idea.is.internal")); + boolean isBekEnabled = Registry.is("vcs.log.bek.sort"); + return isBekEnabled || isInternal; + } + @NotNull public static BekIntMap createBekMap(@NotNull LinearGraph permanentGraph, @NotNull GraphLayoutImpl graphLayout, diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java index 163be9ecc918..b551b887c921 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/frame/MainFrame.java @@ -18,13 +18,14 @@ import com.intellij.ui.components.JBLoadingPanel; import com.intellij.util.ArrayUtil; import com.intellij.vcs.log.VcsLog; import com.intellij.vcs.log.VcsLogDataKeys; +import com.intellij.vcs.log.VcsLogFilterUi; import com.intellij.vcs.log.VcsLogSettings; import com.intellij.vcs.log.data.DataPack; import com.intellij.vcs.log.data.VcsLogDataHolder; import com.intellij.vcs.log.data.VcsLogUiProperties; +import com.intellij.vcs.log.graph.impl.facade.bek.BekSorter; import com.intellij.vcs.log.ui.VcsLogUiImpl; import com.intellij.vcs.log.ui.filter.VcsLogClassicFilterUi; -import com.intellij.vcs.log.VcsLogFilterUi; import com.intellij.vcs.log.ui.tables.GraphTableModel; import icons.VcsLogIcons; import org.jetbrains.annotations.NotNull; @@ -296,6 +297,7 @@ public class MainFrame extends JPanel implements TypeSafeDataProvider { @Override public void update(AnActionEvent e) { super.update(e); + e.getPresentation().setVisible(BekSorter.isBekEnabled()); e.getPresentation().setEnabled(areGraphActionsEnabled()); } } diff --git a/plugins/git4idea/src/git4idea/log/GitBekParentFixer.java b/plugins/git4idea/src/git4idea/log/GitBekParentFixer.java index e518b764ddd2..e469e61ca315 100644 --- a/plugins/git4idea/src/git4idea/log/GitBekParentFixer.java +++ b/plugins/git4idea/src/git4idea/log/GitBekParentFixer.java @@ -20,6 +20,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import com.intellij.vcs.log.*; +import com.intellij.vcs.log.graph.impl.facade.bek.BekSorter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -46,6 +47,9 @@ class GitBekParentFixer { @NotNull List getCorrectCommits() throws VcsException { + if (!BekSorter.isBekEnabled()) + return myAllCommits; + final Set wrongCommits = getWrongCommits(); return new AbstractList() { @Override