mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
VCS: fix deadlock on startup -> do not set VCS mappings directly from whenProjectInitialized()
This commit is contained in:
@@ -23,6 +23,7 @@ import com.intellij.openapi.vcs.AbstractVcs;
|
||||
import com.intellij.openapi.vcs.VcsDirectoryMapping;
|
||||
import com.intellij.openapi.vcs.impl.ProjectLevelVcsManagerImpl;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.AppUIUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -41,16 +42,21 @@ public class PlatformVcsDetector implements ProjectComponent {
|
||||
public void projectOpened() {
|
||||
StartupManager.getInstance(myProject).runWhenProjectIsInitialized(new DumbAwareRunnable() {
|
||||
public void run() {
|
||||
VirtualFile file = ProjectBaseDirectory.getInstance(myProject).getBaseDir(myProject.getBaseDir());
|
||||
if (myVcsManager.needAutodetectMappings()) {
|
||||
AbstractVcs vcs = myVcsManager.findVersioningVcs(file);
|
||||
if (vcs != null && vcs != myVcsManager.getVcsFor(file)) {
|
||||
myVcsManager.removeDirectoryMapping(new VcsDirectoryMapping("", ""));
|
||||
myVcsManager.setAutoDirectoryMapping(file.getPath(), vcs.getName());
|
||||
myVcsManager.cleanupMappings();
|
||||
myVcsManager.updateActiveVcss();
|
||||
AppUIUtil.invokeLaterIfProjectAlive(myProject, new DumbAwareRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
VirtualFile file = ProjectBaseDirectory.getInstance(myProject).getBaseDir(myProject.getBaseDir());
|
||||
if (myVcsManager.needAutodetectMappings()) {
|
||||
AbstractVcs vcs = myVcsManager.findVersioningVcs(file);
|
||||
if (vcs != null && vcs != myVcsManager.getVcsFor(file)) {
|
||||
myVcsManager.removeDirectoryMapping(new VcsDirectoryMapping("", ""));
|
||||
myVcsManager.setAutoDirectoryMapping(file.getPath(), vcs.getName());
|
||||
myVcsManager.cleanupMappings();
|
||||
myVcsManager.updateActiveVcss();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user