diff options
author | Michael Valenta | 2002-09-06 19:22:09 +0000 |
---|---|---|
committer | Michael Valenta | 2002-09-06 19:22:09 +0000 |
commit | 94b8b1790c9bf2ff24bb9f6b795b5d3a442e790e (patch) | |
tree | 303bbc57d91bc513e9fcd127f9e7464825a1cb63 /bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseFolder.java | |
parent | c56a50c5387d5ade821da80f8166a5343a6a788e (diff) | |
download | eclipse.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.java | 17 |
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 |