From 71c7b9769720fbb7067892f6b8fd1750655a7d5c Mon Sep 17 00:00:00 2001 From: irengrig Date: Mon, 31 Dec 2012 21:50:40 +0400 Subject: [PATCH] Subversion: changed on server notification should also pay attention to branch switches --- .../openapi/vcs/changes/RemoteRevisionsCache.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/RemoteRevisionsCache.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/RemoteRevisionsCache.java index b172810d17da..ca72f0c737a0 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/RemoteRevisionsCache.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/RemoteRevisionsCache.java @@ -32,6 +32,7 @@ import com.intellij.openapi.vcs.update.UpdateFilesHelper; import com.intellij.openapi.vcs.update.UpdatedFiles; import com.intellij.util.Consumer; import com.intellij.util.PlusMinus; +import com.intellij.util.messages.MessageBusConnection; import com.intellij.util.messages.Topic; import java.util.Collection; @@ -55,6 +56,7 @@ public class RemoteRevisionsCache implements PlusMinus private final Object myLock; private final Map myKinds; private final ControlledCycle myControlledCycle; + private final MessageBusConnection myConnection; public static RemoteRevisionsCache getInstance(final Project project) { return PeriodicalTasksCloser.getInstance().safeGetService(project, RemoteRevisionsCache.class); @@ -70,11 +72,13 @@ public class RemoteRevisionsCache implements PlusMinus myChangeDecorator = new RemoteStatusChangeNodeDecorator(this); myVcsManager = ProjectLevelVcsManager.getInstance(project); - myVcsManager.addVcsListener(this); + myConnection = myProject.getMessageBus().connect(); + myConnection.subscribe(ProjectLevelVcsManager.VCS_CONFIGURATION_CHANGED, this); + myConnection.subscribe(ProjectLevelVcsManager.VCS_CONFIGURATION_CHANGED_IN_PLUGIN, this); myKinds = new HashMap(); Disposer.register(project, new Disposable() { public void dispose() { - myVcsManager.removeVcsListener(RemoteRevisionsCache.this); + myConnection.disconnect(); } }); final VcsConfiguration vcsConfiguration = VcsConfiguration.getInstance(myProject);