OC-2778 Perforce commands do not work; reviewed by amakeev

This commit is contained in:
irengrig
2012-01-17 14:56:08 +04:00
parent 5858411c10
commit 1d855020f6
5 changed files with 48 additions and 32 deletions
@@ -160,12 +160,5 @@ public class ModuleDefaultVcsRootPolicy extends DefaultVcsRootPolicy {
builder.addDirtyFile(new VcsRoot(vcs, myBaseDir));
}
}
final VcsRoot[] vcsRoots = plVcsManager.getAllVcsRoots();
for (VcsRoot root : vcsRoots) {
//if (! root.path.equals(baseDir)) {
builder.addDirtyDirRecursively(root);
//}
}
}
}
@@ -16,9 +16,10 @@
package com.intellij.openapi.vcs.changes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.AbstractVcs;
import com.intellij.openapi.vcs.FilePath;
import com.intellij.openapi.vcs.*;
import com.intellij.openapi.vcs.impl.DefaultVcsRootPolicy;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import java.util.*;
@@ -40,6 +41,25 @@ public class Scopes {
myScopes.clear();
myEverythingDirty = true;
final DirtBuilder builder = new DirtBuilder(myGuess);
final ProjectLevelVcsManager vcsManager = ProjectLevelVcsManager.getInstance(myProject);
final List<VcsDirectoryMapping> mappings = vcsManager.getDirectoryMappings();
final LocalFileSystem lfs = LocalFileSystem.getInstance();
for (VcsDirectoryMapping mapping : mappings) {
if (mapping.isDefaultMapping()) {
DefaultVcsRootPolicy.getInstance(myProject).markDefaultRootsDirty(builder, myGuess);
} else {
if (mapping.getVcs() != null) {
final String vcsName = mapping.getVcs();
final AbstractVcs vcs = vcsManager.findVcsByName(vcsName);
final VirtualFile file = lfs.findFileByPath(mapping.getDirectory());
if (file != null) {
builder.addDirtyDirRecursively(new VcsRoot(vcs, file));
}
}
}
}
DefaultVcsRootPolicy.getInstance(myProject).markDefaultRootsDirty(builder, myGuess);
takeDirt(builder);
}
@@ -23,6 +23,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vcs.*;
import com.intellij.openapi.vcs.impl.DefaultVcsRootPolicy;
import com.intellij.openapi.vcs.impl.VcsDescriptor;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.*;
@@ -165,7 +166,8 @@ public class VcsDirectoryConfigurationPanel extends PanelWithButtons implements
public VcsDirectoryConfigurationPanel(final Project project) {
myProject = project;
myVcsConfiguration = VcsConfiguration.getInstance(myProject);
myProjectMessage = "<html>" + StringUtil.escapeXml(VcsDirectoryMapping.PROJECT_CONSTANT) + " - " + VcsMappingConfigurationDialog.getProjectMessage(myProject).replace('\n', ' ') + "</html>";
myProjectMessage = "<html>" + StringUtil.escapeXml(VcsDirectoryMapping.PROJECT_CONSTANT) + " - " +
DefaultVcsRootPolicy.getInstance(myProject).getProjectConfigurationMessage(myProject).replace('\n', ' ') + "</html>";
myIsDisabled = myProject.isDefault();
myVcsManager = ProjectLevelVcsManager.getInstance(project);
final VcsDescriptor[] vcsDescriptors = myVcsManager.getAllVcss();
@@ -16,19 +16,18 @@
package com.intellij.openapi.vcs.configurable;
import com.intellij.openapi.components.StorageScheme;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.UnnamedConfigurable;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ex.ProjectEx;
import com.intellij.openapi.ui.*;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vcs.AbstractVcs;
import com.intellij.openapi.vcs.ProjectLevelVcsManager;
import com.intellij.openapi.vcs.VcsBundle;
import com.intellij.openapi.vcs.VcsDirectoryMapping;
import com.intellij.openapi.vcs.impl.DefaultVcsRootPolicy;
import com.intellij.openapi.vcs.impl.VcsDescriptor;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.components.JBLabel;
@@ -168,27 +167,8 @@ public class VcsMappingConfigurationDialog extends DialogWrapper {
myDirectoryRadioButton.setSelected(true);
}
public static String getProjectMessage(final Project project) {
final StorageScheme storageScheme = ((ProjectEx) project).getStateStore().getStorageScheme();
boolean isDirectoryBased = StorageScheme.DIRECTORY_BASED.equals(storageScheme);
final String[] parts = new String[] {"Content roots of all modules", "all immediate descendants of project base directory",
".idea directory contents"};
final StringBuilder sb = new StringBuilder(parts[0]);
if (isDirectoryBased) {
sb.append(", ");
} else {
sb.append(", and ");
}
sb.append(parts[1]);
if (isDirectoryBased) {
sb.append(", and ");
sb.append(parts[2]);
}
return sb.toString();
}
public void initProjectMessage() {
myProjectButtonComment.setText("<html>" + getProjectMessage(myProject) + "</html>");
myProjectButtonComment.setText("<html>" + DefaultVcsRootPolicy.getInstance(myProject).getProjectConfigurationMessage(myProject) + "</html>");
}
private class MyBrowseFolderListener extends ComponentWithBrowseButton.BrowseFolderActionListener<JTextField> {
@@ -16,7 +16,9 @@
package com.intellij.openapi.vcs.impl;
import com.intellij.lifecycle.PeriodicalTasksCloser;
import com.intellij.openapi.components.StorageScheme;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ex.ProjectEx;
import com.intellij.openapi.vcs.changes.DirtBuilder;
import com.intellij.openapi.vcs.changes.VcsGuess;
import com.intellij.openapi.vcs.impl.projectlevelman.NewMappings;
@@ -45,4 +47,23 @@ public abstract class DefaultVcsRootPolicy {
public abstract VirtualFile getVcsRootFor(final VirtualFile file);
public abstract void markDefaultRootsDirty(final DirtBuilder builder, VcsGuess vcsGuess);
public String getProjectConfigurationMessage(final Project project) {
final StorageScheme storageScheme = ((ProjectEx) project).getStateStore().getStorageScheme();
boolean isDirectoryBased = StorageScheme.DIRECTORY_BASED.equals(storageScheme);
final String[] parts = new String[] {"Content roots of all modules", "all immediate descendants of project base directory",
".idea directory contents"};
final StringBuilder sb = new StringBuilder(parts[0]);
if (isDirectoryBased) {
sb.append(", ");
} else {
sb.append(", and ");
}
sb.append(parts[1]);
if (isDirectoryBased) {
sb.append(", and ");
sb.append(parts[2]);
}
return sb.toString();
}
}