diff options
author | Michael Valenta | 2002-02-28 19:14:27 +0000 |
---|---|---|
committer | Michael Valenta | 2002-02-28 19:14:27 +0000 |
commit | 380d8cbc356ebf84d77946aac62b5bf628dccc7c (patch) | |
tree | 348a85ce8a80f19de9f32bd75fcaff046ed5695f | |
parent | 567d5715503e15c21f9aba2a9eb868abf98baef4 (diff) | |
download | eclipse.platform.team-380d8cbc356ebf84d77946aac62b5bf628dccc7c.tar.gz eclipse.platform.team-380d8cbc356ebf84d77946aac62b5bf628dccc7c.tar.xz eclipse.platform.team-380d8cbc356ebf84d77946aac62b5bf628dccc7c.zip |
9780: Add doesn't ignore ignored resources
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 } |