diff --git a/platform/lvcs-impl/resources/intellij.platform.lvcs.impl.xml b/platform/lvcs-impl/resources/intellij.platform.lvcs.impl.xml index 99d0941c7612..ff5f0503c842 100644 --- a/platform/lvcs-impl/resources/intellij.platform.lvcs.impl.xml +++ b/platform/lvcs-impl/resources/intellij.platform.lvcs.impl.xml @@ -102,6 +102,9 @@ + + diff --git a/platform/lvcs-impl/src/com/intellij/history/core/changes/ChangeSet.java b/platform/lvcs-impl/src/com/intellij/history/core/changes/ChangeSet.java index c6873a9797fa..8e9ec1211da9 100644 --- a/platform/lvcs-impl/src/com/intellij/history/core/changes/ChangeSet.java +++ b/platform/lvcs-impl/src/com/intellij/history/core/changes/ChangeSet.java @@ -21,6 +21,7 @@ import com.intellij.history.core.Content; import com.intellij.history.core.DataStreamUtil; import com.intellij.history.utils.LocalHistoryLog; import com.intellij.openapi.util.NlsContexts; +import com.intellij.openapi.util.registry.Registry; import com.intellij.util.SmartList; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.io.DataInputOutputUtil; @@ -36,6 +37,7 @@ import java.util.Collections; import java.util.List; import java.util.function.Predicate; import java.util.function.Supplier; +import java.util.stream.Collectors; public final class ChangeSet { private static final int VERSION = 1; @@ -75,6 +77,13 @@ public final class ChangeSet { public void write(DataOutput out) throws IOException { LocalHistoryLog.LOG.assertTrue(isLocked, "Changeset should be locked"); + if (LocalHistoryLog.LOG.isTraceEnabled()) { + int maximumChanges = Registry.intValue("lvcs.trace.changes.persistence.limit", 100); + String lastChanges = myChanges.reversed().stream().limit(maximumChanges) + .map(Object::toString) + .collect(Collectors.joining("\n")); + LocalHistoryLog.LOG.trace("Writing changeset. Changes count: " + myChanges.size() + ". 100 latest changes: \n" + lastChanges); + } DataInputOutputUtil.writeINT(out, VERSION); DataInputOutputUtil.writeLONG(out, myId); DataStreamUtil.writeStringOrNull(out, myName);