Commit d166ebef authored by Aleksey Pivovarov's avatar Aleksey Pivovarov
Browse files

vcs: explicitly create default VcsDirectoryMapping

parent 9b3a228b
Showing with 19 additions and 10 deletions
+19 -10
......@@ -169,7 +169,7 @@ private fun updateVcsMapping(primaryModule: Module, addedModuleContentRoot: Virt
if (contentRoots.size == 1 && FileUtil.filesEqual(File(contentRoots[0].path), File(mappings[0].directory))) {
val vcs = vcsManager.findVersioningVcs(addedModuleContentRoot)
if (vcs != null && vcs.name == mappings[0].vcs) {
vcsManager.directoryMappings = listOf(VcsDirectoryMapping("", vcs.name))
vcsManager.directoryMappings = listOf(VcsDirectoryMapping.createDefault(vcs.name))
return
}
}
......
......@@ -253,7 +253,7 @@ public abstract class AbstractVcs<ComList extends CommittedChangeList> extends S
public void enableIntegration() {
ProjectLevelVcsManager vcsManager = ProjectLevelVcsManager.getInstance(myProject);
if (vcsManager != null) {
vcsManager.setDirectoryMappings(Arrays.asList(new VcsDirectoryMapping("", getName())));
vcsManager.setDirectoryMappings(Arrays.asList(VcsDirectoryMapping.createDefault(getName())));
}
}
......
......@@ -24,6 +24,8 @@ import org.jetbrains.annotations.Nullable;
* @author yole
*/
public class VcsDirectoryMapping {
public static final String DEFAULT_MAPPING_DIR = "";
public static final String PROJECT_CONSTANT = "<Project>";
public static final VcsDirectoryMapping[] EMPTY_ARRAY = new VcsDirectoryMapping[0];
......@@ -46,6 +48,11 @@ public class VcsDirectoryMapping {
myRootSettings = rootSettings;
}
@NotNull
public static VcsDirectoryMapping createDefault(@NotNull String vcs) {
return new VcsDirectoryMapping(DEFAULT_MAPPING_DIR, vcs);
}
@NotNull
public String getDirectory() {
return myDirectory;
......
......@@ -30,7 +30,7 @@ public class RegisterMappingCheckoutListener implements VcsAwareCheckoutListener
if (project != null) {
ProjectLevelVcsManager vcsManager = ProjectLevelVcsManager.getInstance(project);
if (!vcsManager.hasAnyMappings()) {
vcsManager.setDirectoryMappings(Collections.singletonList(new VcsDirectoryMapping("", vcsKey.getName())));
vcsManager.setDirectoryMappings(Collections.singletonList(VcsDirectoryMapping.createDefault(vcsKey.getName())));
}
return true;
}
......
......@@ -57,7 +57,7 @@ public class VcsMappingConfigurationDialog extends DialogWrapper {
myDirectoryTextField.addActionListener(
new MyBrowseFolderListener("Select Directory", "Select directory to map to a VCS", myDirectoryTextField, project,
createSingleFolderDescriptor()));
myMappingCopy = new VcsDirectoryMapping("", "");
myMappingCopy = VcsDirectoryMapping.createDefault("");
setTitle(title);
init();
myVCSComboBox.addActionListener(e -> updateVcsConfigurable());
......
......@@ -75,7 +75,7 @@ class ModuleVcsDetector(private val myProject: Project,
val rootPaths = roots.map { it.path }.toSet()
val additionalMappings = myVcsManager.directoryMappings.filter { it.directory !in rootPaths }
myVcsManager.setAutoDirectoryMappings(additionalMappings + VcsDirectoryMapping("", vcs.name))
myVcsManager.setAutoDirectoryMappings(additionalMappings + VcsDirectoryMapping.createDefault(vcs.name))
}
}
else if (tryMapPieces) {
......
......@@ -640,11 +640,13 @@ public class ProjectLevelVcsManagerImpl extends ProjectLevelVcsManagerEx impleme
final List<VcsDirectoryMapping> mappingsList = new ArrayList<>();
boolean haveNonEmptyMappings = false;
for (Element child : element.getChildren(ELEMENT_MAPPING)) {
final String vcs = child.getAttributeValue(ATTRIBUTE_VCS);
String vcs = child.getAttributeValue(ATTRIBUTE_VCS);
String directory = child.getAttributeValue(ATTRIBUTE_DIRECTORY);
if (directory == null) continue;
if (vcs != null && !vcs.isEmpty()) {
haveNonEmptyMappings = true;
}
VcsDirectoryMapping mapping = new VcsDirectoryMapping(child.getAttributeValue(ATTRIBUTE_DIRECTORY), vcs);
VcsDirectoryMapping mapping = new VcsDirectoryMapping(directory, vcs);
mappingsList.add(mapping);
Element rootSettingsElement = child.getChild(ELEMENT_ROOT_SETTINGS);
......
......@@ -56,7 +56,7 @@ public class CommittedChangesCacheTest extends PlatformTestCase {
myVcs.setDiffProvider(myDiffProvider);
myVcsManager.registerVcs(myVcs);
myVcsManager.setDirectoryMappings(singletonList(new VcsDirectoryMapping("", myVcs.getName())));
myVcsManager.setDirectoryMappings(singletonList(VcsDirectoryMapping.createDefault(myVcs.getName())));
myVcsManager.waitForInitialized();
assertTrue(myVcsManager.hasActiveVcss());
......
......@@ -147,7 +147,7 @@ public class ShareWholeProject extends AnAction implements DumbAware {
VcsDirtyScopeManager.getInstance(project).dirDirtyRecursively(project.getBaseDir());
if (checker.isHadNoMappings() && SvnUtil.seemsLikeVersionedDir(baseDir)) {
final ProjectLevelVcsManager vcsManager = ProjectLevelVcsManager.getInstance(project);
vcsManager.setDirectoryMappings(Arrays.asList(new VcsDirectoryMapping("", SvnVcs.VCS_NAME)));
vcsManager.setDirectoryMappings(Arrays.asList(VcsDirectoryMapping.createDefault(SvnVcs.VCS_NAME)));
}
}, ModalityState.NON_MODAL, project.getDisposed()));
}
......
......@@ -506,7 +506,7 @@ public class TaskVcsTest extends CodeInsightFixtureTestCase {
ProjectLevelVcsManagerImpl vcsManager = (ProjectLevelVcsManagerImpl)ProjectLevelVcsManager.getInstance(getProject());
vcsManager.registerVcs(myVcs);
vcsManager.setDirectoryMappings(Collections.singletonList(new VcsDirectoryMapping("", myVcs.getName())));
vcsManager.setDirectoryMappings(Collections.singletonList(VcsDirectoryMapping.createDefault(myVcs.getName())));
vcsManager.waitForInitialized();
assertTrue(vcsManager.hasActiveVcss());
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment