[log] Add registry key vcs.log.bek.sort=false.

This commit is contained in:
Erokhin Stanislav
2014-05-22 19:32:47 +04:00
parent 2147279996
commit ee26a53558
5 changed files with 18 additions and 1 deletions
@@ -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
@@ -112,6 +112,9 @@ public class PermanentGraphImpl<CommitId> implements PermanentGraph<CommitId>, P
@NotNull
private PermanentGraphInfo<CommitId> createBekSort() {
if (!BekSorter.isBekEnabled())
return this;
BekIntMap bekMap = BekSorter.createBekMap(myPermanentLinearGraph, myPermanentGraphLayout, myPermanentCommitsInfo.getTimestampGetter());
DelegatedPermanentGraphInfo<CommitId> graphInfo = new DelegatedPermanentGraphInfo<CommitId>(this, bekMap);
@@ -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,
@@ -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());
}
}
@@ -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<TimedVcsCommit> getCorrectCommits() throws VcsException {
if (!BekSorter.isBekEnabled())
return myAllCommits;
final Set<Hash> wrongCommits = getWrongCommits();
return new AbstractList<TimedVcsCommit>() {
@Override