diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogManager.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogManager.java index e30d944560eb..9421896346de 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogManager.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogManager.java @@ -23,6 +23,7 @@ import com.intellij.vcs.log.graph.PermanentGraph; import com.intellij.vcs.log.ui.AbstractVcsLogUi; import com.intellij.vcs.log.ui.VcsLogColorManagerImpl; import com.intellij.vcs.log.ui.VcsLogUiImpl; +import com.intellij.vcs.log.util.VcsLogUtil; import com.intellij.vcs.log.visible.VcsLogFiltererImpl; import com.intellij.vcs.log.visible.VisiblePackRefresherImpl; import com.intellij.vcs.log.visible.filters.VcsLogFilterObject; @@ -187,6 +188,7 @@ public class VcsLogManager implements Disposable { // disposing of VcsLogManager is done by manually executing dispose(@Nullable Runnable callback) // the above method first disposes ui in EDT, than disposes everything else in background LOG.assertTrue(!ApplicationManager.getApplication().isDispatchThread()); + LOG.debug("Disposed Vcs Log for " + VcsLogUtil.getProvidersMapText(myLogData.getLogProviders())); } private class MyFatalErrorsHandler implements FatalErrorHandler { diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsProjectLog.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsProjectLog.java index 28c427976176..1fb62050ba70 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsProjectLog.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsProjectLog.java @@ -35,6 +35,7 @@ import com.intellij.util.ui.UIUtil; import com.intellij.vcs.log.VcsLogProvider; import com.intellij.vcs.log.data.VcsLogData; import com.intellij.vcs.log.ui.VcsLogUiImpl; +import com.intellij.vcs.log.util.VcsLogUtil; import org.jetbrains.annotations.*; import java.util.Arrays; @@ -178,6 +179,7 @@ public class VcsProjectLog implements Disposable { @CalledInBackground public synchronized VcsLogManager getValue(@NotNull Map logProviders) { if (myValue == null) { + LOG.debug("Creating Vcs Log for " + VcsLogUtil.getProvidersMapText(logProviders)); VcsLogManager value = compute(logProviders); myValue = value; ApplicationManager.getApplication().invokeLater(() -> { @@ -202,6 +204,7 @@ public class VcsProjectLog implements Disposable { public synchronized void drop(@Nullable Runnable callback) { if (myValue != null) { + LOG.debug("Disposing Vcs Log for " + VcsLogUtil.getProvidersMapText(myValue.getDataManager().getLogProviders())); myMessageBus.syncPublisher(VCS_PROJECT_LOG_CHANGED).logDisposed(myValue); myValue.dispose(callback); myValue = null; diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/util/VcsLogUtil.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/util/VcsLogUtil.java index 5807bb2c7acf..ba123f14ea3b 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/util/VcsLogUtil.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/util/VcsLogUtil.java @@ -362,4 +362,9 @@ public class VcsLogUtil { } return (maxSize / 1_000_000) + "M"; } + + @NotNull + public static String getProvidersMapText(@NotNull Map providers) { + return "[" + StringUtil.join(providers.keySet(), file -> file.getPresentableUrl(), ", ") + "]"; + } }