Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2002-02-28 19:14:27 +0000
committerMichael Valenta2002-02-28 19:14:27 +0000
commit380d8cbc356ebf84d77946aac62b5bf628dccc7c (patch)
tree348a85ce8a80f19de9f32bd75fcaff046ed5695f
parent567d5715503e15c21f9aba2a9eb868abf98baef4 (diff)
downloadeclipse.platform.team-380d8cbc356ebf84d77946aac62b5bf628dccc7c.tar.gz
eclipse.platform.team-380d8cbc356ebf84d77946aac62b5bf628dccc7c.tar.xz
eclipse.platform.team-380d8cbc356ebf84d77946aac62b5bf628dccc7c.zip
9780: Add doesn't ignore ignored resources
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java17
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java34
2 files changed, 41 insertions, 10 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
index b9889d438..0ba8ed2b9 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
@@ -192,15 +192,16 @@ public class CVSTeamProvider implements ITeamNature, ITeamProvider {
final Set binaryfiles = new HashSet(resources.length);
final IFileTypeRegistry registry = TeamPlugin.getFileTypeRegistry();
final TeamException[] eHolder = new TeamException[1];
- boolean addProject = false;
for (int i=0; i<resources.length; i++) {
+ final IResource currentResource = resources[i];
+
// Throw an exception if the resource is not a child of the receiver
- checkIsChild(resources[i]);
+ checkIsChild(currentResource);
try {
// Auto-add parents if they are not already managed
- IContainer parent = resources[i].getParent();
+ IContainer parent = currentResource.getParent();
// XXX Need to consider workspace root
while (parent.getType() != IResource.ROOT && ! isManaged(parent)) {
@@ -208,14 +209,14 @@ public class CVSTeamProvider implements ITeamNature, ITeamProvider {
parent = parent.getParent();
}
- if (resources[i].equals(project))
- addProject = true;
-
// Auto-add children
- resources[i].accept(new IResourceVisitor() {
+ currentResource.accept(new IResourceVisitor() {
public boolean visit(IResource resource) {
try {
- if (!isManaged(resource)) {
+ ICVSResource mResource = (ICVSResource)Session.getManagedResource(resource);
+ // Add the resource is its not already managed and it was either
+ // added explicitly (is equal currentResource) or is not ignored
+ if (! isManaged(resource) && (currentResource.equals(resource) || ! mResource.isIgnored())) {
String name = resource.getFullPath().removeFirstSegments(1).toString();
if (resource.getType() == IResource.FILE) {
String extension = resource.getFileExtension();
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java
index aad869432..836c6ca5f 100644
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java
+++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java
@@ -3,6 +3,7 @@ package org.eclipse.team.tests.ccvs.core.provider;
* (c) Copyright IBM Corp. 2000, 2002.
* All Rights Reserved.
*/
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import junit.framework.Test;
@@ -15,6 +16,7 @@ import org.eclipse.team.ccvs.core.CVSProviderPlugin;
import org.eclipse.team.ccvs.core.CVSTag;
import org.eclipse.team.core.TeamException;
import org.eclipse.team.internal.ccvs.core.client.Command;
+import org.eclipse.team.internal.ccvs.core.client.Session;
import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
import org.eclipse.team.tests.ccvs.core.EclipseTest;
import org.eclipse.team.tests.ccvs.core.JUnitTestCase;
@@ -41,10 +43,38 @@ public class CVSProviderTest extends EclipseTest {
public static Test suite() {
TestSuite suite = new TestSuite(CVSProviderTest.class);
//return new CVSTestSetup(suite);
- return new CVSTestSetup(new CVSProviderTest("testGet"));
+ return new CVSTestSetup(new CVSProviderTest("testAdd"));
}
- public void testAddAndDelete() throws TeamException, CoreException {
+ public void testAdd() throws TeamException, CoreException {
+
+ // Test add with cvsignores
+ IProject project = createProject("testAdd", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
+ IFile file = project.getFile(".cvsignore");
+ file.create(new ByteArrayInputStream("ignored.txt".getBytes()), false, null);
+ file = project.getFile("ignored.txt");
+ file.create(new ByteArrayInputStream("some text".getBytes()), false, null);
+ file = project.getFile("notignored.txt");
+ file.create(new ByteArrayInputStream("some more text".getBytes()), false, null);
+ file = project.getFile("folder1/.cvsignore");
+ file.create(new ByteArrayInputStream("ignored.txt".getBytes()), false, null);
+ file = project.getFile("folder1/ignored.txt");
+ file.create(new ByteArrayInputStream("some text".getBytes()), false, null);
+ file = project.getFile("folder1/notignored.txt");
+ file.create(new ByteArrayInputStream("some more text".getBytes()), false, null);
+
+ getProvider(project).add(new IResource[] {project}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
+
+ assertTrue( ! Session.getManagedResource(project.getFile("ignored.txt")).isManaged());
+ assertTrue( ! Session.getManagedResource(project.getFile("folder1/ignored.txt")).isManaged());
+
+ assertTrue(Session.getManagedResource(project.getFile("notignored.txt")).isManaged());
+ assertTrue(Session.getManagedResource(project.getFile("folder1/notignored.txt")).isManaged());
+ assertTrue(Session.getManagedResource(project.getFile(".cvsignore")).isManaged());
+ assertTrue(Session.getManagedResource(project.getFile("folder1/.cvsignore")).isManaged());
+ }
+
+ public void testDelete() throws TeamException, CoreException {
// Not supported yet
}

Back to the top