Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2002-09-06 19:22:09 +0000
committerMichael Valenta2002-09-06 19:22:09 +0000
commit94b8b1790c9bf2ff24bb9f6b795b5d3a442e790e (patch)
tree303bbc57d91bc513e9fcd127f9e7464825a1cb63 /bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java
parentc56a50c5387d5ade821da80f8166a5343a6a788e (diff)
downloadeclipse.platform.team-94b8b1790c9bf2ff24bb9f6b795b5d3a442e790e.tar.gz
eclipse.platform.team-94b8b1790c9bf2ff24bb9f6b795b5d3a442e790e.tar.xz
eclipse.platform.team-94b8b1790c9bf2ff24bb9f6b795b5d3a442e790e.zip
23232: [CVS Core] Performance problem related to empty directories
Diffstat (limited to 'bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java')
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java
index 5bf722362..0062edb61 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java
@@ -61,6 +61,8 @@ class EclipseFolder extends EclipseResource implements ICVSFolder {
boolean includeManaged = (((flags & MANAGED_MEMBERS) != 0) || ((flags & (MANAGED_MEMBERS | UNMANAGED_MEMBERS | IGNORED_MEMBERS)) == 0));
boolean includeUnmanaged = (((flags & UNMANAGED_MEMBERS) != 0) || ((flags & (MANAGED_MEMBERS | UNMANAGED_MEMBERS | IGNORED_MEMBERS)) == 0));
boolean includeIgnored = ((flags & IGNORED_MEMBERS) != 0);
+ boolean includeExisting = (((flags & EXISTING_MEMBERS) != 0) || ((flags & (EXISTING_MEMBERS | PHANTOM_MEMBERS)) == 0));
+ boolean includePhantoms = (((flags & PHANTOM_MEMBERS) != 0) || ((flags & (EXISTING_MEMBERS | PHANTOM_MEMBERS)) == 0));
for (int i = 0; i < resources.length; i++) {
IResource resource = resources[i];
ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
@@ -70,7 +72,10 @@ class EclipseFolder extends EclipseResource implements ICVSFolder {
boolean isIgnored = cvsResource.isIgnored();
if ((isManaged && includeManaged)|| (isIgnored && includeIgnored)
|| ( ! isManaged && ! isIgnored && includeUnmanaged)) {
- result.add(cvsResource);
+ boolean exists = cvsResource.exists();
+ if ((includeExisting && exists) || (includePhantoms && !exists)) {
+ result.add(cvsResource);
+ }
}
}
@@ -316,4 +321,14 @@ class EclipseFolder extends EclipseResource implements ICVSFolder {
public ICVSResource[] fetchChildren(IProgressMonitor monitor) throws CVSException {
return members(FILE_MEMBERS | FOLDER_MEMBERS);
}
+ /**
+ * @see org.eclipse.team.internal.ccvs.core.ICVSResource#delete()
+ */
+ public void delete() throws CVSException {
+ if (!exists()) return;
+ if (isCVSFolder()) {
+ EclipseSynchronizer.getInstance().prepareForDeletion((IContainer)getIResource());
+ }
+ super.delete();
+ }
} \ No newline at end of file

Back to the top