diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTree.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTree.java index b89846f894e1..a193daaf9890 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTree.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesTree.java @@ -29,6 +29,7 @@ import com.intellij.ui.treeStructure.Tree; import com.intellij.ui.treeStructure.actions.CollapseAllAction; import com.intellij.ui.treeStructure.actions.ExpandAllAction; import com.intellij.util.ObjectUtils; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.ThreeStateCheckBox; import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.tree.TreeUtil; @@ -67,7 +68,8 @@ public abstract class ChangesTree extends Tree implements DataProvider { @NotNull private final ChangesGroupingSupport myGroupingSupport; private boolean myIsModelFlat; - @NotNull private Set myIncludedChanges = new THashSet<>(); + @NotNull private TObjectHashingStrategy myInclusionHashingStrategy = ContainerUtil.canonicalStrategy(); + @NotNull private Set myIncludedChanges = new THashSet<>(myInclusionHashingStrategy); @NotNull private Runnable myDoubleClickHandler = EmptyRunnable.getInstance(); private boolean myKeepTreeState = false; @@ -385,6 +387,7 @@ public abstract class ChangesTree extends Tree implements DataProvider { public void setInclusionHashingStrategy(@NotNull TObjectHashingStrategy strategy) { + myInclusionHashingStrategy = strategy; Set oldInclusion = myIncludedChanges; myIncludedChanges = new THashSet<>(strategy); myIncludedChanges.addAll(oldInclusion); @@ -446,7 +449,7 @@ public abstract class ChangesTree extends Tree implements DataProvider { @NotNull public Set getIncludedSet() { - return new HashSet<>(myIncludedChanges); + return new THashSet<>(myIncludedChanges, myInclusionHashingStrategy); } public void expandAll() {